* [bug report] scsi: aacraid: Include HBA direct interface
@ 2017-02-13 18:41 Dan Carpenter
0 siblings, 0 replies; only message in thread
From: Dan Carpenter @ 2017-02-13 18:41 UTC (permalink / raw)
To: RaghavaAditya.Renukunta; +Cc: linux-scsi
Hello Raghava Aditya Renukunta,
The patch 423400e64d37: "scsi: aacraid: Include HBA direct interface"
from Feb 2, 2017, leads to the following static checker warning:
drivers/scsi/aacraid/commsup.c:762 aac_hba_send()
error: double unlock 'sem:&fibptr->event_wait'
drivers/scsi/aacraid/commsup.c
757 if (wait) {
758 spin_unlock_irqrestore(&fibptr->event_lock, flags);
759 /* Only set for first known interruptable command */
This comment just confuses me... What is a "known interruptable command?"
760 if (down_interruptible(&fibptr->event_wait)) {
down_interruptible() return -EINTR on failure so this test looks
reversed. It should probably be:
if (!down_interruptible(&fibptr->event_wait)) {
761 fibptr->done = 2;
762 up(&fibptr->event_wait);
763 }
764 spin_lock_irqsave(&fibptr->event_lock, flags);
765 if ((fibptr->done == 0) || (fibptr->done == 2)) {
766 fibptr->done = 2; /* Tell interrupt we aborted */
767 spin_unlock_irqrestore(&fibptr->event_lock, flags);
768 return -ERESTARTSYS;
769 }
770 spin_unlock_irqrestore(&fibptr->event_lock, flags);
771 WARN_ON(fibptr->done == 0);
772
773 if (unlikely(fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT))
774 return -ETIMEDOUT;
775
776 return 0;
777 }
regards,
dan carpenter
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-02-13 18:41 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-13 18:41 [bug report] scsi: aacraid: Include HBA direct interface Dan Carpenter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox