On Fri, 24 Jan 2003, Luben Tuikov wrote: > >>A LLDD should and must *not* call scsi_unregister_host(). This brakes > >>all hierarchy. > > > > What I probably meant is the detect()/release() pair; release() itself > normally calls scsi_unregister(host); the point is that it got nudged > from ``above'', i.e. SCSI Core. > > How can a LLDD be certain that it can safely call scsi_unregister_host() > whenever it wishes? As Doug pointed out this leads to problems.
Apparently it can't. I don't mean to say that this was the right thing to do; I just meant that this is what Matt's currently-proposed patch does. Personally, I'm not very familiar with the details of the SCSI subsystem, and I don't know what preconditions are required for calling the various API's. > Furhtermore, are we talking about scsi_unregister_host() or > scsi_unregister(host)? The former does drivers and the latter > does hosts. This would mean that my original statement was > nevertheless correct, how can a LLDD decide to unload itself safely? I did indeed type it wrong. The code first calls scsi_remove_host(host) and then it calls scsi_unregister(host). Alan Stern ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel