This series fixes some missing clean-up function calls in the error handling of the probe. Patch 1 and 2 fix some similar issues introduced in 2 different commits (hence 2 patches) Patch 3 is an enhancement that creates a common function for cleaning up thunderstrike instances. Changes: v1->v2: - Add the LED_RETAIN_AT_SHUTDOWN flag to prevent led_classdev_unregister from trying to set the LED to off before a successful call to hid_hw_start. - Rename err_haptics label to err_ts_create to make the label name more accurate. - Re-order operations in thunderstrike_destroy to be in LIFO order with regards to the operations in thunderstrike_create. v2->v3: - Refactor thunderstrike_destroy to take a thunderstrike instance pointer as a parameter and prevent a variable from being unused in shield_probe. Link: https://lore.kernel.org/linux-input/cover.1693070958.git.christophe.jaillet@xxxxxxxxxx/ Link: https://lore.kernel.org/linux-input/20230918041345.59859-1-rrameshbabu@xxxxxxxxxx/ Notes from Rahul: - Thank you so much Christophe for these patches. - Sent v2 without accounting for the fact that thunderstrike_destroy in v1 makes the thunderstrike instance in shield_probe unused. Tested v3 with W=1. Christophe JAILLET (3): HID: nvidia-shield: Fix a missing led_classdev_unregister() in the probe error handling path HID: nvidia-shield: Fix some missing function calls() in the probe error handling path HID: nvidia-shield: Introduce thunderstrike_destroy() drivers/hid/hid-nvidia-shield.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) -- 2.40.1