|  | @@ -1591,7 +1591,7 @@ static int usb_hotplugged ( struct usb_port *port ) {
 | 
		
	
		
			
			| 1591 | 1591 |  	if ( ( rc = hub->driver->speed ( hub, port ) ) != 0 ) {
 | 
		
	
		
			
			| 1592 | 1592 |  		DBGC ( hub, "USB hub %s port %d could not get speed: %s\n",
 | 
		
	
		
			
			| 1593 | 1593 |  		       hub->name, port->address, strerror ( rc ) );
 | 
		
	
		
			
			| 1594 |  | -		return rc;
 | 
		
	
		
			
			|  | 1594 | +		goto err_speed;
 | 
		
	
		
			
			| 1595 | 1595 |  	}
 | 
		
	
		
			
			| 1596 | 1596 |  
 | 
		
	
		
			
			| 1597 | 1597 |  	/* Detach device, if applicable */
 | 
		
	
	
		
			
			|  | @@ -1599,15 +1599,15 @@ static int usb_hotplugged ( struct usb_port *port ) {
 | 
		
	
		
			
			| 1599 | 1599 |  		usb_detached ( port );
 | 
		
	
		
			
			| 1600 | 1600 |  
 | 
		
	
		
			
			| 1601 | 1601 |  	/* Attach device, if applicable */
 | 
		
	
		
			
			| 1602 |  | -	if ( port->speed && ! port->attached ) {
 | 
		
	
		
			
			| 1603 |  | -		if ( ( rc = usb_attached ( port ) ) != 0 )
 | 
		
	
		
			
			| 1604 |  | -			return rc;
 | 
		
	
		
			
			| 1605 |  | -	}
 | 
		
	
		
			
			|  | 1602 | +	if ( port->speed && ( ! port->attached ) &&
 | 
		
	
		
			
			|  | 1603 | +	     ( ( rc = usb_attached ( port ) ) != 0 ) )
 | 
		
	
		
			
			|  | 1604 | +		goto err_attached;
 | 
		
	
		
			
			| 1606 | 1605 |  
 | 
		
	
		
			
			|  | 1606 | + err_attached:
 | 
		
	
		
			
			|  | 1607 | + err_speed:
 | 
		
	
		
			
			| 1607 | 1608 |  	/* Clear any recorded disconnections */
 | 
		
	
		
			
			| 1608 | 1609 |  	port->disconnected = 0;
 | 
		
	
		
			
			| 1609 |  | -
 | 
		
	
		
			
			| 1610 |  | -	return 0;
 | 
		
	
		
			
			|  | 1610 | +	return rc;
 | 
		
	
		
			
			| 1611 | 1611 |  }
 | 
		
	
		
			
			| 1612 | 1612 |  
 | 
		
	
		
			
			| 1613 | 1613 |  /******************************************************************************
 |