if (status) 
if (status && status != -ENOTCONN) 
static int hub_port_reset(struct usb_hub *hub, int port1,				struct usb_device *udev, unsigned int delay){	int i, status;	/* Reset the port */	for (i = 0; i < PORT_RESET_TRIES; i++) {		status = set_port_feature(hub->hdev,				port1, USB_PORT_FEAT_RESET);		if (status)			dev_err(hub->intfdev,					"cannot reset port %d (err = %d)\n",					port1, status);		else {			status = hub_port_wait_reset(hub, port1, udev, delay);			if (status)				dev_dbg(hub->intfdev,						"port_wait_reset: err = %d\n",						status);		}		/* return on disconnect or reset */		switch (status) {		case 0:			/* TRSTRCY = 10 ms */			msleep(10);			/* FALL THROUGH */		case -ENOTCONN:		case -ENODEV:			clear_port_feature(hub->hdev,				port1, USB_PORT_FEAT_C_RESET);			/* FIXME need disconnect() for NOTATTACHED device */			usb_set_device_state(udev, status					? USB_STATE_NOTATTACHED					: USB_STATE_DEFAULT);			return status;		}		dev_dbg (hub->intfdev,			"port %d not enabled, trying reset again...\n",			port1);		delay = HUB_LONG_RESET_TIME;	}	dev_err (hub->intfdev,		"Cannot enable port %i.  Maybe the USB cable is bad?\n",		port1);	return status;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/dd16525b698528172899f10c14a3eb6ddb888a53/hub.c/buggy/drivers/usb/core/hub.c