fixing errors handling during pci_driver resume stage [fusion]
PATCH 3/5 fixing errors handling during pci_driver resume stage [fusion]
fusion pci drivers have to return correct error code during resume stage in case of errors.
Signed-off-by Dmitriy Monakhov <[email protected]>
-----
drivers/message/fusion/mptbase.c +6 -2
@@ -1524,7 +1524,7 @@ mpt_resume(struct pci_dev *pdev) {MPT_ADAPTER *ioc =pci_get_drvdata (pdev);u32 device_state = pdev->current_state; -int recovery_state; +int recovery_state, err; printk(MYIOC_s_INFO_FMT "pci-resume: pdev=0x%p, slot=%s, Previous operating state [D%d]\n",
@@ -1532,7 +1532,11 @@ mpt_resume(struct pci_dev *pdev)pci_set_power_state (pdev,0 );pci_restore_state (pdev); -pci_enable_device (pdev); + err =pci_enable_device (pdev); +if (err) { +dev_err (&pdev->dev,"Cannot enable PCI device, aborting.\n" ); +return err; + }/* enable interrupts */ CHIPREG_WRITE32 (&ioc->chip->IntMask,MPI_HIM_DIM );
drivers/message/fusion/mptscsih.c +3 -1
@@ -1120,8 +1120,10 @@ mptscsih_resume(struct pci_dev *pdev)MPT_ADAPTER *ioc =pci_get_drvdata (pdev);struct Scsi_Host *host = ioc->sh;MPT_SCSI_HOST *hd; +int err; -mpt_resume (pdev); +if ((err =mpt_resume (pdev))) +return err;if (!host)return 0 ;