platform/x86: hp_accel: Fix an error handling path in 'lis3lv02d_probe()'
[ Upstream commit c961a7d2aa23ae19e0099fbcdf1040fb760eea83 ] If 'led_classdev_register()' fails, some additional resources should be released. Add the missing 'i8042_remove_filter()' and 'lis3lv02d_remove_fs()' calls that are already in the remove function but are missing here. Fixes:a4c724d072
("platform: hp_accel: add a i8042 filter to remove HPQ6000 data from kb bus stream") Fixes:9e0c797821
("lis3lv02d: merge with leds hp disk") Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Link: https://lore.kernel.org/r/5a4f218f8f16d2e3a7906b7ca3654ffa946895f8.1636314074.git.christophe.jaillet@wanadoo.fr Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
da16f907cb
commit
d1f8f1e04a
@@ -372,9 +372,11 @@ static int lis3lv02d_add(struct acpi_device *device)
|
|||||||
INIT_WORK(&hpled_led.work, delayed_set_status_worker);
|
INIT_WORK(&hpled_led.work, delayed_set_status_worker);
|
||||||
ret = led_classdev_register(NULL, &hpled_led.led_classdev);
|
ret = led_classdev_register(NULL, &hpled_led.led_classdev);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
i8042_remove_filter(hp_accel_i8042_filter);
|
||||||
lis3lv02d_joystick_disable(&lis3_dev);
|
lis3lv02d_joystick_disable(&lis3_dev);
|
||||||
lis3lv02d_poweroff(&lis3_dev);
|
lis3lv02d_poweroff(&lis3_dev);
|
||||||
flush_work(&hpled_led.work);
|
flush_work(&hpled_led.work);
|
||||||
|
lis3lv02d_remove_fs(&lis3_dev);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user