From: Rafael J. Wysocki <rjw@sisk.pl>
Date: Thu, 22 Jan 2009 22:36:56 +0000 (+0100)
Subject: PCI PM: Fix hibernation breakage on EeePC 701
X-Git-Tag: v2.6.29-rc4~65^2~5
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=545ffd58adc86b8d33449dab44fe81b503a6f81b;p=linux.git

PCI PM: Fix hibernation breakage on EeePC 701

Hibernation breaks on EeePC 701 as a result of attempting to put one
of its (driverless) devices into a low power state.  Avoid that by
not attepmting to power manage driverless devices during hibernation.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Reported-and-tested-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---

diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index 4884c4840b3d..ab1d615425a8 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -669,7 +669,10 @@ static int pci_pm_poweroff(struct device *dev)
 	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 0;
+
+	if (drv->pm->poweroff) {
 		error = drv->pm->poweroff(dev);
 		suspend_report_result(drv->pm->poweroff, error);
 	}