MPT fusion: handle PCI layer error on resume
Subsystems (2)
PATCH 13/30 MPT fusion: handle PCI layer error on resume
From: Jeff Garzik <[email protected]>
In the unlikely event of pci_enable_device() failure during resume, we do the minimalist solution and simply exit, rather than continuing to enable the hardware.
Signed-off-by Jeff Garzik <[email protected]>
Cc "Moore, Eric Dean" <[email protected]>
Cc James Bottomley <[email protected]>
Signed-off-by Andrew Morton <[email protected]>
---
drivers/message/fusion/mptbase.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
drivers/message/fusion/mptbase.c renamed from drivers/message/fusion/mptbase.c~mpt-fusion-handle-pci-layer-error-on-resume +8 -2
@@ -1515,7 +1515,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, rc; printk(MYIOC_s_INFO_FMT "pci-resume: pdev=0x%p, slot=%s, Previous operating state [D%d]\n",
@@ -1523,7 +1523,13 @@ mpt_resume(struct pci_dev *pdev)pci_set_power_state (pdev,0 );pci_restore_state (pdev); -pci_enable_device (pdev); + + rc =pci_enable_device (pdev); +if (rc) { +printk (MYIOC_s_INFO_FMT +"pci-resume: device enable failed\n" , ioc->name); +return rc; + }/* enable interrupts */ CHIPREG_WRITE32 (&ioc->chip->IntMask,MPI_HIM_DIM );
_