From 474b74286487aca14e13978c966c37448fdc0502 Mon Sep 17 00:00:00 2001 From: Mark Salyzyn Date: Mon, 14 Apr 2008 14:20:16 -0400 Subject: [PATCH] --- yaml --- r: 89770 b: refs/heads/master c: e6990c6448ca9359b6d4ad027c0a6efbf4379e64 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/scsi/aacraid/commsup.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 71bd5119fbd6..1232d291d713 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 582df15327828570595d4be55b2b300dac5271c1 +refs/heads/master: e6990c6448ca9359b6d4ad027c0a6efbf4379e64 diff --git a/trunk/drivers/scsi/aacraid/commsup.c b/trunk/drivers/scsi/aacraid/commsup.c index 5156e057d062..23a8e9f8dcb4 100644 --- a/trunk/drivers/scsi/aacraid/commsup.c +++ b/trunk/drivers/scsi/aacraid/commsup.c @@ -515,10 +515,12 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, } udelay(5); } - } else - (void)down_interruptible(&fibptr->event_wait); + } else if (down_interruptible(&fibptr->event_wait) == 0) { + fibptr->done = 2; + up(&fibptr->event_wait); + } spin_lock_irqsave(&fibptr->event_lock, flags); - if (fibptr->done == 0) { + if ((fibptr->done == 0) || (fibptr->done == 2)) { fibptr->done = 2; /* Tell interrupt we aborted */ spin_unlock_irqrestore(&fibptr->event_lock, flags); return -EINTR;