summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>1999-12-20 21:32:32 +0000
committergibbs <gibbs@FreeBSD.org>1999-12-20 21:32:32 +0000
commit8c6b569c14ad632a9f7c27add0a5e7aed5a9f666 (patch)
tree78c634d44d2cd6019b34dab9e9b335e2047e5de4 /sys
parent20cf74c9c735899019e7b00c7627d5e9ccd07307 (diff)
downloadFreeBSD-src-8c6b569c14ad632a9f7c27add0a5e7aed5a9f666.zip
FreeBSD-src-8c6b569c14ad632a9f7c27add0a5e7aed5a9f666.tar.gz
Correct an "argument reversal" bug that could cause commands requed from
the input fifo to be returned as successful and frozen. Most, if not all, peripheral drivers do not check the qfrozen bit for successfully completed commands, so the result would not only be lost commands, but devices locked out from receiving commands. This was a bad bug that crept in two or three months ago during some target mode work.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/aic7xxx/aic7xxx.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/aic7xxx/aic7xxx.c b/sys/dev/aic7xxx/aic7xxx.c
index d28c239..8d1f0a0 100644
--- a/sys/dev/aic7xxx/aic7xxx.c
+++ b/sys/dev/aic7xxx/aic7xxx.c
@@ -5672,8 +5672,8 @@ bus_reset:
ahc_search_qinfifo(ahc, SCB_TARGET(scb),
channel, SCB_LUN(scb),
SCB_LIST_NULL,
- CAM_REQUEUE_REQ,
ROLE_INITIATOR,
+ CAM_REQUEUE_REQ,
SEARCH_COMPLETE);
xpt_print_path(scb->ccb->ccb_h.path);
printf("Queuing a BDR SCB\n");
@@ -5862,7 +5862,7 @@ ahc_abort_scbs(struct ahc_softc *ahc, int target, char channel,
active_scb = ahc_inb(ahc, SCBPTR);
found = ahc_search_qinfifo(ahc, target, channel, lun, tag,
- CAM_REQUEUE_REQ, role, SEARCH_COMPLETE);
+ role, CAM_REQUEUE_REQ, SEARCH_COMPLETE);
/*
* Search waiting for selection list.
OpenPOWER on IntegriCloud