summaryrefslogtreecommitdiffstats
path: root/drivers/hid
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2021-11-10 11:12:08 +0300
committerJiri Kosina <jkosina@suse.cz>2021-11-10 09:59:50 +0100
commit304dd3680b56a2a5c8eaff41bcf1a3e49adf7dfc (patch)
treebc36de9bacc47fa76edd95774433e6430af50e84 /drivers/hid
parentf155dfeaa4ee21bce3f8f76b2addaec396b41b39 (diff)
downloadlinux-304dd3680b56a2a5c8eaff41bcf1a3e49adf7dfc.tar.bz2
HID: nintendo: unlock on error in joycon_leds_create()
These two error paths need to drop the lock before returning. Fixes: c5e626769563 ("HID: nintendo: add player led support") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/hid-nintendo.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/hid/hid-nintendo.c b/drivers/hid/hid-nintendo.c
index a1e0f6849875..7e1d1127493e 100644
--- a/drivers/hid/hid-nintendo.c
+++ b/drivers/hid/hid-nintendo.c
@@ -1850,8 +1850,10 @@ static int joycon_leds_create(struct joycon_ctlr *ctlr)
d_name,
"green",
joycon_player_led_names[i]);
- if (!name)
+ if (!name) {
+ mutex_unlock(&joycon_input_num_mutex);
return -ENOMEM;
+ }
led = &ctlr->leds[i];
led->name = name;
@@ -1864,6 +1866,7 @@ static int joycon_leds_create(struct joycon_ctlr *ctlr)
ret = devm_led_classdev_register(&hdev->dev, led);
if (ret) {
hid_err(hdev, "Failed registering %s LED\n", led->name);
+ mutex_unlock(&joycon_input_num_mutex);
return ret;
}
}