[linux-pm] Re: Hotplug events during sleep transition

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/26/05, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Mon, 26 Dec 2005, Dmitry Torokhov wrote:
>
> > Device removal could happen at any point, even during suspend transition.
> > The kernel should be able to handle this scenario therefore implementation
> > that assumes that device tree is frozen in flawed. As far as I understand
> > the only thing that does not work at the moment is invoking hotplug handler.
>
> The situation isn't all that bad.
>
> The device tree can be changed only by calling device_add or device_del
> (or the corresponding register/unregister routines).  That can only be
> done in process context; hence if processes are frozen it can't happen.
> Or rather, it can happen only if a suspend() or resume() method tries to
> do it.
>
> If those methods don't try to handle device removal or addition -- which
> in most cases they shouldn't -- then there's nothing to worry about.  It's
> only oddball situations (like calling the remove method when the driver
> doesn't define a suspend method) that cause problems.
>

Hmm, I am confused. What should ->resume() method do when it fails to
resume a device? I would say kill it, espacially if it is bus-generic
method. How else would we clean up after removed devices? And here we
have a problem because swsuspend likes to resume all devices before
writing the image and drivers don't rellay know if they are woken up
for real or just to complete suspend transition.

> And even then, with most drivers you don't get a hotplug event when the
> driver is unbound.  It happens only with things like usb-storage, that
> define child devices.
>

No, I'd say most drivers generate hotplug events because most of them
create/destroy class devices nowadays.

--
Dmitry


[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux