Skip to content

Commit cb818a0

Browse files
Binary-EaterJiri Kosina
authored andcommitted
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: f88af60 ("HID: nvidia-shield: Support LED functionality for Thunderstrike") Signed-off-by: Rahul Rameshbabu <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
1 parent 1d75460 commit cb818a0

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

drivers/hid/hid-nvidia-shield.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -513,21 +513,22 @@ static struct shield_device *thunderstrike_create(struct hid_device *hdev)
513513

514514
hid_set_drvdata(hdev, shield_dev);
515515

516+
ts->haptics_dev = shield_haptics_create(shield_dev, thunderstrike_play_effect);
517+
if (IS_ERR(ts->haptics_dev))
518+
return ERR_CAST(ts->haptics_dev);
519+
516520
ret = thunderstrike_led_create(ts);
517521
if (ret) {
518522
hid_err(hdev, "Failed to create Thunderstrike LED instance\n");
519-
return ERR_PTR(ret);
520-
}
521-
522-
ts->haptics_dev = shield_haptics_create(shield_dev, thunderstrike_play_effect);
523-
if (IS_ERR(ts->haptics_dev))
524523
goto err;
524+
}
525525

526526
hid_info(hdev, "Registered Thunderstrike controller\n");
527527
return shield_dev;
528528

529529
err:
530-
led_classdev_unregister(&ts->led_dev);
530+
if (ts->haptics_dev)
531+
input_unregister_device(ts->haptics_dev);
531532
return ERR_CAST(ts->haptics_dev);
532533
}
533534

0 commit comments

Comments
 (0)