usb: gadget: fusb300_udc: Fix memory leak of fusb300->ep[i]
There is no deallocation of fusb300->ep[i] elements, allocated at fusb300_probe. The patch adds deallocation of fusb300->ep array elements. Signed-off-by: Young Xiao <92siuyang@gmail.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
parent
b5bbe22353
commit
62fd0e0a24
|
@ -1342,12 +1342,15 @@ static const struct usb_gadget_ops fusb300_gadget_ops = {
|
|||
static int fusb300_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct fusb300 *fusb300 = platform_get_drvdata(pdev);
|
||||
int i;
|
||||
|
||||
usb_del_gadget_udc(&fusb300->gadget);
|
||||
iounmap(fusb300->reg);
|
||||
free_irq(platform_get_irq(pdev, 0), fusb300);
|
||||
|
||||
fusb300_free_request(&fusb300->ep[0]->ep, fusb300->ep0_req);
|
||||
for (i = 0; i < FUSB300_MAX_NUM_EP; i++)
|
||||
kfree(fusb300->ep[i]);
|
||||
kfree(fusb300);
|
||||
|
||||
return 0;
|
||||
|
@ -1491,6 +1494,8 @@ clean_up:
|
|||
if (fusb300->ep0_req)
|
||||
fusb300_free_request(&fusb300->ep[0]->ep,
|
||||
fusb300->ep0_req);
|
||||
for (i = 0; i < FUSB300_MAX_NUM_EP; i++)
|
||||
kfree(fusb300->ep[i]);
|
||||
kfree(fusb300);
|
||||
}
|
||||
if (reg)
|
||||
|
|
Loading…
Reference in New Issue