Net / e100: Fix suspend of devices that cannot be power managed
authorRafael J. Wysocki <rjw@sisk.pl>
Sun, 14 Jun 2009 09:46:46 +0000 (09:46 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 18 Jun 2009 07:29:10 +0000 (00:29 -0700)
If the adapter is not power-manageable using either ACPI, or the
native PCI PM interface, __e100_power_off() returns error code, which
causes every attempt to suspend to fail, although it should return 0
in such a case.  Fix this problem by ignoring the return value of
pci_set_power_state() in __e100_power_off().

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Andreas Mohr <andi@lisas.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/e100.c

index f7929e89eb036128d715523e26a78f957c3ce071..efa680f4b8ddceebf8ce166cc3d02409de533a5e 100644 (file)
@@ -2895,12 +2895,13 @@ static void __e100_shutdown(struct pci_dev *pdev, bool *enable_wake)
 
 static int __e100_power_off(struct pci_dev *pdev, bool wake)
 {
-       if (wake) {
+       if (wake)
                return pci_prepare_to_sleep(pdev);
-       } else {
-               pci_wake_from_d3(pdev, false);
-               return pci_set_power_state(pdev, PCI_D3hot);
-       }
+
+       pci_wake_from_d3(pdev, false);
+       pci_set_power_state(pdev, PCI_D3hot);
+
+       return 0;
 }
 
 #ifdef CONFIG_PM