diff options
author | gibbs <gibbs@FreeBSD.org> | 1999-12-20 21:32:32 +0000 |
---|---|---|
committer | gibbs <gibbs@FreeBSD.org> | 1999-12-20 21:32:32 +0000 |
commit | 8c6b569c14ad632a9f7c27add0a5e7aed5a9f666 (patch) | |
tree | 78c634d44d2cd6019b34dab9e9b335e2047e5de4 /sys/dev/aic7xxx | |
parent | 20cf74c9c735899019e7b00c7627d5e9ccd07307 (diff) | |
download | FreeBSD-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/dev/aic7xxx')
-rw-r--r-- | sys/dev/aic7xxx/aic7xxx.c | 4 |
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. |