diff options
Diffstat (limited to 'drivers/scsi/aha1542.c')
-rw-r--r-- | drivers/scsi/aha1542.c | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/drivers/scsi/aha1542.c b/drivers/scsi/aha1542.c index e9920a009593..9ec4641a6348 100644 --- a/drivers/scsi/aha1542.c +++ b/drivers/scsi/aha1542.c | |||
@@ -1348,20 +1348,6 @@ static int aha1542_restart(struct Scsi_Host *shost) | |||
1348 | return 0; | 1348 | return 0; |
1349 | } | 1349 | } |
1350 | 1350 | ||
1351 | static int aha1542_abort(Scsi_Cmnd * SCpnt) | ||
1352 | { | ||
1353 | |||
1354 | /* | ||
1355 | * The abort command does not leave the device in a clean state where | ||
1356 | * it is available to be used again. Until this gets worked out, we | ||
1357 | * will leave it commented out. | ||
1358 | */ | ||
1359 | |||
1360 | printk(KERN_ERR "aha1542.c: Unable to abort command for target %d\n", | ||
1361 | SCpnt->device->id); | ||
1362 | return FAILED; | ||
1363 | } | ||
1364 | |||
1365 | /* | 1351 | /* |
1366 | * This is a device reset. This is handled by sending a special command | 1352 | * This is a device reset. This is handled by sending a special command |
1367 | * to the device. | 1353 | * to the device. |
@@ -1478,8 +1464,8 @@ static int aha1542_bus_reset(Scsi_Cmnd * SCpnt) | |||
1478 | * check for timeout, and if we are doing something like this | 1464 | * check for timeout, and if we are doing something like this |
1479 | * we are pretty desperate anyways. | 1465 | * we are pretty desperate anyways. |
1480 | */ | 1466 | */ |
1481 | spin_unlock_irq(SCpnt->device->host->host_lock); | ||
1482 | ssleep(4); | 1467 | ssleep(4); |
1468 | |||
1483 | spin_lock_irq(SCpnt->device->host->host_lock); | 1469 | spin_lock_irq(SCpnt->device->host->host_lock); |
1484 | 1470 | ||
1485 | WAIT(STATUS(SCpnt->device->host->io_port), | 1471 | WAIT(STATUS(SCpnt->device->host->io_port), |
@@ -1517,9 +1503,11 @@ static int aha1542_bus_reset(Scsi_Cmnd * SCpnt) | |||
1517 | } | 1503 | } |
1518 | } | 1504 | } |
1519 | 1505 | ||
1506 | spin_unlock_irq(SCpnt->device->host->host_lock); | ||
1520 | return SUCCESS; | 1507 | return SUCCESS; |
1521 | 1508 | ||
1522 | fail: | 1509 | fail: |
1510 | spin_unlock_irq(SCpnt->device->host->host_lock); | ||
1523 | return FAILED; | 1511 | return FAILED; |
1524 | } | 1512 | } |
1525 | 1513 | ||
@@ -1542,7 +1530,6 @@ static int aha1542_host_reset(Scsi_Cmnd * SCpnt) | |||
1542 | * check for timeout, and if we are doing something like this | 1530 | * check for timeout, and if we are doing something like this |
1543 | * we are pretty desperate anyways. | 1531 | * we are pretty desperate anyways. |
1544 | */ | 1532 | */ |
1545 | spin_unlock_irq(SCpnt->device->host->host_lock); | ||
1546 | ssleep(4); | 1533 | ssleep(4); |
1547 | spin_lock_irq(SCpnt->device->host->host_lock); | 1534 | spin_lock_irq(SCpnt->device->host->host_lock); |
1548 | 1535 | ||
@@ -1586,9 +1573,11 @@ static int aha1542_host_reset(Scsi_Cmnd * SCpnt) | |||
1586 | } | 1573 | } |
1587 | } | 1574 | } |
1588 | 1575 | ||
1576 | spin_unlock_irq(SCpnt->device->host->host_lock); | ||
1589 | return SUCCESS; | 1577 | return SUCCESS; |
1590 | 1578 | ||
1591 | fail: | 1579 | fail: |
1580 | spin_unlock_irq(SCpnt->device->host->host_lock); | ||
1592 | return FAILED; | 1581 | return FAILED; |
1593 | } | 1582 | } |
1594 | 1583 | ||
@@ -1817,7 +1806,6 @@ static Scsi_Host_Template driver_template = { | |||
1817 | .detect = aha1542_detect, | 1806 | .detect = aha1542_detect, |
1818 | .release = aha1542_release, | 1807 | .release = aha1542_release, |
1819 | .queuecommand = aha1542_queuecommand, | 1808 | .queuecommand = aha1542_queuecommand, |
1820 | .eh_abort_handler = aha1542_abort, | ||
1821 | .eh_device_reset_handler= aha1542_dev_reset, | 1809 | .eh_device_reset_handler= aha1542_dev_reset, |
1822 | .eh_bus_reset_handler = aha1542_bus_reset, | 1810 | .eh_bus_reset_handler = aha1542_bus_reset, |
1823 | .eh_host_reset_handler = aha1542_host_reset, | 1811 | .eh_host_reset_handler = aha1542_host_reset, |