]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
hwmon: (corsair-psu) Close HID device on probe errors
authorMyeonghun Pak <mhun512@gmail.com>
Fri, 24 Apr 2026 13:50:51 +0000 (22:50 +0900)
committerGuenter Roeck <linux@roeck-us.net>
Thu, 30 Apr 2026 18:20:24 +0000 (11:20 -0700)
corsairpsu_probe() opens the HID device before sending the device init
and firmware-info commands. If either command fails, the error path jumps
directly to fail_and_stop and skips hid_hw_close().

Use the existing fail_and_close label for those post-open failures so the
open count and low-level close callback are balanced before hid_hw_stop().

Fixes: d115b51e0e56 ("hwmon: add Corsair PSU HID controller driver")
Cc: stable@vger.kernel.org
Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
Reviewed-by: Wilken Gottwalt <wilken.gottwalt@posteo.net>
Link: https://lore.kernel.org/r/20260424135107.13720-1-mhun512@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/corsair-psu.c

index dddbd2463f8da70e2fe4292d5aeb41e9c51b7c84..76f3e1da68d09e94811b62eb9887fcd21ee2cd5a 100644 (file)
@@ -796,13 +796,13 @@ static int corsairpsu_probe(struct hid_device *hdev, const struct hid_device_id
        ret = corsairpsu_init(priv);
        if (ret < 0) {
                dev_err(&hdev->dev, "unable to initialize device (%d)\n", ret);
-               goto fail_and_stop;
+               goto fail_and_close;
        }
 
        ret = corsairpsu_fwinfo(priv);
        if (ret < 0) {
                dev_err(&hdev->dev, "unable to query firmware (%d)\n", ret);
-               goto fail_and_stop;
+               goto fail_and_close;
        }
 
        corsairpsu_get_criticals(priv);