diff options
author | Libo Chen <libo.chen@huawei.com> | 2013-05-09 06:08:33 (GMT) |
---|---|---|
committer | Chris Metcalf <cmetcalf@tilera.com> | 2013-05-09 17:56:40 (GMT) |
commit | abab8761d095e0805879df48a8ba6ea7f8b31c5e (patch) | |
tree | c1a82629529996480a7117763eef4cad0f72e537 /drivers/usb/host/ohci-tilegx.c | |
parent | 4833d7f0a86fd9a44f98bedf0c639e1da070d3a0 (diff) | |
download | linux-fsl-qoriq-abab8761d095e0805879df48a8ba6ea7f8b31c5e.tar.xz |
usb: tilegx: fix memleak when create hcd fail
When usb_create_hcd fail, we should call gxio_usb_host_destroy
Signed-off-by: Libo Chen <libo.chen@huawei.com>
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com> [extended to EHCI]
Diffstat (limited to 'drivers/usb/host/ohci-tilegx.c')
-rw-r--r-- | drivers/usb/host/ohci-tilegx.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/host/ohci-tilegx.c b/drivers/usb/host/ohci-tilegx.c index 1ae7b28..ea73009 100644 --- a/drivers/usb/host/ohci-tilegx.c +++ b/drivers/usb/host/ohci-tilegx.c @@ -112,8 +112,10 @@ static int ohci_hcd_tilegx_drv_probe(struct platform_device *pdev) hcd = usb_create_hcd(&ohci_tilegx_hc_driver, &pdev->dev, dev_name(&pdev->dev)); - if (!hcd) - return -ENOMEM; + if (!hcd) { + ret = -ENOMEM; + goto err_hcd; + } /* * We don't use rsrc_start to map in our registers, but seems like @@ -165,6 +167,7 @@ err_have_irq: err_no_irq: tilegx_stop_ohc(); usb_put_hcd(hcd); +err_hcd: gxio_usb_host_destroy(&pdata->usb_ctx); return ret; } |