On Thu, 13 May 2004, Mike Anderson wrote:

> The LLDD queuecommand should not be called after the return of
> scsi_remove_host (unless we have a bug). The LLDD should not free its
> resources until the release function is called on the struct device
> passed in during the scsi_add_host call.

Ah.  We have a problem here, because usb-storage doesn't own that struct 
device.  It is owned by the USB core, and usb-storage has no way to know 
when its release function has been called.

Even worse, the release function may never be called at all.  The device
itself may still exist and be attached to the system even though the
usb-storage driver has been unbound from it.

There must be many other LLDDs with the same problem.  Any driver that 
manages a PCI host controller, for example.  The struct device it receives 
from the PCI layer isn't owned by the LLDD, yet that's what it must pass 
to scsi_add_host().

How should we handle 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