/* remove this interface */ 
/* remove this interface if it has been registered */ 
void usb_disable_device(struct usb_device *dev, int skip_ep0){	int i;	dev_dbg(&dev->dev, "%s nuking %s URBs\n", __FUNCTION__,			skip_ep0 ? "non-ep0" : "all");	for (i = skip_ep0; i < 16; ++i) {		usb_disable_endpoint(dev, i);		usb_disable_endpoint(dev, i + USB_DIR_IN);	}	dev->toggle[0] = dev->toggle[1] = 0;	/* getting rid of interfaces will disconnect	 * any drivers bound to them (a key side effect)	 */	if (dev->actconfig) {		for (i = 0; i < dev->actconfig->desc.bNumInterfaces; i++) {			struct usb_interface	*interface;			/* remove this interface */			interface = dev->actconfig->interface[i];			dev_dbg (&dev->dev, "unregistering interface %s\n",				interface->dev.bus_id);			usb_remove_sysfs_intf_files(interface);			kfree(interface->cur_altsetting->string);			interface->cur_altsetting->string = NULL;			device_del (&interface->dev);		}		/* Now that the interfaces are unbound, nobody should		 * try to access them.		 */		for (i = 0; i < dev->actconfig->desc.bNumInterfaces; i++) {			put_device (&dev->actconfig->interface[i]->dev);			dev->actconfig->interface[i] = NULL;		}		dev->actconfig = NULL;		if (dev->state == USB_STATE_CONFIGURED)			usb_set_device_state(dev, USB_STATE_ADDRESS);	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/86d30741e480f40676c2173e1153368a4846da48/message.c/buggy/drivers/usb/core/message.c