summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_switch.c
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2007-02-08 01:52:25 +0000
committerjeff <jeff@FreeBSD.org>2007-02-08 01:52:25 +0000
commit7038c5de35a55914aa33a5549087ae49459e9851 (patch)
tree5b2024b3921a74fef4f84c62d6f9acf1a4db0712 /sys/kern/kern_switch.c
parent35c8706625e7720b1707dfc5d8df700ac0503a57 (diff)
downloadFreeBSD-src-7038c5de35a55914aa33a5549087ae49459e9851.zip
FreeBSD-src-7038c5de35a55914aa33a5549087ae49459e9851.tar.gz
- Change types for necent runq additions to u_char rather than int.
- Fix these types in ULE as well. This fixes bugs in priority index calculations in certain edge cases. (int)-1 % 64 != (uint)-1 % 64. Reported by: kkenn using pho's stress2.
Diffstat (limited to 'sys/kern/kern_switch.c')
-rw-r--r--sys/kern/kern_switch.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/kern/kern_switch.c b/sys/kern/kern_switch.c
index 13805ee..1ccf64c 100644
--- a/sys/kern/kern_switch.c
+++ b/sys/kern/kern_switch.c
@@ -306,7 +306,7 @@ runq_findbit(struct runq *rq)
}
static __inline int
-runq_findbit_from(struct runq *rq, int start)
+runq_findbit_from(struct runq *rq, u_char start)
{
struct rqbits *rqb;
int bit;
@@ -388,7 +388,7 @@ runq_add(struct runq *rq, struct td_sched *ts, int flags)
}
void
-runq_add_pri(struct runq *rq, struct td_sched *ts, int pri, int flags)
+runq_add_pri(struct runq *rq, struct td_sched *ts, u_char pri, int flags)
{
struct rqhead *rqh;
@@ -478,7 +478,7 @@ runq_choose(struct runq *rq)
}
struct td_sched *
-runq_choose_from(struct runq *rq, int idx)
+runq_choose_from(struct runq *rq, u_char idx)
{
struct rqhead *rqh;
struct td_sched *ts;
@@ -511,10 +511,10 @@ runq_remove(struct runq *rq, struct td_sched *ts)
}
void
-runq_remove_idx(struct runq *rq, struct td_sched *ts, int *idx)
+runq_remove_idx(struct runq *rq, struct td_sched *ts, u_char *idx)
{
struct rqhead *rqh;
- int pri;
+ u_char pri;
KASSERT(ts->ts_thread->td_proc->p_sflag & PS_INMEM,
("runq_remove_idx: process swapped out"));
OpenPOWER on IntegriCloud