diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2013-12-09 14:04:37 +0100 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2013-12-09 14:04:37 +0100 |
commit | bdc54ef45d7670aeb52ce73f8b7ad5f3e5563661 (patch) | |
tree | da6e170ce87891a0242de88d8d7c1ba34faf9bb7 /arch/x86/include/asm/trace/irq_vectors.h | |
parent | 33e0aae11e4854c792e9871f94da6d28bf2e2bb8 (diff) | |
parent | 374b105797c3d4f29c685f3be535c35f5689b30e (diff) |
Merge tag 'v3.13-rc3' into devel
Linux 3.13-rc3
Diffstat (limited to 'arch/x86/include/asm/trace/irq_vectors.h')
-rw-r--r-- | arch/x86/include/asm/trace/irq_vectors.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/x86/include/asm/trace/irq_vectors.h b/arch/x86/include/asm/trace/irq_vectors.h index 2874df24e7a4..4cab890007a7 100644 --- a/arch/x86/include/asm/trace/irq_vectors.h +++ b/arch/x86/include/asm/trace/irq_vectors.h @@ -72,6 +72,17 @@ DEFINE_IRQ_VECTOR_EVENT(x86_platform_ipi); DEFINE_IRQ_VECTOR_EVENT(irq_work); /* + * We must dis-allow sampling irq_work_exit() because perf event sampling + * itself can cause irq_work, which would lead to an infinite loop; + * + * 1) irq_work_exit happens + * 2) generates perf sample + * 3) generates irq_work + * 4) goto 1 + */ +TRACE_EVENT_PERF_PERM(irq_work_exit, is_sampling_event(p_event) ? -EPERM : 0); + +/* * call_function - called when entering/exiting a call function interrupt * vector handler */ |