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

Reply via email to