Commit 068e35eee9ef98eb4cab55181977e24995d273be

Authored by Matt Helsley
Committed by Frederic Weisbecker
1 parent 89e45aac42

hw breakpoints: Fix pid namespace bug

Hardware breakpoints can't be registered within pid namespaces
because tsk->pid is passed rather than the pid in the current
namespace.

(See https://bugzilla.kernel.org/show_bug.cgi?id=17281 )

This is a quick fix demonstrating the problem but is not the
best method of solving the problem since passing pids internally
is not the best way to avoid pid namespace bugs. Subsequent patches
will show a better solution.

Much thanks to Frederic Weisbecker <fweisbec@gmail.com> for doing
the bulk of the work finding this bug.

Reported-by: Robin Green <greenrd@greenrd.org>
Signed-off-by: Matt Helsley <matthltc@us.ibm.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
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>
Cc: 2.6.33-2.6.35 <stable@kernel.org>
LKML-Reference: <f63454af09fb1915717251570423eb9ddd338340.1284407762.git.matthltc@us.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>

Showing 1 changed file with 2 additions and 1 deletions Side-by-side Diff

kernel/hw_breakpoint.c
... ... @@ -433,7 +433,8 @@
433 433 perf_overflow_handler_t triggered,
434 434 struct task_struct *tsk)
435 435 {
436   - return perf_event_create_kernel_counter(attr, -1, tsk->pid, triggered);
  436 + return perf_event_create_kernel_counter(attr, -1, task_pid_vnr(tsk),
  437 + triggered);
437 438 }
438 439 EXPORT_SYMBOL_GPL(register_user_hw_breakpoint);
439 440