Re: BISECTED: 2.6.29-rc2 regression: hibernation hang on eeepc-701

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

 



On Thursday 22 January 2009, Alan Jenkins wrote:
> Rafael J. Wysocki wrote:
> > On Thursday 22 January 2009, Alan Jenkins wrote:
> >   
> >> Alan Jenkins wrote:
> >>     
> >>> Hibernation hangs just after writing the image.  With s2disk I can see
> >>> this from the console messages.  The same hang happens with kernel
> >>> swsusp ('echo disk | sudo tee /sys/power/state'), and I can see that
> >>> the image has been written from the HDD led.
> >>>
> >>> In either case, I can still hard-power-off and resume from hibernation.
> >>>
> >>> It doesn't hang if I use the shutdown method (either 'echo shutdown |
> >>> sudo tee /sys/power/disk' or  's2disk -P "shutdown method=shutdown"').
> >>>   
> >>>       
> >> I've bisected this to commit 571ff7584bb9e05fca0eb79752ae55a46faf3a98. 
> >> It doesn't revert cleanly from RC2.
> >>
> >> I think it's distinct from the other two reported suspend regressions. 
> >> I'm not using acpi-cpufreq, and the issue doesn't affect resume.
> >>     
> >
> > It looks distinct.
> >
> > Do you suspend this box to RAM and does it work?
> >   
> Yes, I do use STR on it occasionally, and it still works in RC2.
> 
> > Please retest with the appended patch applied.
> >   
> 
> That fixes it.

OK, it won't hurt to apply it.

Still, the hardware or the BIOS in your box seems to be broken, or both, so I'd
like to debug it a bit more if you don't mind.

Can you please test the patch below instead of the previous one?

Rafael

---
 drivers/pci/pci-driver.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Index: linux-2.6/drivers/pci/pci-driver.c
===================================================================
--- linux-2.6.orig/drivers/pci/pci-driver.c
+++ linux-2.6/drivers/pci/pci-driver.c
@@ -660,7 +660,10 @@ static int pci_pm_poweroff(struct device
 	if (pci_has_legacy_pm_support(pci_dev))
 		return pci_legacy_suspend(dev, PMSG_HIBERNATE);
 
-	if (drv && drv->pm && drv->pm->poweroff) {
+	if (!drv || !drv->pm)
+		return pci_set_power_state(dev, PCI_D3hot);
+
+	if (drv->pm->poweroff) {
 		error = drv->pm->poweroff(dev);
 		suspend_report_result(drv->pm->poweroff, error);
 	}

_______________________________________________
linux-pm mailing list
linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/linux-pm

[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