Re: [PATCH 1/2] perf_event: Fix incorrect range check on cpu number

From: Paul Mackerras
Date: Tue Dec 15 2009 - 06:01:17 EST


On Tue, Dec 15, 2009 at 11:31:32AM +0100, Peter Zijlstra wrote:

> On Tue, 2009-12-15 at 19:40 +1100, Paul Mackerras wrote:
> > It is quite legitimate for CPUs to be numbered sparsely, meaning that
> > it possible for an online CPU to have a number which is greater than
> > the total count of possible CPUs.
> >
> > Currently find_get_context() has a sanity check on the cpu number
> > where it checks it against num_possible_cpus(). This test can fail
> > for a legitimate cpu number if the cpu_possible_mask is sparsely
> > populated.
> >
> > This fixes the problem by checking the CPU number against
> > nr_cpumask_bits instead, since that is the appropriate check to ensure
> > that the cpu number is same to pass to cpu_isset() subsequently.
>
> Cute, do you actually have hardware that does this?

Yeah, Mikey ran across this on a POWER7 box here.

Paul.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/