summaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2006-02-22 23:35:52 +0100
committerDavid S. Miller <davem@davemloft.net>2006-02-22 23:35:52 +0100
commita6ceda7457b2303dcb07d3c472b25d52bbdb5a29 (patch)
tree39b4831d384f690b1cec0435f2678258cde63436 /drivers/scsi
parentMerge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 (diff)
downloadlinux-a6ceda7457b2303dcb07d3c472b25d52bbdb5a29.tar.xz
linux-a6ceda7457b2303dcb07d3c472b25d52bbdb5a29.zip
[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')
-rw-r--r--drivers/scsi/esp.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/scsi/esp.c b/drivers/scsi/esp.c
index f6900538be90..87a8c3d2072c 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;
}