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/aacraid/linit.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/aacraid/linit.c')
-rw-r--r-- | drivers/scsi/aacraid/linit.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index b48843402cf4..f7e9c89c4915 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c | |||
@@ -384,10 +384,13 @@ static int aac_eh_reset(struct scsi_cmnd* cmd) | |||
384 | AAC_DRIVERNAME); | 384 | AAC_DRIVERNAME); |
385 | 385 | ||
386 | 386 | ||
387 | spin_lock_irq(host->host_lock); | ||
388 | |||
387 | aac = (struct aac_dev *)host->hostdata; | 389 | aac = (struct aac_dev *)host->hostdata; |
388 | if (aac_adapter_check_health(aac)) { | 390 | if (aac_adapter_check_health(aac)) { |
389 | printk(KERN_ERR "%s: Host adapter appears dead\n", | 391 | printk(KERN_ERR "%s: Host adapter appears dead\n", |
390 | AAC_DRIVERNAME); | 392 | AAC_DRIVERNAME); |
393 | spin_unlock_irq(host->host_lock); | ||
391 | return -ENODEV; | 394 | return -ENODEV; |
392 | } | 395 | } |
393 | /* | 396 | /* |
@@ -418,6 +421,7 @@ static int aac_eh_reset(struct scsi_cmnd* cmd) | |||
418 | ssleep(1); | 421 | ssleep(1); |
419 | spin_lock_irq(host->host_lock); | 422 | spin_lock_irq(host->host_lock); |
420 | } | 423 | } |
424 | spin_unlock_irq(host->host_lock); | ||
421 | printk(KERN_ERR "%s: SCSI bus appears hung\n", AAC_DRIVERNAME); | 425 | printk(KERN_ERR "%s: SCSI bus appears hung\n", AAC_DRIVERNAME); |
422 | return -ETIMEDOUT; | 426 | return -ETIMEDOUT; |
423 | } | 427 | } |