summary refs log tree commit diff
path: root/drivers/scsi/megaraid
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
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')
-rw-r--r--drivers/scsi/megaraid/megaraid_mbox.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/scsi/megaraid/megaraid_mbox.c b/drivers/scsi/megaraid/megaraid_mbox.c
index bec4406011aa..057ed45b54b2 100644
--- a/drivers/scsi/megaraid/megaraid_mbox.c
+++ b/drivers/scsi/megaraid/megaraid_mbox.c
@@ -2726,7 +2726,7 @@ megaraid_abort_handler(struct scsi_cmnd *scp)
  * host
  **/
 static int
-megaraid_reset_handler(struct scsi_cmnd *scp)
+__megaraid_reset_handler(struct scsi_cmnd *scp)
 {
 	adapter_t	*adapter;
 	scb_t		*scb;
@@ -2847,6 +2847,18 @@ megaraid_reset_handler(struct scsi_cmnd *scp)
 	return rval;
 }
 
+static int
+megaraid_reset_handler(struct scsi_cmnd *cmd)
+{
+	int rc;
+
+	spin_lock_irq(cmd->device->host->host_lock);
+	rc = __megaraid_reset_handler(cmd);
+	spin_unlock_irq(cmd->device->host->host_lock);
+
+	return rc;
+}
+
 
 /*
  * START: internal commands library