public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] perf_event: Fix incorrect range check on cpu number
@ 2009-12-15  8:40 Paul Mackerras
  2009-12-15 10:31 ` Peter Zijlstra
  2009-12-15 12:12 ` [tip:perf/urgent] " tip-bot for Paul Mackerras
  0 siblings, 2 replies; 7+ messages in thread
From: Paul Mackerras @ 2009-12-15  8:40 UTC (permalink / raw)
  To: Ingo Molnar, Peter Zijlstra; +Cc: linux-kernel, Michael Neuling

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.

Reported-by: Michael Neuling <mikey@neuling.org>
Tested-by: Michael Neuling <mikey@neuling.org>
Cc: stable@kernel.org
Signed-off-by: Paul Mackerras <paulus@samba.org>
---
 kernel/perf_event.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index 6b7ddba..78551b3 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -1604,7 +1604,7 @@ static struct perf_event_context *find_get_context(pid_t pid, int cpu)
 		if (perf_paranoid_cpu() && !capable(CAP_SYS_ADMIN))
 			return ERR_PTR(-EACCES);
 
-		if (cpu < 0 || cpu > num_possible_cpus())
+		if (cpu < 0 || cpu >= nr_cpumask_bits)
 			return ERR_PTR(-EINVAL);
 
 		/*

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-12-15 19:15 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-15  8:40 [PATCH 1/2] perf_event: Fix incorrect range check on cpu number Paul Mackerras
2009-12-15 10:31 ` Peter Zijlstra
2009-12-15 11:00   ` Paul Mackerras
2009-12-15 18:54     ` Corey Ashford
2009-12-15 19:08       ` Ingo Molnar
2009-12-15 19:15         ` Corey Ashford
2009-12-15 12:12 ` [tip:perf/urgent] " tip-bot for Paul Mackerras

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox