aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2006-02-22 14:35:52 -0800
committerDavid S. Miller <davem@davemloft.net>2006-02-22 14:35:52 -0800
commita6ceda7457b2303dcb07d3c472b25d52bbdb5a29 (patch)
tree39b4831d384f690b1cec0435f2678258cde63436
parentc45ec6566021ba3162233b575e7bc76d57b86688 (diff)
downloadlinux-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>
-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 f6900538be9084..87a8c3d2072c40 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;
}