perf: Fix put_event() ctx lock
authorPeter Zijlstra <[email protected]>
Thu, 29 Jan 2015 13:44:34 +0000 (14:44 +0100)
committerIngo Molnar <[email protected]>
Wed, 4 Feb 2015 07:07:12 +0000 (08:07 +0100)
commita83fe28e2e45392464858a96745db26ac73670c8
treef5512a81ef46a14319e1600079b36e9cea11ee90
parent8f95b435b62522aed3381aaea920de8d09ccabf3
perf: Fix put_event() ctx lock

So what I suspect; but I'm in zombie mode today it seems; is that while
I initially thought that it was impossible for ctx to change when
refcount dropped to 0, I now suspect its possible.

Note that until perf_remove_from_context() the event is still active and
visible on the lists. So a concurrent sys_perf_event_open() from another
task into this task can race.

Reported-by: Vince Weaver <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Cc: Stephane Eranian <[email protected]>
Cc: [email protected]
Cc: Jiri Olsa <[email protected]>
Cc: Arnaldo Carvalho de Melo <[email protected]>
Cc: Linus Torvalds <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
kernel/events/core.c