diff options
Diffstat (limited to 'kernel/irq/handle.c')
-rw-r--r-- | kernel/irq/handle.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c index 38b49a9e508a..d82142be8dd2 100644 --- a/kernel/irq/handle.c +++ b/kernel/irq/handle.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/kernel_stat.h> | 17 | #include <linux/kernel_stat.h> |
18 | #include <linux/rculist.h> | 18 | #include <linux/rculist.h> |
19 | #include <linux/hash.h> | 19 | #include <linux/hash.h> |
20 | #include <trace/irq.h> | ||
20 | #include <linux/bootmem.h> | 21 | #include <linux/bootmem.h> |
21 | 22 | ||
22 | #include "internals.h" | 23 | #include "internals.h" |
@@ -347,6 +348,9 @@ static void warn_no_thread(unsigned int irq, struct irqaction *action) | |||
347 | "but no thread function available.", irq, action->name); | 348 | "but no thread function available.", irq, action->name); |
348 | } | 349 | } |
349 | 350 | ||
351 | DEFINE_TRACE(irq_handler_entry); | ||
352 | DEFINE_TRACE(irq_handler_exit); | ||
353 | |||
350 | /** | 354 | /** |
351 | * handle_IRQ_event - irq action chain handler | 355 | * handle_IRQ_event - irq action chain handler |
352 | * @irq: the interrupt number | 356 | * @irq: the interrupt number |
@@ -365,7 +369,9 @@ irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action) | |||
365 | local_irq_enable_in_hardirq(); | 369 | local_irq_enable_in_hardirq(); |
366 | 370 | ||
367 | do { | 371 | do { |
372 | trace_irq_handler_entry(irq, action); | ||
368 | ret = action->handler(irq, action->dev_id); | 373 | ret = action->handler(irq, action->dev_id); |
374 | trace_irq_handler_exit(irq, action, ret); | ||
369 | 375 | ||
370 | switch (ret) { | 376 | switch (ret) { |
371 | case IRQ_WAKE_THREAD: | 377 | case IRQ_WAKE_THREAD: |