Description: handle error return from scsi_add_host Signed-off-by: Stephen Biggs diff -Nurdp -X dontdiff-osdl linux-2.6.11-rc3-mm-original/drivers/usb/image/microtek.c linux-2.6.11-rc3-mm/drivers/usb/image/microtek.c --- linux-2.6.11-rc3-mm-original/drivers/usb/image/microtek.c 2005-02-03 03:57:04.000000000 +0200 +++ linux-2.6.11-rc3-mm/drivers/usb/image/microtek.c 2005-02-09 23:07:41.000000000 +0200 @@ -809,7 +809,11 @@ static int mts_usb_probe(struct usb_inte goto out_free_urb; new_desc->host->hostdata[0] = (unsigned long)new_desc; - scsi_add_host(new_desc->host, NULL); /* XXX handle failure */ + if(scsi_add_host(new_desc->host, NULL)) { + usb_free_urb(new_desc->urb); + kfree(new_desc); + return -EIO; + } scsi_scan_host(new_desc->host); usb_set_intfdata(intf, new_desc);