diff options
author | Peter Chen <peter.chen@freescale.com> | 2011-01-06 16:51:19 +0800 |
---|---|---|
committer | Lily Zhang <r58066@freescale.com> | 2011-01-07 10:30:23 +0800 |
commit | 639a190b01cf99f5b3689ecd5163fae3b91a39ab (patch) | |
tree | 1ec3d621bf472a18cd39fb869e2359e634577991 | |
parent | 0c6edff05c6da52359714c2ae8977836716e023d (diff) |
ENGR00137667-2 usb-host: hcd needs to be removed if the host's probe is error
Hcd needs to be removed if the host's probe meets error, if not,
the system hang will occur.
Reported-by: Robby Cai <r63905@freescale.com>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
-rw-r--r-- | drivers/usb/host/ehci-arc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/usb/host/ehci-arc.c b/drivers/usb/host/ehci-arc.c index 4702587122d0..849ffc514b79 100644 --- a/drivers/usb/host/ehci-arc.c +++ b/drivers/usb/host/ehci-arc.c @@ -264,7 +264,7 @@ int usb_hcd_fsl_probe(const struct hc_driver *driver, if (!ehci->transceiver) { printk(KERN_ERR "can't find transceiver\n"); retval = -ENODEV; - goto err5; + goto err6; } retval = otg_set_host(ehci->transceiver, &ehci_to_hcd(ehci)->self); @@ -282,6 +282,8 @@ int usb_hcd_fsl_probe(const struct hc_driver *driver, fsl_platform_set_ahb_burst(hcd); ehci_testmode_init(hcd_to_ehci(hcd)); return retval; +err6: + usb_remove_hcd(hcd); err5: free_irq(irq, (void *)pdev); err4: |