All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.