platform/x86: wmi: release mutex on module acquistion failure
authorMario Limonciello <mario.limonciello@dell.com>
Mon, 6 Nov 2017 03:34:33 +0000 (21:34 -0600)
committerDarren Hart (VMware) <dvhart@infradead.org>
Wed, 8 Nov 2017 20:58:36 +0000 (12:58 -0800)
This failure mode should have also released the mutex.

Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
drivers/platform/x86/wmi.c

index 8c31ed4..791449a 100644 (file)
@@ -868,8 +868,10 @@ static long wmi_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
        /* let the driver do any filtering and do the call */
        wdriver = container_of(wblock->dev.dev.driver,
                               struct wmi_driver, driver);
-       if (!try_module_get(wdriver->driver.owner))
-               return -EBUSY;
+       if (!try_module_get(wdriver->driver.owner)) {
+               ret = -EBUSY;
+               goto out_ioctl;
+       }
        ret = wdriver->filter_callback(&wblock->dev, cmd, buf);
        module_put(wdriver->driver.owner);
        if (ret)