From: Alan Stern on
On Sat, 6 Mar 2010, Rafael J. Wysocki wrote:

> > It's not difficult in theory to tie together the WoL setting and the
> > wakeup flag:
> >
> > If ethtool changes the WoL setting, the driver's ioctl handler
> > should make the corresponding change to the wakeup flag.
> >
> > If ethtool queries the WoL setting, the ioctl handler should
> > check the wakeup flag. If the flag is off, it should report
> > that WoL is disabled; if the flag is on, it should report that
> > WoL is enabled. (The same check should be made in the suspend
> > routine.)
>
> That's done this way already in all drivers I know, but we need a hook
> from wake_store() back to the driver.

What for? wake_store() can't be called during a sleep transition
(because tasks are frozen) or while the system is asleep. And if it is
called at any other time, the driver doesn't need to know until either
its ioctl handler or its suspend method runs.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Rafael J. Wysocki on
On Saturday 06 March 2010, Alan Stern wrote:
> On Sat, 6 Mar 2010, Rafael J. Wysocki wrote:
>
> > > It's not difficult in theory to tie together the WoL setting and the
> > > wakeup flag:
> > >
> > > If ethtool changes the WoL setting, the driver's ioctl handler
> > > should make the corresponding change to the wakeup flag.
> > >
> > > If ethtool queries the WoL setting, the ioctl handler should
> > > check the wakeup flag. If the flag is off, it should report
> > > that WoL is disabled; if the flag is on, it should report that
> > > WoL is enabled. (The same check should be made in the suspend
> > > routine.)
> >
> > That's done this way already in all drivers I know, but we need a hook
> > from wake_store() back to the driver.
>
> What for? wake_store() can't be called during a sleep transition
> (because tasks are frozen) or while the system is asleep. And if it is
> called at any other time, the driver doesn't need to know until either
> its ioctl handler or its suspend method runs.

Right.

That means, though, that the network adapter drivers' "get WoL" routines
should check should_wakeup too. They don't do that right now, but IMO it's
reasonable to request that they be modified.

Adding netdev to the Cc list.

Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/