summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/irq_work.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/irq_work.c')
-rw-r--r--arch/x86/kernel/irq_work.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/x86/kernel/irq_work.c b/arch/x86/kernel/irq_work.c
index 074d46fdbd1f..636a55e4a13c 100644
--- a/arch/x86/kernel/irq_work.c
+++ b/arch/x86/kernel/irq_work.c
@@ -8,6 +8,7 @@
#include <linux/irq_work.h>
#include <linux/hardirq.h>
#include <asm/apic.h>
+#include <asm/trace/irq_vectors.h>
static inline void irq_work_entering_irq(void)
{
@@ -28,6 +29,15 @@ void smp_irq_work_interrupt(struct pt_regs *regs)
exiting_irq();
}
+void smp_trace_irq_work_interrupt(struct pt_regs *regs)
+{
+ irq_work_entering_irq();
+ trace_irq_work_entry(IRQ_WORK_VECTOR);
+ __smp_irq_work_interrupt();
+ trace_irq_work_exit(IRQ_WORK_VECTOR);
+ exiting_irq();
+}
+
void arch_irq_work_raise(void)
{
#ifdef CONFIG_X86_LOCAL_APIC