aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/u14-34f.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/u14-34f.c')
-rw-r--r--drivers/scsi/u14-34f.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/scsi/u14-34f.c b/drivers/scsi/u14-34f.c
index dca215411f68..98369ce09283 100644
--- a/drivers/scsi/u14-34f.c
+++ b/drivers/scsi/u14-34f.c
@@ -446,8 +446,6 @@ static struct scsi_host_template driver_template = {
446 .release = u14_34f_release, 446 .release = u14_34f_release,
447 .queuecommand = u14_34f_queuecommand, 447 .queuecommand = u14_34f_queuecommand,
448 .eh_abort_handler = u14_34f_eh_abort, 448 .eh_abort_handler = u14_34f_eh_abort,
449 .eh_device_reset_handler = NULL,
450 .eh_bus_reset_handler = NULL,
451 .eh_host_reset_handler = u14_34f_eh_host_reset, 449 .eh_host_reset_handler = u14_34f_eh_host_reset,
452 .bios_param = u14_34f_bios_param, 450 .bios_param = u14_34f_bios_param,
453 .slave_configure = u14_34f_slave_configure, 451 .slave_configure = u14_34f_slave_configure,
@@ -1419,16 +1417,20 @@ static int u14_34f_eh_host_reset(struct scsi_cmnd *SCarg) {
1419 printk("%s: reset, enter, target %d.%d:%d, pid %ld.\n", 1417 printk("%s: reset, enter, target %d.%d:%d, pid %ld.\n",
1420 BN(j), SCarg->device->channel, SCarg->device->id, SCarg->device->lun, SCarg->pid); 1418 BN(j), SCarg->device->channel, SCarg->device->id, SCarg->device->lun, SCarg->pid);
1421 1419
1420 spin_lock_irq(sh[j]->host_lock);
1421
1422 if (SCarg->host_scribble == NULL) 1422 if (SCarg->host_scribble == NULL)
1423 printk("%s: reset, pid %ld inactive.\n", BN(j), SCarg->pid); 1423 printk("%s: reset, pid %ld inactive.\n", BN(j), SCarg->pid);
1424 1424
1425 if (HD(j)->in_reset) { 1425 if (HD(j)->in_reset) {
1426 printk("%s: reset, exit, already in reset.\n", BN(j)); 1426 printk("%s: reset, exit, already in reset.\n", BN(j));
1427 spin_unlock_irq(sh[j]->host_lock);
1427 return FAILED; 1428 return FAILED;
1428 } 1429 }
1429 1430
1430 if (wait_on_busy(sh[j]->io_port, MAXLOOP)) { 1431 if (wait_on_busy(sh[j]->io_port, MAXLOOP)) {
1431 printk("%s: reset, exit, timeout error.\n", BN(j)); 1432 printk("%s: reset, exit, timeout error.\n", BN(j));
1433 spin_unlock_irq(sh[j]->host_lock);
1432 return FAILED; 1434 return FAILED;
1433 } 1435 }
1434 1436
@@ -1479,6 +1481,7 @@ static int u14_34f_eh_host_reset(struct scsi_cmnd *SCarg) {
1479 1481
1480 if (wait_on_busy(sh[j]->io_port, MAXLOOP)) { 1482 if (wait_on_busy(sh[j]->io_port, MAXLOOP)) {
1481 printk("%s: reset, cannot reset, timeout error.\n", BN(j)); 1483 printk("%s: reset, cannot reset, timeout error.\n", BN(j));
1484 spin_unlock_irq(sh[j]->host_lock);
1482 return FAILED; 1485 return FAILED;
1483 } 1486 }
1484 1487
@@ -1540,6 +1543,7 @@ static int u14_34f_eh_host_reset(struct scsi_cmnd *SCarg) {
1540 if (arg_done) printk("%s: reset, exit, pid %ld done.\n", BN(j), SCarg->pid); 1543 if (arg_done) printk("%s: reset, exit, pid %ld done.\n", BN(j), SCarg->pid);
1541 else printk("%s: reset, exit.\n", BN(j)); 1544 else printk("%s: reset, exit.\n", BN(j));
1542 1545
1546 spin_unlock_irq(sh[j]->host_lock);
1543 return SUCCESS; 1547 return SUCCESS;
1544} 1548}
1545 1549