Re: Regression from 2.6.26: Hibernation (possibly suspend) broken on Toshiba R500 (bisected)

From: Rafael J. Wysocki
Date: Fri Dec 05 2008 - 21:19:10 EST


On Saturday, 6 of December 2008, Linus Torvalds wrote:
>
> On Sat, 6 Dec 2008, Rafael J. Wysocki wrote:
> >
> > It only affects the legacy handling, but the non-legacy handling was left
> > untouched. IOW, the old "default" functions are still there and are being
> > called by the "non-legacy" code (it's only used by USB at the moment, AFAICS).
>
> Ok.
>
> > Anyway, I did the test doing it only to the devices which don't have any
> > non-default suspend-resume handling at all and _that_ apparently fixed the
> > problem on my box. :-)
>
> Which makes sense, btw. Because if you do the pci_save_state() on a device
> that _does_ have a suspend function, you'll be saving the post-suspend
> state - ie the device turned off.
>
> So yeah, we really can only do the default suspend if the device has no
> pre-existing suspend function - or we'd need to make sure that all PCI
> drivers that do have suspend functions would only do the higher-level
> functionality.
>
> Anyway, what I'm most interested in hearing is whether this actually
> improves your situation.

Yes, it does, from what I can tell at the moment. :-)

Tomorrow I'll do more testing to (hopefully) confirm that.

> I can _easily_ see that your resume problem could be due to interrupt
> timing. That's especially true if there are shared interrupts, but even in
> the absense of that, I'm not at all sure that the e1000e resume code is
> interrupt-safe, for example.

Agreed.

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