From: Dmitry Torokhov HDAPS: handle errors from input_register_device() Signed-off-by: Dmitry Torokhov Signed-off-by: Andrew Morton --- drivers/hwmon/hdaps.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff -puN drivers/hwmon/hdaps.c~hdaps-handle-errors-from-input_register_device drivers/hwmon/hdaps.c --- a/drivers/hwmon/hdaps.c~hdaps-handle-errors-from-input_register_device +++ a/drivers/hwmon/hdaps.c @@ -587,7 +587,9 @@ static int __init hdaps_init(void) input_set_abs_params(hdaps_idev, ABS_Y, -256, 256, HDAPS_INPUT_FUZZ, HDAPS_INPUT_FLAT); - input_register_device(hdaps_idev); + ret = input_register_device(hdaps_idev); + if (ret) + goto out_idev; /* start up our timer for the input device */ init_timer(&hdaps_timer); @@ -598,6 +600,8 @@ static int __init hdaps_init(void) printk(KERN_INFO "hdaps: driver successfully loaded.\n"); return 0; +out_idev: + input_free_device(hdaps_idev); out_group: sysfs_remove_group(&pdev->dev.kobj, &hdaps_attribute_group); out_device: _