perf: Fix crash in swevents
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Thu, 3 Jun 2010 09:21:20 +0000 (11:21 +0200)
committerIngo Molnar <mingo@elte.hu>
Thu, 3 Jun 2010 15:03:08 +0000 (17:03 +0200)
commitc6df8d5ab87a246942d138321e1721edbb69f6e1
tree4fa2965d148c3e7ea456ab889d278d5c16d25d17
parentda3fd1a0010ccc9fe6fd5ae2b9e85e1aacc03e4d
perf: Fix crash in swevents

Frederic reported that because swevents handling doesn't disable IRQs
anymore, we can get a recursion of perf_adjust_period(), once from
overflow handling and once from the tick.

If both call ->disable, we get a double hlist_del_rcu() and trigger
a LIST_POISON2 dereference.

Since we don't actually need to stop/start a swevent to re-programm
the hardware (lack of hardware to program), simply nop out these
callbacks for the swevent pmu.

Reported-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1275557609.27810.35218.camel@twins>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/perf_event.c