diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2021-11-10 11:12:08 +0300 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2021-11-10 09:59:50 +0100 |
commit | 304dd3680b56a2a5c8eaff41bcf1a3e49adf7dfc (patch) | |
tree | bc36de9bacc47fa76edd95774433e6430af50e84 /drivers/hid/hid-nintendo.c | |
parent | f155dfeaa4ee21bce3f8f76b2addaec396b41b39 (diff) |
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/hid-nintendo.c')
-rw-r--r-- | drivers/hid/hid-nintendo.c | 5 |
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; } } |