diff options
Diffstat (limited to 'kernel/irq/handle.c')
-rw-r--r-- | kernel/irq/handle.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c index 3540a7190122..db864334a952 100644 --- a/kernel/irq/handle.c +++ b/kernel/irq/handle.c @@ -17,6 +17,7 @@ #include <linux/kernel_stat.h> #include <trace/events/irq.h> +#include <trace/irq.h> #include "internals.h" @@ -51,6 +52,9 @@ static void warn_no_thread(unsigned int irq, struct irqaction *action) "but no thread function available.", irq, action->name); } +DEFINE_TRACE(irq_entry); +DEFINE_TRACE(irq_exit); + /** * handle_IRQ_event - irq action chain handler * @irq: the interrupt number @@ -63,6 +67,8 @@ irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action) irqreturn_t ret, retval = IRQ_NONE; unsigned int status = 0; + trace_irq_entry(irq, NULL, action); + do { trace_irq_handler_entry(irq, action); ret = action->handler(irq, action->dev_id); @@ -116,5 +122,7 @@ irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action) add_interrupt_randomness(irq); local_irq_disable(); + trace_irq_exit(retval); + return retval; } |