usb: dwc3: gadget: avoid memory leak when failing to allocate all eps
If dwc3_gadget_init_endpoint() fails after allocate some of the eps, we need to free their memory to avoid leak. Signed-off-by: David Cohen <david.a.cohen@linux.intel.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
bbaa7c81e6
commit
e1f804676a
@ -2611,15 +2611,13 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
|||||||
ret = usb_add_gadget_udc(dwc->dev, &dwc->gadget);
|
ret = usb_add_gadget_udc(dwc->dev, &dwc->gadget);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dwc->dev, "failed to register udc\n");
|
dev_err(dwc->dev, "failed to register udc\n");
|
||||||
goto err5;
|
goto err4;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err5:
|
|
||||||
dwc3_gadget_free_endpoints(dwc);
|
|
||||||
|
|
||||||
err4:
|
err4:
|
||||||
|
dwc3_gadget_free_endpoints(dwc);
|
||||||
dma_free_coherent(dwc->dev, DWC3_EP0_BOUNCE_SIZE,
|
dma_free_coherent(dwc->dev, DWC3_EP0_BOUNCE_SIZE,
|
||||||
dwc->ep0_bounce, dwc->ep0_bounce_addr);
|
dwc->ep0_bounce, dwc->ep0_bounce_addr);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user