All of lore.kernel.org
 help / color / mirror / Atom feed
* usb: gadget: dwc2: fix memory leak in gadget_init()
@ 2018-05-25  6:13 Stefan Wahren
  0 siblings, 0 replies; 5+ messages in thread
From: Stefan Wahren @ 2018-05-25  6:13 UTC (permalink / raw)
  To: Grigor Tovmasyan, Greg Kroah-Hartman, Minas Harutyunyan,
	linux-usb, Felipe Balbi
  Cc: Marek Szyprowski, John Youn

Hi Grigor,

> Grigor Tovmasyan <Grigor.Tovmasyan@synopsys.com> hat am 24. Mai 2018 um 16:22 geschrieben:
> 
> 
> Freed allocated request for ep0 to prevent memory leak in case when
> dwc2_driver_probe() failed.
> 
> Signed-off-by: Grigor Tovmasyan <tovmasya@synopsys.com>
> Cc: Stefan Wahren <stefan.wahren@i2se.com>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>

currently i don't much time, but at least my tests with Raspberry Pi Zero W were successful.

Tested-by: Stefan Wahren <stefan.wahren@i2se.com>

It would be nice if you can setup some real testing devices at Synopsys in order to identify such regressions faster. kernelci.org only tests the host role of the Raspberry Pi.

Thanks
Stefan

> ---
>  drivers/usb/dwc2/gadget.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
> index f0d9ccf1d665..7ccf56da1e50 100644
> --- a/drivers/usb/dwc2/gadget.c
> +++ b/drivers/usb/dwc2/gadget.c
> @@ -4739,9 +4739,11 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
>  	}
>  
>  	ret = usb_add_gadget_udc(dev, &hsotg->gadget);
> -	if (ret)
> +	if (ret) {
> +		dwc2_hsotg_ep_free_request(&hsotg->eps_out[0]->ep,
> +					   hsotg->ctrl_req);
>  		return ret;
> -
> +	}
>  	dwc2_hsotg_dump(hsotg);
>  
>  	return 0;
> @@ -4755,6 +4757,7 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
>  int dwc2_hsotg_remove(struct dwc2_hsotg *hsotg)
>  {
>  	usb_del_gadget_udc(&hsotg->gadget);
> +	dwc2_hsotg_ep_free_request(&hsotg->eps_out[0]->ep, hsotg->ctrl_req);
>  
>  	return 0;
>  }
> -- 
> 2.11.0
>
---
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* usb: gadget: dwc2: fix memory leak in gadget_init()
@ 2018-05-25  9:14 Minas Harutyunyan
  0 siblings, 0 replies; 5+ messages in thread
From: Minas Harutyunyan @ 2018-05-25  9:14 UTC (permalink / raw)
  To: Grigor Tovmasyan, Felipe Balbi, Greg Kroah-Hartman, linux-usb
  Cc: John Youn, Stefan Wahren, Marek Szyprowski

Acked-by: Minas Harutyunyan <hminas@synopsys.com>

On 5/24/2018 6:22 PM, Grigor Tovmasyan wrote:
> Freed allocated request for ep0 to prevent memory leak in case when
> dwc2_driver_probe() failed.
> 
> Signed-off-by: Grigor Tovmasyan <tovmasya@synopsys.com>
> Cc: Stefan Wahren <stefan.wahren@i2se.com>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>   drivers/usb/dwc2/gadget.c | 7 +++++--
>   1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
> index f0d9ccf1d665..7ccf56da1e50 100644
> --- a/drivers/usb/dwc2/gadget.c
> +++ b/drivers/usb/dwc2/gadget.c
> @@ -4739,9 +4739,11 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
>   	}
>   
>   	ret = usb_add_gadget_udc(dev, &hsotg->gadget);
> -	if (ret)
> +	if (ret) {
> +		dwc2_hsotg_ep_free_request(&hsotg->eps_out[0]->ep,
> +					   hsotg->ctrl_req);
>   		return ret;
> -
> +	}
>   	dwc2_hsotg_dump(hsotg);
>   
>   	return 0;
> @@ -4755,6 +4757,7 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
>   int dwc2_hsotg_remove(struct dwc2_hsotg *hsotg)
>   {
>   	usb_del_gadget_udc(&hsotg->gadget);
> +	dwc2_hsotg_ep_free_request(&hsotg->eps_out[0]->ep, hsotg->ctrl_req);
>   
>   	return 0;
>   }
>
---
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* usb: gadget: dwc2: fix memory leak in gadget_init()
@ 2018-05-25  5:13 Marek Szyprowski
  0 siblings, 0 replies; 5+ messages in thread
From: Marek Szyprowski @ 2018-05-25  5:13 UTC (permalink / raw)
  To: Grigor Tovmasyan, Felipe Balbi, Greg Kroah-Hartman,
	Minas Harutyunyan, linux-usb
  Cc: John Youn, Stefan Wahren

Hi Grigor,

On 2018-05-24 16:22, Grigor Tovmasyan wrote:
> Freed allocated request for ep0 to prevent memory leak in case when
> dwc2_driver_probe() failed.
>
> Signed-off-by: Grigor Tovmasyan <tovmasya@synopsys.com>
> Cc: Stefan Wahren <stefan.wahren@i2se.com>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>

Works fine on my Exynos SoC based test boards.

Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>

> ---
>   drivers/usb/dwc2/gadget.c | 7 +++++--
>   1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
> index f0d9ccf1d665..7ccf56da1e50 100644
> --- a/drivers/usb/dwc2/gadget.c
> +++ b/drivers/usb/dwc2/gadget.c
> @@ -4739,9 +4739,11 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
>   	}
>   
>   	ret = usb_add_gadget_udc(dev, &hsotg->gadget);
> -	if (ret)
> +	if (ret) {
> +		dwc2_hsotg_ep_free_request(&hsotg->eps_out[0]->ep,
> +					   hsotg->ctrl_req);
>   		return ret;
> -
> +	}
>   	dwc2_hsotg_dump(hsotg);
>   
>   	return 0;
> @@ -4755,6 +4757,7 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
>   int dwc2_hsotg_remove(struct dwc2_hsotg *hsotg)
>   {
>   	usb_del_gadget_udc(&hsotg->gadget);
> +	dwc2_hsotg_ep_free_request(&hsotg->eps_out[0]->ep, hsotg->ctrl_req);
>   
>   	return 0;
>   }

Best regards

^ permalink raw reply	[flat|nested] 5+ messages in thread

* usb: gadget: dwc2: fix memory leak in gadget_init()
@ 2018-05-24 14:25 Grigor Tovmasyan
  0 siblings, 0 replies; 5+ messages in thread
From: Grigor Tovmasyan @ 2018-05-24 14:25 UTC (permalink / raw)
  To: Felipe Balbi, Greg Kroah-Hartman, Minas Harutyunyan, linux-usb
  Cc: John Youn, Stefan Wahren, Marek Szyprowski

Hi Stefan, Marek

Please test this patch and tell if it will cause any problem.

Thanks,
Grigor

On 5/24/2018 6:22 PM, Grigor Tovmasyan wrote:
> Freed allocated request for ep0 to prevent memory leak in case when
> dwc2_driver_probe() failed.
> 
> Signed-off-by: Grigor Tovmasyan <tovmasya@synopsys.com>
> Cc: Stefan Wahren <stefan.wahren@i2se.com>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>   drivers/usb/dwc2/gadget.c | 7 +++++--
>   1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
> index f0d9ccf1d665..7ccf56da1e50 100644
> --- a/drivers/usb/dwc2/gadget.c
> +++ b/drivers/usb/dwc2/gadget.c
> @@ -4739,9 +4739,11 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
>   	}
>   
>   	ret = usb_add_gadget_udc(dev, &hsotg->gadget);
> -	if (ret)
> +	if (ret) {
> +		dwc2_hsotg_ep_free_request(&hsotg->eps_out[0]->ep,
> +					   hsotg->ctrl_req);
>   		return ret;
> -
> +	}
>   	dwc2_hsotg_dump(hsotg);
>   
>   	return 0;
> @@ -4755,6 +4757,7 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
>   int dwc2_hsotg_remove(struct dwc2_hsotg *hsotg)
>   {
>   	usb_del_gadget_udc(&hsotg->gadget);
> +	dwc2_hsotg_ep_free_request(&hsotg->eps_out[0]->ep, hsotg->ctrl_req);
>   
>   	return 0;
>   }
>
---
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* usb: gadget: dwc2: fix memory leak in gadget_init()
@ 2018-05-24 14:22 Grigor Tovmasyan
  0 siblings, 0 replies; 5+ messages in thread
From: Grigor Tovmasyan @ 2018-05-24 14:22 UTC (permalink / raw)
  To: Felipe Balbi, Greg Kroah-Hartman, Minas Harutyunyan, linux-usb
  Cc: John Youn, Grigor Tovmasyan, Stefan Wahren, Marek Szyprowski

Freed allocated request for ep0 to prevent memory leak in case when
dwc2_driver_probe() failed.

Signed-off-by: Grigor Tovmasyan <tovmasya@synopsys.com>
Cc: Stefan Wahren <stefan.wahren@i2se.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
---
 drivers/usb/dwc2/gadget.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
index f0d9ccf1d665..7ccf56da1e50 100644
--- a/drivers/usb/dwc2/gadget.c
+++ b/drivers/usb/dwc2/gadget.c
@@ -4739,9 +4739,11 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
 	}
 
 	ret = usb_add_gadget_udc(dev, &hsotg->gadget);
-	if (ret)
+	if (ret) {
+		dwc2_hsotg_ep_free_request(&hsotg->eps_out[0]->ep,
+					   hsotg->ctrl_req);
 		return ret;
-
+	}
 	dwc2_hsotg_dump(hsotg);
 
 	return 0;
@@ -4755,6 +4757,7 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
 int dwc2_hsotg_remove(struct dwc2_hsotg *hsotg)
 {
 	usb_del_gadget_udc(&hsotg->gadget);
+	dwc2_hsotg_ep_free_request(&hsotg->eps_out[0]->ep, hsotg->ctrl_req);
 
 	return 0;
 }

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-05-25  9:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-25  6:13 usb: gadget: dwc2: fix memory leak in gadget_init() Stefan Wahren
  -- strict thread matches above, loose matches on Subject: below --
2018-05-25  9:14 Minas Harutyunyan
2018-05-25  5:13 Marek Szyprowski
2018-05-24 14:25 Grigor Tovmasyan
2018-05-24 14:22 Grigor Tovmasyan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.