On Fri, 27 Sep 2002, Yuri Per wrote: > Failed usb_reset_device() means only that reset is not yet completed.
This is not so. There are several possible error returns from usb_reset_device() that can occur even before the reset has been initiated. Furthermore, it's possible that the reset, once started, will never complete because the device is hung. > If we will return success from bus_reset(), scsi layer will wait for 5 > seconds during which device will probably reconnect. > > --- a/drivers/usb/storage/scsiglue.c Fri Sep 27 18:20:19 2002 > +++ b/drivers/usb/storage/scsiglue.c Fri Sep 27 18:20:19 2002 > @@ -243,7 +243,7 @@ > US_DEBUGP("usb_reset_device returns %d\n", result); > if (result < 0) { > scsi_lock(srb->host); > - return FAILED; > + return SUCCESS; > } > > /* FIXME: This needs to lock out driver probing while it's working Making this change would violate the instructions given at the start of the usb_reset_device() function: /* * WARNING - If a driver calls usb_reset_device, you should simulate a * disconnect() and probe() for other interfaces you doesn't claim. This * is left up to the driver writer right now. This insures other drivers * have a chance to re-setup their interface. * * Take a look at proc_resetdevice in devio.c for some sample code to * do this. */ Alan Stern ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel