[PATCH] char: xillybus: fix a refcount leak in cleanup_dev()

Hangyu Hua posted 1 patch 4 years, 2 months ago
drivers/char/xillybus/xillyusb.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] char: xillybus: fix a refcount leak in cleanup_dev()
Posted by Hangyu Hua 4 years, 2 months ago
usb_get_dev is called in xillyusb_probe. So it is better to call
usb_put_dev before xdev is released.

Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
---
 drivers/char/xillybus/xillyusb.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/char/xillybus/xillyusb.c b/drivers/char/xillybus/xillyusb.c
index dc3551796e5e..39bcbfd908b4 100644
--- a/drivers/char/xillybus/xillyusb.c
+++ b/drivers/char/xillybus/xillyusb.c
@@ -549,6 +549,7 @@ static void cleanup_dev(struct kref *kref)
 	if (xdev->workq)
 		destroy_workqueue(xdev->workq);
 
+	usb_put_dev(xdev->udev);
 	kfree(xdev->channels); /* Argument may be NULL, and that's fine */
 	kfree(xdev);
 }
-- 
2.25.1
Re: [PATCH] char: xillybus: fix a refcount leak in cleanup_dev()
Posted by Eli Billauer 4 years, 2 months ago
I stand corrected. Thanks a lot.

    Eli

Acked-by: Eli Billauer <eli.billauer@gmail.com>

On 06/04/22 10:57, Hangyu Hua wrote:
> usb_get_dev is called in xillyusb_probe. So it is better to call
> usb_put_dev before xdev is released.
>
> Signed-off-by: Hangyu Hua<hbh25y@gmail.com>
> ---
>   drivers/char/xillybus/xillyusb.c | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/char/xillybus/xillyusb.c b/drivers/char/xillybus/xillyusb.c
> index dc3551796e5e..39bcbfd908b4 100644
> --- a/drivers/char/xillybus/xillyusb.c
> +++ b/drivers/char/xillybus/xillyusb.c
> @@ -549,6 +549,7 @@ static void cleanup_dev(struct kref *kref)
>   	if (xdev->workq)
>   		destroy_workqueue(xdev->workq);
>
> +	usb_put_dev(xdev->udev);
>   	kfree(xdev->channels); /* Argument may be NULL, and that's fine */
>   	kfree(xdev);
>   }
>