> -----Original Message----- > From: platform-driver-x86-owner@xxxxxxxxxxxxxxx [mailto:platform-driver-x86- > owner@xxxxxxxxxxxxxxx] On Behalf Of Wei Yongjun > Sent: Tuesday, November 14, 2017 12:58 AM > To: Darren Hart <dvhart@xxxxxxxxxxxxx>; Andy Shevchenko > <andy@xxxxxxxxxxxxx>; Limonciello, Mario <Mario_Limonciello@xxxxxxxx> > Cc: Wei Yongjun <weiyongjun1@xxxxxxxxxx>; platform-driver- > x86@xxxxxxxxxxxxxxx > Subject: [PATCH -next] platform/x86: wmi: Fix missing unlock on error in > wmi_ioctl() > > Add the missing unlock before return from function wmi_ioctl() > in the error handling case. > > Fixes: 44b6b7661132 ("platform/x86: wmi: create userspace interface for drivers") > Signed-off-by: Wei Yongjun <weiyongjun1@xxxxxxxxxx> > --- > drivers/platform/x86/wmi.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c > index 8c31ed4..791449a 100644 > --- a/drivers/platform/x86/wmi.c > +++ b/drivers/platform/x86/wmi.c > @@ -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) Thanks Wei, This is already fixed in -next: http://git.infradead.org/users/dvhart/linux-platform-drivers-x86.git/commit/5e3e22971fb0b0d7d03286f1a619d0348748a243