HID: nintendo: unlock on error in joycon_leds_create()
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 10 Nov 2021 08:12:08 +0000 (11:12 +0300)
committerJiri Kosina <jkosina@suse.cz>
Wed, 10 Nov 2021 08:59:50 +0000 (09:59 +0100)
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>
drivers/hid/hid-nintendo.c

index a1e0f68..7e1d112 100644 (file)
@@ -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;
                }
        }