On Thu, 2 Dec 2004, David Brownell wrote:

> On Thursday 02 December 2004 9:22 am, Alan Stern wrote:
> > Below is a composite of three patches pending for the usb-storage driver.  
> > Together they provide support for autosuspend.  The inactivity timeout is 
> > controlled by a module parameter named "autosuspend"; its value gives the 
> > timeout in seconds (0 means no autosuspend).
> 
> Cool!  I'll have to take a look soon.  (And at the hub autosuspend
> patch too...)  It's bigger than I'd have expected.  Care to sketch
> what those three patches do?

It's a little bigger than it needs to be, because I took the opportunity 
to reorder the #include lines in bunch of source files.  Ignoring that 
aspect, the important changes only affect a few files: usb.h, usb.c, and 
scsiglue.c.  Here's what the three patches do:

    1:  Allocate the usb-storage private data structure at the end
        of the SCSI host structure (exactly the same sort of thing
        as I did with the hcds!).  This brings an additional
        advantage since the host structure is reference-counted and
        hence the private structure can now reap that benefit.

    2:  Allow the control thread to persist after disconnect() returns.
        The private structure needs refcounting for this to work;
        otherwise it might disappear while the control thread was
        still trying to use it.  Note that there's nothing wrong with
        allowing the thread to live on after disconnection, so long as
        it doesn't try to access the device -- the only requirement is
        that the thread must exit before the module is unloaded.

    3:  Implement autosuspend and autoresume.  These need the persistent
        control thread, because the thread is what calls 
        usb_suspend_device and usb_resume_device.  If disconnect() had
        to wait for the thread to exit, we would get deadlock if the
        thread was waiting to lock the device for a suspend.

Alan Stern



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to