RE: [PATCH -next] platform/x86: wmi: Fix missing unlock on error in wmi_ioctl()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----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





[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux