diff options
author | Ingo Molnar <mingo@elte.hu> | 2010-10-05 09:47:14 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-10-05 09:47:14 +0200 |
commit | 00e8976200665eec2fa9264d61885b4d1384d4f0 (patch) | |
tree | 5554648e4411fcd6909214f71370348567cf4b2d /arch/x86/kernel/cpu/perf_event_p4.c | |
parent | 540804b5c52065a87d826f7714b18a3ec0b269f9 (diff) | |
parent | 0f940cb7d970f4fd569bb5f9f49774422f2ccbee (diff) |
Merge branch 'perf/urgent' into perf/core
Conflicts:
tools/perf/util/ui/browsers/hists.c
Merge reason: fix the conflict and merge in changes for dependent patch.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/cpu/perf_event_p4.c')
-rw-r--r-- | arch/x86/kernel/cpu/perf_event_p4.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/x86/kernel/cpu/perf_event_p4.c b/arch/x86/kernel/cpu/perf_event_p4.c index c70c878ee02..81400b93e69 100644 --- a/arch/x86/kernel/cpu/perf_event_p4.c +++ b/arch/x86/kernel/cpu/perf_event_p4.c @@ -904,8 +904,12 @@ static int p4_pmu_handle_irq(struct pt_regs *regs) for (idx = 0; idx < x86_pmu.num_counters; idx++) { int overflow; - if (!test_bit(idx, cpuc->active_mask)) + if (!test_bit(idx, cpuc->active_mask)) { + /* catch in-flight IRQs */ + if (__test_and_clear_bit(idx, cpuc->running)) + handled++; continue; + } event = cpuc->events[idx]; hwc = &event->hw; |