mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-20 04:19:41 +00:00
HID: nvidia-shield: Remove led_classdev_unregister in thunderstrike_create
Avoid calling thunderstrike_led_set_brightness from thunderstrike_create when led_classdev_unregister is called. led_classdev_unregister was called from thunderstrike_create in the error path. Calling thunderstrike_led_set_brightness in this situation is unsafe. Fixes: f88af60e74a5 ("HID: nvidia-shield: Support LED functionality for Thunderstrike") Signed-off-by: Rahul Rameshbabu <rrameshbabu@nvidia.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
1d7546042f
commit
cb818a047f
@ -513,21 +513,22 @@ static struct shield_device *thunderstrike_create(struct hid_device *hdev)
|
||||
|
||||
hid_set_drvdata(hdev, shield_dev);
|
||||
|
||||
ts->haptics_dev = shield_haptics_create(shield_dev, thunderstrike_play_effect);
|
||||
if (IS_ERR(ts->haptics_dev))
|
||||
return ERR_CAST(ts->haptics_dev);
|
||||
|
||||
ret = thunderstrike_led_create(ts);
|
||||
if (ret) {
|
||||
hid_err(hdev, "Failed to create Thunderstrike LED instance\n");
|
||||
return ERR_PTR(ret);
|
||||
}
|
||||
|
||||
ts->haptics_dev = shield_haptics_create(shield_dev, thunderstrike_play_effect);
|
||||
if (IS_ERR(ts->haptics_dev))
|
||||
goto err;
|
||||
}
|
||||
|
||||
hid_info(hdev, "Registered Thunderstrike controller\n");
|
||||
return shield_dev;
|
||||
|
||||
err:
|
||||
led_classdev_unregister(&ts->led_dev);
|
||||
if (ts->haptics_dev)
|
||||
input_unregister_device(ts->haptics_dev);
|
||||
return ERR_CAST(ts->haptics_dev);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user