x86, trace: Introduce entering/exiting_irq()
[deliverable/linux.git] / arch / x86 / kernel / irq_work.c
index ca8f703a1e70bdaf219bdcdd215ac2e1724bfda6..074d46fdbd1f0b6ff12a0a3d6d688b078dfe7b6a 100644 (file)
@@ -9,13 +9,23 @@
 #include <linux/hardirq.h>
 #include <asm/apic.h>
 
-void smp_irq_work_interrupt(struct pt_regs *regs)
+static inline void irq_work_entering_irq(void)
 {
        irq_enter();
        ack_APIC_irq();
+}
+
+static inline void __smp_irq_work_interrupt(void)
+{
        inc_irq_stat(apic_irq_work_irqs);
        irq_work_run();
-       irq_exit();
+}
+
+void smp_irq_work_interrupt(struct pt_regs *regs)
+{
+       irq_work_entering_irq();
+       __smp_irq_work_interrupt();
+       exiting_irq();
 }
 
 void arch_irq_work_raise(void)
This page took 0.031098 seconds and 5 git commands to generate.