I took a look at scsi_host_cancel(), scsi_device_cancel(), and a few other
routines. Three things stood out:
When a host is removed, currently executing requests are
aborted within the midlevel but the low-level driver is not
informed of this. Presumably it shouldn't care since it
ought to cancel its own outstanding I/O?
There's a race between scsi_host_cancel()/scsi_device_cancel()
and scsi_times_out(). If the timer fires before
scsi_device_cancel() can delete it, and scsi_host_cancel()
tests the SHOST_RECOVERY bit before the error handler manages
to set it, then you will remove a host that's still in error
recovery.
There's no protection against accessing the host template
via procfs, if a user process pins the file during
scsi_remove_host(). You probably are already aware of this.
Alan Stern
-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel