diff options
| -rw-r--r-- | include/linux/hardirq.h | 7 | ||||
| -rw-r--r-- | kernel/softirq.c | 10 |
2 files changed, 11 insertions, 6 deletions
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index 612472aaa79c..6f657d7f2d04 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h | |||
| @@ -106,12 +106,7 @@ static inline void account_system_vtime(struct task_struct *tsk) | |||
| 106 | * always balanced, so the interrupted value of ->hardirq_context | 106 | * always balanced, so the interrupted value of ->hardirq_context |
| 107 | * will always be restored. | 107 | * will always be restored. |
| 108 | */ | 108 | */ |
| 109 | #define irq_enter() \ | 109 | extern void irq_enter(void); |
| 110 | do { \ | ||
| 111 | account_system_vtime(current); \ | ||
| 112 | add_preempt_count(HARDIRQ_OFFSET); \ | ||
| 113 | trace_hardirq_enter(); \ | ||
| 114 | } while (0) | ||
| 115 | 110 | ||
| 116 | /* | 111 | /* |
| 117 | * Exit irq context without processing softirqs: | 112 | * Exit irq context without processing softirqs: |
diff --git a/kernel/softirq.c b/kernel/softirq.c index 918e52df090e..14e1a14f94d2 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c | |||
| @@ -273,6 +273,16 @@ EXPORT_SYMBOL(do_softirq); | |||
| 273 | 273 | ||
| 274 | #endif | 274 | #endif |
| 275 | 275 | ||
| 276 | /* | ||
| 277 | * Enter an interrupt context. | ||
| 278 | */ | ||
| 279 | void irq_enter(void) | ||
| 280 | { | ||
| 281 | account_system_vtime(current); | ||
| 282 | add_preempt_count(HARDIRQ_OFFSET); | ||
| 283 | trace_hardirq_enter(); | ||
| 284 | } | ||
| 285 | |||
| 276 | #ifdef __ARCH_IRQ_EXIT_IRQS_DISABLED | 286 | #ifdef __ARCH_IRQ_EXIT_IRQS_DISABLED |
| 277 | # define invoke_softirq() __do_softirq() | 287 | # define invoke_softirq() __do_softirq() |
| 278 | #else | 288 | #else |
