diff options
Diffstat (limited to 'drivers/usb/usb.c')
-rw-r--r-- | drivers/usb/usb.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/usb/usb.c b/drivers/usb/usb.c index 1ad4babb88..76e033eb7b 100644 --- a/drivers/usb/usb.c +++ b/drivers/usb/usb.c @@ -453,6 +453,7 @@ static int __usb_init(void) { struct usb_device *dev, *tmp; struct usb_host *host; + int ret; list_for_each_entry_safe(dev, tmp, &usb_device_list, list) { list_del(&dev->list); @@ -466,7 +467,9 @@ static int __usb_init(void) dev_index = 0; list_for_each_entry(host, &host_list, list) { - host->init(host); + ret = host->init(host); + if (ret) + continue; dev = usb_alloc_new_device(); dev->host = host; |