[PATCH -next] usb: host: ohci-tmio: Fix unchecked return value for device_wakeup_enable

Li Zhengyu posted 1 patch 3 years, 11 months ago
drivers/usb/host/ohci-tmio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH -next] usb: host: ohci-tmio: Fix unchecked return value for device_wakeup_enable
Posted by Li Zhengyu 3 years, 11 months ago
The return value of device_wakeup_enable() is unchecked, as the result
usb_remove_hcd() is unreachable even if device_wakeup_enable() is failed.

Fixes: 78c73414f4f6 ("USB: ohci: add support for tmio-ohci cell")

Signed-off-by: Li Zhengyu <lizhengyu3@huawei.com>
---
 drivers/usb/host/ohci-tmio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/host/ohci-tmio.c b/drivers/usb/host/ohci-tmio.c
index 49539b9f0e94..8148dc90c066 100644
--- a/drivers/usb/host/ohci-tmio.c
+++ b/drivers/usb/host/ohci-tmio.c
@@ -244,7 +244,7 @@ static int ohci_hcd_tmio_drv_probe(struct platform_device *dev)
 	if (ret)
 		goto err_add_hcd;
 
-	device_wakeup_enable(hcd->self.controller);
+	ret = device_wakeup_enable(hcd->self.controller);
 	if (ret == 0)
 		return ret;
 
-- 
2.17.1
Re: [PATCH -next] usb: host: ohci-tmio: Fix unchecked return value for device_wakeup_enable
Posted by Greg KH 3 years, 11 months ago
On Thu, May 19, 2022 at 10:04:34AM +0800, Li Zhengyu wrote:
> The return value of device_wakeup_enable() is unchecked, as the result
> usb_remove_hcd() is unreachable even if device_wakeup_enable() is failed.
> 
> Fixes: 78c73414f4f6 ("USB: ohci: add support for tmio-ohci cell")
> 
> Signed-off-by: Li Zhengyu <lizhengyu3@huawei.com>
> ---
>  drivers/usb/host/ohci-tmio.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/host/ohci-tmio.c b/drivers/usb/host/ohci-tmio.c
> index 49539b9f0e94..8148dc90c066 100644
> --- a/drivers/usb/host/ohci-tmio.c
> +++ b/drivers/usb/host/ohci-tmio.c
> @@ -244,7 +244,7 @@ static int ohci_hcd_tmio_drv_probe(struct platform_device *dev)
>  	if (ret)
>  		goto err_add_hcd;
>  
> -	device_wakeup_enable(hcd->self.controller);
> +	ret = device_wakeup_enable(hcd->self.controller);
>  	if (ret == 0)
>  		return ret;

But now if there is an error you do not clean up properly, so you have
memory leaks?

How did you test this?

thanks,

greg k-h
Re: [PATCH -next] usb: host: ohci-tmio: Fix unchecked return value for device_wakeup_enable
Posted by lizhengyu (E) 3 years, 11 months ago
On Thu, 19 May 2022 17:55:39 +0200, Greg KH <gregkh@linuxfoundation.org> 
wrote:
> On Thu, May 19, 2022 at 10:04:34AM +0800, Li Zhengyu wrote:
>> The return value of device_wakeup_enable() is unchecked, as the result
>> usb_remove_hcd() is unreachable even if device_wakeup_enable() is failed.
>>
>> Fixes: 78c73414f4f6 ("USB: ohci: add support for tmio-ohci cell")
>>
>> Signed-off-by: Li Zhengyu <lizhengyu3@huawei.com>
>> ---
>>   drivers/usb/host/ohci-tmio.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/usb/host/ohci-tmio.c b/drivers/usb/host/ohci-tmio.c
>> index 49539b9f0e94..8148dc90c066 100644
>> --- a/drivers/usb/host/ohci-tmio.c
>> +++ b/drivers/usb/host/ohci-tmio.c
>> @@ -244,7 +244,7 @@ static int ohci_hcd_tmio_drv_probe(struct platform_device *dev)
>>   	if (ret)
>>   		goto err_add_hcd;
>>   
>> -	device_wakeup_enable(hcd->self.controller);
>> +	ret = device_wakeup_enable(hcd->self.controller);
>>   	if (ret == 0)
>>   		return ret;
> But now if there is an error you do not clean up properly, so you have
> memory leaks?
>
> How did you test this?
There is no test. It is a suggest by Dmitry Baryshkov in previous patch 
https://lore.kernel.org/all/CALT56yO_ek55BGX4cKuTim2gWwQp7EXUFyh332MPYHPdi7xEWw@mail.gmail.com/ 

>
> thanks,
>
> greg k-h
> .