fujitsu-laptop: remove unnecessary input_free_device calls
Subsystems (2)
PATCH 1/1 fujitsu-laptop: remove unnecessary input_free_device calls
input_free_device should only be used if input_register_device() was not called yet or if it failed.
This patch removes unnecessary input_free_device calls.
--- drivers/platform/x86/fujitsu-laptop.c | 21 ++++++++------------- 1 files changed, 8 insertions(+), 13 deletions(-)
drivers/platform/x86/fujitsu-laptop.c +8 -13
@@ -686,8 +686,10 @@ static int acpi_fujitsu_add(struct acpi_device *device)set_bit (KEY_UNKNOWN , input->keybit); error =input_register_device (input); -if (error) - goto err_free_input_dev; +if (error) { +input_free_device (input); + goto err_stop; + } result =acpi_bus_get_power (fujitsu->acpi_handle, &state);if (result) {
@@ -725,8 +727,6 @@ static int acpi_fujitsu_add(struct acpi_device *device) err_unregister_input_dev:input_unregister_device (input); -err_free_input_dev: -input_free_device (input); err_stop:return result; }
@@ -737,9 +737,6 @@ static int acpi_fujitsu_remove(struct acpi_device *device, int type)struct input_dev *input = fujitsu->input;input_unregister_device (input); - -input_free_device (input); - fujitsu->acpi_handle =NULL ;return 0 ;
@@ -855,8 +852,10 @@ static int acpi_fujitsu_hotkey_add(struct acpi_device *device)set_bit (KEY_UNKNOWN , input->keybit); error =input_register_device (input); -if (error) - goto err_free_input_dev; +if (error) { +input_free_device (input); + goto err_free_fifo; + } result =acpi_bus_get_power (fujitsu_hotkey->acpi_handle, &state);if (result) {
@@ -930,8 +929,6 @@ static int acpi_fujitsu_hotkey_add(struct acpi_device *device) err_unregister_input_dev:input_unregister_device (input); -err_free_input_dev: -input_free_device (input); err_free_fifo:kfifo_free (&fujitsu_hotkey->fifo); err_stop:
@@ -953,8 +950,6 @@ static int acpi_fujitsu_hotkey_remove(struct acpi_device *device, int type)input_unregister_device (input); -input_free_device (input); -kfifo_free (&fujitsu_hotkey->fifo); fujitsu_hotkey->acpi_handle =NULL ;
Signature · 1 line
1.5.4.3
Quoted 4 lines
input_free_deviceshould only be used ifinput_register_device()was not called yet or if it failed.This patch removes unnecessary
input_free_devicecalls.
Yes, indeed. Good catch. The patch looks good to me - thanks.
Quoted 77 lines
Signed-off-by Axel Lin <[email protected]>--- drivers/platform/x86/fujitsu-laptop.c | 21 ++++++++------------- 1 files changed, 8 insertions(+), 13 deletions(-)drivers/platform/x86/fujitsu-laptop.c +8
-13@@ -686,8 +686,10 @@ static int acpi_fujitsu_add(struct acpi_device *device)set_bit (KEY_UNKNOWN , input->keybit); error =input_register_device (input); -if (error) - goto err_free_input_dev; +if (error) { +input_free_device (input); + goto err_stop; + } result =acpi_bus_get_power (fujitsu->acpi_handle, &state);if (result) {@@ -725,8 +727,6 @@ static int acpi_fujitsu_add(struct acpi_device *device) err_unregister_input_dev:input_unregister_device (input); -err_free_input_dev: -input_free_device (input); err_stop:return result; }@@ -737,9 +737,6 @@ static int acpi_fujitsu_remove(struct acpi_device *device, int type)struct input_dev *input = fujitsu->input;input_unregister_device (input); - -input_free_device (input); - fujitsu->acpi_handle =NULL ;return 0 ;@@ -855,8 +852,10 @@ static int acpi_fujitsu_hotkey_add(struct acpi_device *device)set_bit (KEY_UNKNOWN , input->keybit); error =input_register_device (input); -if (error) - goto err_free_input_dev; +if (error) { +input_free_device (input); + goto err_free_fifo; + } result =acpi_bus_get_power (fujitsu_hotkey->acpi_handle, &state);if (result) {@@ -930,8 +929,6 @@ static int acpi_fujitsu_hotkey_add(struct acpi_device *device) err_unregister_input_dev:input_unregister_device (input); -err_free_input_dev: -input_free_device (input); err_free_fifo:kfifo_free (&fujitsu_hotkey->fifo); err_stop:@@ -953,8 +950,6 @@ static int acpi_fujitsu_hotkey_remove(struct acpi_device *device, int type)input_unregister_device (input); -input_free_device (input); -kfifo_free (&fujitsu_hotkey->fifo); fujitsu_hotkey->acpi_handle =NULL ;Signature · 1 line
1.5.4.3
Hi Axel,
Quoted 14 lines · Axel Lin
input_free_deviceshould only be used ifinput_register_device()was not called yet or if it failed.
This patch removes unnecessaryinput_free_devicecalls.Signed-off-by Axel Lin <[email protected]>--- drivers/platform/x86/fujitsu-laptop.c | 21 ++++++++------------- 1 files changed, 8 insertions(+), 13 deletions(-)drivers/platform/x86/fujitsu-laptop.c +0
-0
drivers/platform/x86/fujitsu-laptop.c static int acpi_fujitsu_add(struct acpi_device *device) · line 692
Quoted 9 lines
drivers/platform/x86/fujitsu-laptop.c +4
-2@@ -686,8 +686,10 @@ static int acpi_fujitsu_add(struct acpi_device *device)set_bit (KEY_UNKNOWN , input->keybit); error =input_register_device (input); -if (error) - goto err_free_input_dev; +if (error) { +input_free_device (input); + goto err_stop; + }
Instead of using mixed in-line and goto style cleanup I prefer doig the following:
err_unregister_input_dev:
input_unregister_device(input); input = NULL; <-- !!! err_free_input_dev: input_free_device(input);
input_free_device() happily accepts NULL pointers.
Otherwise the patch looks good.
Thanks.
Signature · 1 line
Dmitry
hi Dmitry,
2010/7/2 Dmitry Torokhov <[email protected]>:
Quoted 30 lines
Hi Axel,
Quoted 14 lines · Axel Lin
input_free_deviceshould only be used ifinput_register_device()was not called yet or if it failed.
This patch removes unnecessaryinput_free_devicecalls.Signed-off-by Axel Lin <[email protected]>---
drivers/platform/x86/fujitsu-laptop.c | 21 ++++++++-------------1 files changed, 8 insertions(+), 13 deletions(-)drivers/platform/x86/fujitsu-laptop.c +0
-0drivers/platform/x86/fujitsu-laptop.c static int acpi_fujitsu_add(struct acpi_device *device) · line 692
Quoted 9 lines
drivers/platform/x86/fujitsu-laptop.c +4
-2@@ -686,8 +686,10 @@ static int acpi_fujitsu_add(struct acpi_device *device) set_bit(KEY_UNKNOWN, input->keybit); error = input_register_device(input); - if (error) - goto err_free_input_dev; + if (error) { + input_free_device(input); + goto err_stop; + }Instead of using mixed in-line and goto style cleanup I prefer doig the following:
Quoted 7 lines
err_unregister_input_dev:
input_unregister_device(input);
input = NULL; <-- !!!
err_free_input_dev:
input_free_device(input);
input_free_device()happily accepts NULL pointers.
Thanks for the review. I will send a revised patch.
Regards,
Axel
Quoted 8 lines
Otherwise the patch looks good.
Thanks.
--
Dmitry