aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas/mpt2sas_scsih.c
diff options
context:
space:
mode:
authorKashyap, Desai <kashyap.desai@lsi.com>2009-08-07 10:07:59 -0400
committerJames Bottomley <James.Bottomley@suse.de>2009-08-13 17:30:23 -0400
commite4750c989f732555fca86dd73d488c79972362db (patch)
tree8987b1c48b6e987b000c2e114ea233aeacdd5e6d /drivers/scsi/mpt2sas/mpt2sas_scsih.c
parent6bd4e1e4d6023f4da069fd68729c502cc4e6dfd0 (diff)
[SCSI] mpt2sas: fix crash due to Watchdog is active while OS in standby mode
Fix oops ocurring at hibernation time. This oops was due to the firmware fault watchdog timer still running after we freed resources. To fix the issue we need to terminate the watchdog timer at hibernation time. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/mpt2sas/mpt2sas_scsih.c')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_scsih.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
index 25c8d8294af6..2e9a4445596f 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
@@ -5824,6 +5824,7 @@ _scsih_suspend(struct pci_dev *pdev, pm_message_t state)
5824 struct MPT2SAS_ADAPTER *ioc = shost_priv(shost); 5824 struct MPT2SAS_ADAPTER *ioc = shost_priv(shost);
5825 u32 device_state; 5825 u32 device_state;
5826 5826
5827 mpt2sas_base_stop_watchdog(ioc);
5827 flush_scheduled_work(); 5828 flush_scheduled_work();
5828 scsi_block_requests(shost); 5829 scsi_block_requests(shost);
5829 device_state = pci_choose_state(pdev, state); 5830 device_state = pci_choose_state(pdev, state);
@@ -5866,6 +5867,7 @@ _scsih_resume(struct pci_dev *pdev)
5866 5867
5867 mpt2sas_base_hard_reset_handler(ioc, CAN_SLEEP, SOFT_RESET); 5868 mpt2sas_base_hard_reset_handler(ioc, CAN_SLEEP, SOFT_RESET);
5868 scsi_unblock_requests(shost); 5869 scsi_unblock_requests(shost);
5870 mpt2sas_base_start_watchdog(ioc);
5869 return 0; 5871 return 0;
5870} 5872}
5871#endif /* CONFIG_PM */ 5873#endif /* CONFIG_PM */