Messages in this thread | | | Date | Sun, 18 May 2008 00:36:40 +0200 | From | Tobias Diedrich <> | Subject | Re: hibernate event order question |
| |
Rafael J. Wysocki wrote:
> > Now for my question: > > AFAICS the ordering of events is as follows: > > 1) User reqests hibernate > > 2) Tasks are frozen > > 3) Device suspend callbacks get called > > 4) Device resume callbacks get called > > 5) Memory image is written to disk > > 6) Device suspend callbacks get called again to prepare for the system sleep > state.
According to my pci postcard this is not the case. I modified nv_suspend to wiggle port 0x80 with mdelay(100) between 0xa0/0x50 wiggles and mdelay(1000) before returning, so it is easily countable. nv_suspend is called only once per ethernet port (step 3 above). I have not yet tried adding a suspend_late handler.
> > In my case, I think the fix for the first bug (promiscous mode does > > not get restored on resume) breaks wake-on-lan (since the new value > > of NvRegPacketFilterFlags may be incompatible with wake-on-lan).
I reconfirmed this. Without the promiscous mode bugfix, wake-on-lan (partially) works. With the promiscous mode bugfix the machine doesn't wake up. This is also easily explainable by 6) not happening. :)
> > Shouldn't there be a 'prepare for poweroff'-callback, which gets > > called > > before the system is powered off for real? > > Yes, it should and it's called in recent kernels.
For what values of 'recent'? I'm running 2.6.26-rc2 here. :) How do I hook into this callback? (suspend_late maybe? Going to try that one next...)
-- Tobias PGP: http://9ac7e0bc.uguu.de このメールは十割再利用されたビットで作られています。 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |