aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/fd_mcs.c
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2005-05-28 07:56:31 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-06-17 13:05:10 -0400
commit68b3aa7c9805aee9005a8ca53c5e99177961fbb9 (patch)
tree3f28891df0b3a1ecdfe6a98547d8f3c43b74e905 /drivers/scsi/fd_mcs.c
parent94d0e7b805961c44e4dc486ffc21075084bb7175 (diff)
[SCSI] allow sleeping in ->eh_bus_reset_handler()
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/fd_mcs.c')
-rw-r--r--drivers/scsi/fd_mcs.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/scsi/fd_mcs.c b/drivers/scsi/fd_mcs.c
index 4a358aec2e59..fa652f8aa643 100644
--- a/drivers/scsi/fd_mcs.c
+++ b/drivers/scsi/fd_mcs.c
@@ -1243,6 +1243,7 @@ static int fd_mcs_abort(Scsi_Cmnd * SCpnt)
1243 1243
1244static int fd_mcs_bus_reset(Scsi_Cmnd * SCpnt) { 1244static int fd_mcs_bus_reset(Scsi_Cmnd * SCpnt) {
1245 struct Scsi_Host *shpnt = SCpnt->device->host; 1245 struct Scsi_Host *shpnt = SCpnt->device->host;
1246 unsigned long flags;
1246 1247
1247#if DEBUG_RESET 1248#if DEBUG_RESET
1248 static int called_once = 0; 1249 static int called_once = 0;
@@ -1259,6 +1260,8 @@ static int fd_mcs_bus_reset(Scsi_Cmnd * SCpnt) {
1259 called_once = 1; 1260 called_once = 1;
1260#endif 1261#endif
1261 1262
1263 spin_lock_irqsave(shpnt->host_lock, flags);
1264
1262 outb(1, SCSI_Cntl_port); 1265 outb(1, SCSI_Cntl_port);
1263 do_pause(2); 1266 do_pause(2);
1264 outb(0, SCSI_Cntl_port); 1267 outb(0, SCSI_Cntl_port);
@@ -1266,6 +1269,8 @@ static int fd_mcs_bus_reset(Scsi_Cmnd * SCpnt) {
1266 outb(0, SCSI_Mode_Cntl_port); 1269 outb(0, SCSI_Mode_Cntl_port);
1267 outb(PARITY_MASK, TMC_Cntl_port); 1270 outb(PARITY_MASK, TMC_Cntl_port);
1268 1271
1272 spin_unlock_irqrestore(shpnt->host_lock, flags);
1273
1269 /* Unless this is the very first call (i.e., SCPnt == NULL), everything 1274 /* Unless this is the very first call (i.e., SCPnt == NULL), everything
1270 is probably hosed at this point. We will, however, try to keep 1275 is probably hosed at this point. We will, however, try to keep
1271 things going by informing the high-level code that we need help. */ 1276 things going by informing the high-level code that we need help. */