diff options
Diffstat (limited to 'drivers/usb/core/hcd.c')
| -rw-r--r-- | drivers/usb/core/hcd.c | 6 | 
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c index bc84106ac05..75ba2091f9b 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c @@ -1011,10 +1011,7 @@ static int register_root_hub(struct usb_hcd *hcd)  	if (retval) {  		dev_err (parent_dev, "can't register root hub for %s, %d\n",  				dev_name(&usb_dev->dev), retval); -	} -	mutex_unlock(&usb_bus_list_lock); - -	if (retval == 0) { +	} else {  		spin_lock_irq (&hcd_root_hub_lock);  		hcd->rh_registered = 1;  		spin_unlock_irq (&hcd_root_hub_lock); @@ -1023,6 +1020,7 @@ static int register_root_hub(struct usb_hcd *hcd)  		if (HCD_DEAD(hcd))  			usb_hc_died (hcd);	/* This time clean up */  	} +	mutex_unlock(&usb_bus_list_lock);  	return retval;  }  |