goto err1; 
goto err_register_bus; 
int usb_add_hcd(struct usb_hcd *hcd,		unsigned int irqnum, unsigned long irqflags){	int	retval;	dev_info(hcd->self.controller, "%s\n", hcd->product_desc);	/* till now HC has been in an indeterminate state ... */	if (hcd->driver->reset && (retval = hcd->driver->reset(hcd)) < 0) {		dev_err(hcd->self.controller, "can't reset\n");		return retval;	}	if ((retval = hcd_buffer_create(hcd)) != 0) {		dev_dbg(hcd->self.controller, "pool alloc failed\n");		return retval;	}	if ((retval = usb_register_bus(&hcd->self)) < 0)		goto err1;	if (hcd->driver->irq) {		char	buf[8], *bufp = buf;#ifdef __sparc__		bufp = __irq_itoa(irqnum);#else		sprintf(buf, "%d", irqnum);#endif		snprintf(hcd->irq_descr, sizeof(hcd->irq_descr), "%s:usb%d",				hcd->driver->description, hcd->self.busnum);		if ((retval = request_irq(irqnum, &usb_hcd_irq, irqflags,				hcd->irq_descr, hcd)) != 0) {			dev_err(hcd->self.controller,					"request interrupt %s failed\n", bufp);			goto err2;		}		hcd->irq = irqnum;		dev_info(hcd->self.controller, "irq %s, %s 0x%08llx\n", bufp,				(hcd->driver->flags & HCD_MEMORY) ?					"io mem" : "io base",					(unsigned long long)hcd->rsrc_start);	} else {		hcd->irq = -1;		if (hcd->rsrc_start)			dev_info(hcd->self.controller, "%s 0x%08llx\n",					(hcd->driver->flags & HCD_MEMORY) ?					"io mem" : "io base",					(unsigned long long)hcd->rsrc_start);	}	if ((retval = hcd->driver->start(hcd)) < 0) {		dev_err(hcd->self.controller, "startup error %d\n", retval);		goto err3;	}	if (hcd->uses_new_polling && hcd->poll_rh)		usb_hcd_poll_rh_status(hcd);	return retval; err3:	if (hcd->irq >= 0)		free_irq(irqnum, hcd); err2:	usb_deregister_bus(&hcd->self); err1:	hcd_buffer_destroy(hcd);	return retval;} 
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/8ec8d20b21f00a36343ca0ebd6c6be9421724a1e/hcd.c/clean/drivers/usb/core/hcd.c