diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-05-28 07:57:14 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-06-17 13:05:18 -0400 |
commit | df0ae2497ddefd72a87f3a3b34ff32455d7d4ae0 (patch) | |
tree | 552e02a44a21bd38db91729c85219542c2930ae2 /drivers/scsi/eata_pio.c | |
parent | 68b3aa7c9805aee9005a8ca53c5e99177961fbb9 (diff) |
[SCSI] allow sleeping in ->eh_host_reset_handler()
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/eata_pio.c')
-rw-r--r-- | drivers/scsi/eata_pio.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/scsi/eata_pio.c b/drivers/scsi/eata_pio.c index 0ee49dc50b85..04a06b71a5e2 100644 --- a/drivers/scsi/eata_pio.c +++ b/drivers/scsi/eata_pio.c | |||
@@ -486,8 +486,11 @@ static int eata_pio_host_reset(struct scsi_cmnd *cmd) | |||
486 | 486 | ||
487 | DBG(DBG_ABNORM, printk(KERN_WARNING "eata_pio_reset called pid:%ld target:" " %x lun: %x reason %x\n", cmd->pid, cmd->device->id, cmd->device->lun, cmd->abort_reason)); | 487 | DBG(DBG_ABNORM, printk(KERN_WARNING "eata_pio_reset called pid:%ld target:" " %x lun: %x reason %x\n", cmd->pid, cmd->device->id, cmd->device->lun, cmd->abort_reason)); |
488 | 488 | ||
489 | spin_lock_irq(host->host_lock); | ||
490 | |||
489 | if (HD(cmd)->state == RESET) { | 491 | if (HD(cmd)->state == RESET) { |
490 | printk(KERN_WARNING "eata_pio_reset: exit, already in reset.\n"); | 492 | printk(KERN_WARNING "eata_pio_reset: exit, already in reset.\n"); |
493 | spin_unlock_irq(host->host_lock); | ||
491 | return FAILED; | 494 | return FAILED; |
492 | } | 495 | } |
493 | 496 | ||
@@ -536,6 +539,8 @@ static int eata_pio_host_reset(struct scsi_cmnd *cmd) | |||
536 | 539 | ||
537 | HD(cmd)->state = 0; | 540 | HD(cmd)->state = 0; |
538 | 541 | ||
542 | spin_unlock_irq(host->host_lock); | ||
543 | |||
539 | if (success) { /* hmmm... */ | 544 | if (success) { /* hmmm... */ |
540 | DBG(DBG_ABNORM, printk(KERN_WARNING "eata_pio_reset: exit, success.\n")); | 545 | DBG(DBG_ABNORM, printk(KERN_WARNING "eata_pio_reset: exit, success.\n")); |
541 | return SUCCESS; | 546 | return SUCCESS; |