summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobert <robert@FreeBSD.org>2003-07-27 00:13:49 +0000
committerrobert <robert@FreeBSD.org>2003-07-27 00:13:49 +0000
commit0794d132914a8e8798ec55bc807dca3868fcf098 (patch)
tree5709c37fcd9c8ec295e787566f941f3e678d7867
parent77fa6d308c2e718d0d386a85e125fdcb7bc07b76 (diff)
downloadFreeBSD-src-0794d132914a8e8798ec55bc807dca3868fcf098.zip
FreeBSD-src-0794d132914a8e8798ec55bc807dca3868fcf098.tar.gz
Changed the type of the variable `qidx' from u_int8_t to int,
mainly to quiet a warning emitted by GCC 3.3 about comparing a variable to a value which is larger than the former can hold. The value was checked to make sure the `np->squeue' array is not accessed behind its boundary. This worked due to possibly accidental truncation when (np->squeueput + 1) was larger than or equal to MAX_START (256) when it was assigned to `qidx'. `qidx' is used to hold the next position in the start queue for an insertion. The new type was chosen because some other code in the function ncr_freeze_devq() also uses plain integers to hold those indices. Wrapped the line after the closing parenthesis of an `if' condition.
-rw-r--r--sys/pci/ncr.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/pci/ncr.c b/sys/pci/ncr.c
index ca121f2..a1d58a0 100644
--- a/sys/pci/ncr.c
+++ b/sys/pci/ncr.c
@@ -3880,7 +3880,7 @@ ncr_action (struct cam_sim *sim, union ccb *ccb)
int segments;
u_int8_t nego;
u_int8_t idmsg;
- u_int8_t qidx;
+ int qidx;
tp = &np->target[ccb->ccb_h.target_id];
csio = &ccb->csio;
@@ -4154,7 +4154,8 @@ ncr_action (struct cam_sim *sim, union ccb *ccb)
*/
qidx = np->squeueput + 1;
- if (qidx >= MAX_START) qidx=0;
+ if (qidx >= MAX_START)
+ qidx = 0;
np->squeue [qidx ] = NCB_SCRIPT_PHYS (np, idle);
np->squeue [np->squeueput] = CCB_PHYS (cp, phys);
np->squeueput = qidx;
OpenPOWER on IntegriCloud