summaryrefslogtreecommitdiff
path: root/drivers/message/fusion/mptscsih.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-03-20 10:20:07 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-03-20 10:20:07 -0700
commitd67e91117d104d98635e1b1623aafb26604cecbb (patch)
treea328b623ed07a33c1322ebc234e3236aa326494b /drivers/message/fusion/mptscsih.c
parent00c04db982b66fe9e8c8c5156808b905199bd645 (diff)
parent28aef2f7d9415b881c9145ab9b2c1c234064a243 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: [SCSI] a100u2w: fix bitmap lookup routine [SCSI] fix media change events for polled devices [SCSI] sd, sr: do not emit change event at device add [SCSI] mpt fusion: Power Management fixes for MPT SAS PCI-E controllers [SCSI] gdth: Allocate sense_buffer to prevent NULL pointer dereference [SCSI] arcmsr: fix iounmap error for Type B adapter [SCSI] isd200: Allocate sense_buffer for hacked up scsi_cmnd [SCSI] fix bsg queue oops with iscsi logout [SCSI] Fix dependency problems in SCSI drivers [SCSI] advansys: Fix bug in AdvLoadMicrocode
Diffstat (limited to 'drivers/message/fusion/mptscsih.c')
-rw-r--r--drivers/message/fusion/mptscsih.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c
index 0c252f60c4c1..c207bda6723b 100644
--- a/drivers/message/fusion/mptscsih.c
+++ b/drivers/message/fusion/mptscsih.c
@@ -1170,6 +1170,10 @@ mptscsih_shutdown(struct pci_dev *pdev)
int
mptscsih_suspend(struct pci_dev *pdev, pm_message_t state)
{
+ MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
+
+ scsi_block_requests(ioc->sh);
+ flush_scheduled_work();
mptscsih_shutdown(pdev);
return mpt_suspend(pdev,state);
}
@@ -1183,7 +1187,12 @@ mptscsih_suspend(struct pci_dev *pdev, pm_message_t state)
int
mptscsih_resume(struct pci_dev *pdev)
{
- return mpt_resume(pdev);
+ MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
+ int rc;
+
+ rc = mpt_resume(pdev);
+ scsi_unblock_requests(ioc->sh);
+ return rc;
}
#endif