| From 868837b0a94c6b1b1fdbc04d3ba218ca83432393 Mon Sep 17 00:00:00 2001 |
| From: Johan Hovold <johan@kernel.org> |
| Date: Thu, 24 Jul 2025 11:19:08 +0200 |
| Subject: usb: gadget: udc: renesas_usb3: fix device leak at unbind |
| |
| From: Johan Hovold <johan@kernel.org> |
| |
| commit 868837b0a94c6b1b1fdbc04d3ba218ca83432393 upstream. |
| |
| Make sure to drop the reference to the companion device taken during |
| probe when the driver is unbound. |
| |
| Fixes: 39facfa01c9f ("usb: gadget: udc: renesas_usb3: Add register of usb role switch") |
| Cc: stable@vger.kernel.org # 4.19 |
| Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Link: https://lore.kernel.org/r/20250724091910.21092-4-johan@kernel.org |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/usb/gadget/udc/renesas_usb3.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/usb/gadget/udc/renesas_usb3.c |
| +++ b/drivers/usb/gadget/udc/renesas_usb3.c |
| @@ -2594,6 +2594,7 @@ static int renesas_usb3_remove(struct pl |
| struct renesas_usb3 *usb3 = platform_get_drvdata(pdev); |
| |
| debugfs_remove_recursive(usb3->dentry); |
| + put_device(usb3->host_dev); |
| device_remove_file(&pdev->dev, &dev_attr_role); |
| |
| cancel_work_sync(&usb3->role_work); |