ieee1394: ohci1394: check for errors in suspend or resume
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Sun, 17 Sep 2006 17:41:45 +0000 (19:41 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Sun, 17 Sep 2006 17:41:45 +0000 (19:41 +0200)
Some of the suspend and resume litany may fail.
Tell the PCI core about it.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/ieee1394/ohci1394.c

index 54d686a..8fd0030 100644 (file)
@@ -3546,15 +3546,19 @@ static int ohci1394_pci_resume (struct pci_dev *pdev)
 
        pci_set_power_state(pdev, PCI_D0);
        pci_restore_state(pdev);
-       pci_enable_device(pdev);
-
-       return 0;
+       return pci_enable_device(pdev);
 }
 
 static int ohci1394_pci_suspend (struct pci_dev *pdev, pm_message_t state)
 {
-       pci_save_state(pdev);
-       pci_set_power_state(pdev, pci_choose_state(pdev, state));
+       int err;
+
+       err = pci_save_state(pdev);
+       if (err)
+               goto out;
+       err = pci_set_power_state(pdev, pci_choose_state(pdev, state));
+       if (err)
+               goto out;
 
 /* PowerMac suspend code comes last */
 #ifdef CONFIG_PPC_PMAC
@@ -3567,7 +3571,8 @@ static int ohci1394_pci_suspend (struct pci_dev *pdev, pm_message_t state)
                        pmac_call_feature(PMAC_FTR_1394_ENABLE, of_node, 0, 0);
        }
 #endif /* CONFIG_PPC_PMAC */
-       return 0;
+out:
+       return err;
 }
 #endif /* CONFIG_PM */