>>> On Wed, Jun 4, 2008 at 5:09 PM, in message <1212613754.19205.25.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > On Wed, 2008-06-04 at 15:04 -0400, Gregory Haskins wrote: >> A rounding error was pointed out by Peter Zijlstra which would result >> in the structure holding priorities to be off by one. >> >> Signed-off-by: Gregory Haskins <ghaskins@xxxxxxxxxx> >> CC: Peter Zijlstra <peterz@xxxxxxxxxxxxx> >> --- >> >> kernel/sched_cpupri.h | 2 +- >> 1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/kernel/sched_cpupri.h b/kernel/sched_cpupri.h >> index 16d29b9..817c55c 100644 >> --- a/kernel/sched_cpupri.h >> +++ b/kernel/sched_cpupri.h >> @@ -4,7 +4,7 @@ >> #include <linux/sched.h> >> >> #define CPUPRI_NR_PRIORITIES 2+MAX_RT_PRIO >> -#define CPUPRI_NR_PRI_WORDS CPUPRI_NR_PRIORITIES/BITS_PER_LONG >> +#define CPUPRI_NR_PRI_WORDS (CPUPRI_NR_PRIORITIES + > BITS_PER_LONG/2)/BITS_PER_LONG > > (33 + 16) / 32 = 49 / 32 = 1 > > So its still wrong ;-) > > Please use DECLARE_BITMAP and or BITS_TO_LONGS to avoid these issues. Indeed. Here is a new version: (Thanks, Peter!) ------ sched: fix cpupri priocount A rounding error was pointed out by Peter Zijlstra which would result in the structure holding priorities to be off by one. Signed-off-by: Gregory Haskins <ghaskins@xxxxxxxxxx> CC: Peter Zijlstra <peterz@xxxxxxxxxxxxx> diff --git a/kernel/sched_cpupri.h b/kernel/sched_cpupri.h index 16d29b9..51e6553 100644 --- a/kernel/sched_cpupri.h +++ b/kernel/sched_cpupri.h @@ -4,7 +4,7 @@ #include <linux/sched.h> #define CPUPRI_NR_PRIORITIES 2+MAX_RT_PRIO -#define CPUPRI_NR_PRI_WORDS CPUPRI_NR_PRIORITIES/BITS_PER_LONG +#define CPUPRI_NR_PRI_WORDS BITS_TO_LONGS(CPUPRI_NR_PRIORITIES) #define CPUPRI_INVALID -1 #define CPUPRI_IDLE 0 -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html