From: Christoph Hellwig <hch@lst.de>
Date: Wed, 22 Feb 2006 22:35:52 +0000 (-0800)
Subject: [SCSI] esp: fix eh locking
X-Git-Tag: v2.6.16-rc5~59^2
X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=a6ceda7457b2303dcb07d3c472b25d52bbdb5a29;p=linux-2.6-omap-h63xx.git

[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>
---

diff --git a/drivers/scsi/esp.c b/drivers/scsi/esp.c
index f6900538be9..87a8c3d2072 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;
 }