diff options
Diffstat (limited to 'drivers/scsi/fd_mcs.c')
-rw-r--r-- | drivers/scsi/fd_mcs.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/drivers/scsi/fd_mcs.c b/drivers/scsi/fd_mcs.c index 770930e2aec3..fa652f8aa643 100644 --- a/drivers/scsi/fd_mcs.c +++ b/drivers/scsi/fd_mcs.c | |||
@@ -1241,18 +1241,9 @@ static int fd_mcs_abort(Scsi_Cmnd * SCpnt) | |||
1241 | return SUCCESS; | 1241 | return SUCCESS; |
1242 | } | 1242 | } |
1243 | 1243 | ||
1244 | static int fd_mcs_host_reset(Scsi_Cmnd * SCpnt) | ||
1245 | { | ||
1246 | return FAILED; | ||
1247 | } | ||
1248 | |||
1249 | static int fd_mcs_device_reset(Scsi_Cmnd * SCpnt) | ||
1250 | { | ||
1251 | return FAILED; | ||
1252 | } | ||
1253 | |||
1254 | static int fd_mcs_bus_reset(Scsi_Cmnd * SCpnt) { | 1244 | static int fd_mcs_bus_reset(Scsi_Cmnd * SCpnt) { |
1255 | struct Scsi_Host *shpnt = SCpnt->device->host; | 1245 | struct Scsi_Host *shpnt = SCpnt->device->host; |
1246 | unsigned long flags; | ||
1256 | 1247 | ||
1257 | #if DEBUG_RESET | 1248 | #if DEBUG_RESET |
1258 | static int called_once = 0; | 1249 | static int called_once = 0; |
@@ -1269,6 +1260,8 @@ static int fd_mcs_bus_reset(Scsi_Cmnd * SCpnt) { | |||
1269 | called_once = 1; | 1260 | called_once = 1; |
1270 | #endif | 1261 | #endif |
1271 | 1262 | ||
1263 | spin_lock_irqsave(shpnt->host_lock, flags); | ||
1264 | |||
1272 | outb(1, SCSI_Cntl_port); | 1265 | outb(1, SCSI_Cntl_port); |
1273 | do_pause(2); | 1266 | do_pause(2); |
1274 | outb(0, SCSI_Cntl_port); | 1267 | outb(0, SCSI_Cntl_port); |
@@ -1276,6 +1269,8 @@ static int fd_mcs_bus_reset(Scsi_Cmnd * SCpnt) { | |||
1276 | outb(0, SCSI_Mode_Cntl_port); | 1269 | outb(0, SCSI_Mode_Cntl_port); |
1277 | outb(PARITY_MASK, TMC_Cntl_port); | 1270 | outb(PARITY_MASK, TMC_Cntl_port); |
1278 | 1271 | ||
1272 | spin_unlock_irqrestore(shpnt->host_lock, flags); | ||
1273 | |||
1279 | /* 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 |
1280 | 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 |
1281 | 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. */ |
@@ -1357,8 +1352,6 @@ static Scsi_Host_Template driver_template = { | |||
1357 | .queuecommand = fd_mcs_queue, | 1352 | .queuecommand = fd_mcs_queue, |
1358 | .eh_abort_handler = fd_mcs_abort, | 1353 | .eh_abort_handler = fd_mcs_abort, |
1359 | .eh_bus_reset_handler = fd_mcs_bus_reset, | 1354 | .eh_bus_reset_handler = fd_mcs_bus_reset, |
1360 | .eh_host_reset_handler = fd_mcs_host_reset, | ||
1361 | .eh_device_reset_handler = fd_mcs_device_reset, | ||
1362 | .bios_param = fd_mcs_biosparam, | 1355 | .bios_param = fd_mcs_biosparam, |
1363 | .can_queue = 1, | 1356 | .can_queue = 1, |
1364 | .this_id = 7, | 1357 | .this_id = 7, |