summary refs log tree commit diff
path: root/drivers/scsi/megaraid.c
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2005-05-28 07:55:48 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-06-17 12:05:03 -0500
commit94d0e7b805961c44e4dc486ffc21075084bb7175 (patch)
tree1609752ea7a9adb28583147f0bea33a9f10877d7 /drivers/scsi/megaraid.c
parent8fa728a26886f56a9ee10a44fea0ddda301d21c3 (diff)
downloadlinux-94d0e7b805961c44e4dc486ffc21075084bb7175.tar.gz
[SCSI] allow sleeping in ->eh_device_reset_handler()
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/megaraid.c')
-rw-r--r--drivers/scsi/megaraid.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c
index 8d707b29027d..80b0c40c522b 100644
--- a/drivers/scsi/megaraid.c
+++ b/drivers/scsi/megaraid.c
@@ -1938,7 +1938,7 @@ megaraid_abort(Scsi_Cmnd *cmd)
 
 
 static int
-megaraid_reset(Scsi_Cmnd *cmd)
+__megaraid_reset(Scsi_Cmnd *cmd)
 {
 	adapter_t	*adapter;
 	megacmd_t	mc;
@@ -1972,6 +1972,18 @@ megaraid_reset(Scsi_Cmnd *cmd)
 	return rval;
 }
 
+static int
+megaraid_reset(Scsi_Cmnd *cmd)
+{
+	adapter = (adapter_t *)cmd->device->host->hostdata;
+	int rc;
+
+	spin_lock_irq(&adapter->lock);
+	rc = __megaraid_reset(cmd);
+	spin_unlock_irq(&adapter->lock);
+
+	return rc;
+}
 
 
 /**