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

From: Linus Torvalds
Date: Fri Dec 05 2008 - 20:56:13 EST




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. 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.

Linus
--
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/