[PATCH] usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe

Miaoqian Lin posted 1 patch 3 years, 10 months ago
drivers/usb/host/ehci-ppc-of.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe
Posted by Miaoqian Lin 3 years, 10 months ago
of_find_compatible_node() returns a node pointer with refcount
incremented, we should use of_node_put() on it when done.
Add missing of_node_put() to avoid refcount leak.

Fixes: 796bcae7361c ("USB: powerpc: Workaround for the PPC440EPX USBH_23 errata [take 3]")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
---
 drivers/usb/host/ehci-ppc-of.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/host/ehci-ppc-of.c b/drivers/usb/host/ehci-ppc-of.c
index 6bbaee74f7e7..28a19693c19f 100644
--- a/drivers/usb/host/ehci-ppc-of.c
+++ b/drivers/usb/host/ehci-ppc-of.c
@@ -148,6 +148,7 @@ static int ehci_hcd_ppc_of_probe(struct platform_device *op)
 		} else {
 			ehci->has_amcc_usb23 = 1;
 		}
+		of_node_put(np);
 	}
 
 	if (of_get_property(dn, "big-endian", NULL)) {
-- 
2.25.1
Re: [PATCH] usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe
Posted by Alan Stern 3 years, 10 months ago
On Thu, Jun 02, 2022 at 03:08:49PM +0400, Miaoqian Lin wrote:
> of_find_compatible_node() returns a node pointer with refcount
> incremented, we should use of_node_put() on it when done.
> Add missing of_node_put() to avoid refcount leak.
> 
> Fixes: 796bcae7361c ("USB: powerpc: Workaround for the PPC440EPX USBH_23 errata [take 3]")
> Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
> ---

Acked-by: Alan Stern <stern@rowland.harvard.edu>

>  drivers/usb/host/ehci-ppc-of.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/usb/host/ehci-ppc-of.c b/drivers/usb/host/ehci-ppc-of.c
> index 6bbaee74f7e7..28a19693c19f 100644
> --- a/drivers/usb/host/ehci-ppc-of.c
> +++ b/drivers/usb/host/ehci-ppc-of.c
> @@ -148,6 +148,7 @@ static int ehci_hcd_ppc_of_probe(struct platform_device *op)
>  		} else {
>  			ehci->has_amcc_usb23 = 1;
>  		}
> +		of_node_put(np);
>  	}
>  
>  	if (of_get_property(dn, "big-endian", NULL)) {
> -- 
> 2.25.1
>