diff options
author | Christoph Hellwig <hch@lst.de> | 2006-02-22 14:35:52 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-02-22 14:35:52 -0800 |
commit | a6ceda7457b2303dcb07d3c472b25d52bbdb5a29 (patch) | |
tree | 39b4831d384f690b1cec0435f2678258cde63436 /drivers/scsi/esp.c | |
parent | c45ec6566021ba3162233b575e7bc76d57b86688 (diff) | |
download | op-kernel-dev-a6ceda7457b2303dcb07d3c472b25d52bbdb5a29.zip op-kernel-dev-a6ceda7457b2303dcb07d3c472b25d52bbdb5a29.tar.gz |
[SCSI] esp: fix eh locking
esp_reset didn't get fixed when the EH locking changed.
->eh_bus_reset_handler is now called without the host lock held.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/scsi/esp.c')
-rw-r--r-- | drivers/scsi/esp.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/scsi/esp.c b/drivers/scsi/esp.c index f690053..87a8c3d 100644 --- a/drivers/scsi/esp.c +++ b/drivers/scsi/esp.c @@ -2068,14 +2068,12 @@ static int esp_reset(struct scsi_cmnd *SCptr) { struct esp *esp = (struct esp *) SCptr->device->host->hostdata; + spin_lock_irq(esp->ehost->host_lock); (void) esp_do_resetbus(esp); - spin_unlock_irq(esp->ehost->host_lock); wait_event(esp->reset_queue, (esp->resetting_bus == 0)); - spin_lock_irq(esp->ehost->host_lock); - return SUCCESS; } |