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 |