summaryrefslogtreecommitdiffstats
path: root/sys/dev/aac
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2004-02-21 05:32:40 +0000
committerscottl <scottl@FreeBSD.org>2004-02-21 05:32:40 +0000
commit0c90ec6882debe4c12582eb39cf69236153ce76e (patch)
treea5b9522b2fb01b35f344a9225efdc721cee1e132 /sys/dev/aac
parent0e3db67aec382032077abcdb8a701b8059bc9389 (diff)
downloadFreeBSD-src-0c90ec6882debe4c12582eb39cf69236153ce76e.zip
FreeBSD-src-0c90ec6882debe4c12582eb39cf69236153ce76e.tar.gz
Fix a major brain-o. If the command needs to be put on the deferred queue,
take it off of the busy queue first. This should fix the 'command is on another queue' panic that showed up recently.
Diffstat (limited to 'sys/dev/aac')
-rw-r--r--sys/dev/aac/aac.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/aac/aac.c b/sys/dev/aac/aac.c
index 57017bb..0d08883 100644
--- a/sys/dev/aac/aac.c
+++ b/sys/dev/aac/aac.c
@@ -1290,6 +1290,7 @@ aac_map_command_sg(void *arg, bus_dma_segment_t *segs, int nseg, int error)
/* put the FIB on the outbound queue */
if (aac_enqueue_fib(sc, cm->cm_queue, cm) == EBUSY) {
+ aac_remove_busy(cm);
aac_unmap_command(cm);
aac_requeue_ready(cm);
}
OpenPOWER on IntegriCloud