[PATCH] aacraid: host_lock not released fix
authorMark Haverkamp <markh@osdl.org>
Fri, 14 Oct 2005 22:59:10 +0000 (15:59 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sat, 15 Oct 2005 00:10:13 +0000 (17:10 -0700)
While doing some testing of error cases I ran into this bug.  In some cases
the reset handler can exit with the host_lock still held.

Signed-off-by: Mark Haverkamp <markh@osdl.org>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/scsi/aacraid/linit.c

index de8490a92831b62cef00560a950c37c2e1dcd7e0..a1f9ceef0ac9080a710d04c6b4b2a496570bc159 100644 (file)
@@ -453,9 +453,9 @@ static int aac_eh_reset(struct scsi_cmnd* cmd)
                /*
                 * We can exit If all the commands are complete
                 */
+               spin_unlock_irq(host->host_lock);
                if (active == 0)
                        return SUCCESS;
-               spin_unlock_irq(host->host_lock);
                ssleep(1);
                spin_lock_irq(host->host_lock);
        }