summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMatt Helsley <matthltc@us.ibm.com>2010-09-13 13:01:20 -0700
committerIngo Molnar <mingo@elte.hu>2010-09-15 10:44:00 +0200
commit38a81da2205f94e8a2a834b51a6b99c91fc7c2e8 (patch)
tree5227c665f37d1c472608a44aaad0a04be68befb2 /arch
parent2ebd4ffb6d0cb877787b1e42be8485820158857e (diff)
downloadop-kernel-dev-38a81da2205f94e8a2a834b51a6b99c91fc7c2e8.zip
op-kernel-dev-38a81da2205f94e8a2a834b51a6b99c91fc7c2e8.tar.gz
perf events: Clean up pid passing
The kernel perf event creation path shouldn't use find_task_by_vpid() because a vpid exists in a specific namespace. find_task_by_vpid() uses current's pid namespace which isn't always the correct namespace to use for the vpid in all the places perf_event_create_kernel_counter() (and thus find_get_context()) is called. The goal is to clean up pid namespace handling and prevent bugs like: https://bugzilla.kernel.org/show_bug.cgi?id=17281 Instead of using pids switch find_get_context() to use task struct pointers directly. The syscall is responsible for resolving the pid to a task struct. This moves the pid namespace resolution into the syscall much like every other syscall that takes pid parameters. Signed-off-by: Matt Helsley <matthltc@us.ibm.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Robin Green <greenrd@greenrd.org> Cc: Prasad <prasad@linux.vnet.ibm.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Will Deacon <will.deacon@arm.com> Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> LKML-Reference: <a134e5e392ab0204961fd1a62c84a222bf5874a9.1284407763.git.matthltc@us.ibm.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/oprofile/common.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/oprofile/common.c b/arch/arm/oprofile/common.c
index 0691176..aad63e6 100644
--- a/arch/arm/oprofile/common.c
+++ b/arch/arm/oprofile/common.c
@@ -96,7 +96,7 @@ static int op_create_counter(int cpu, int event)
return ret;
pevent = perf_event_create_kernel_counter(&counter_config[event].attr,
- cpu, -1,
+ cpu, NULL,
op_overflow_handler);
if (IS_ERR(pevent)) {
OpenPOWER on IntegriCloud