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) * always balanced, so the interrupted value of ->hardirq_context * will always be restored. */ -#define irq_enter() \ - do { \ - account_system_vtime(current); \ - add_preempt_count(HARDIRQ_OFFSET); \ - trace_hardirq_enter(); \ - } while (0) +extern void irq_enter(void); /* * 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); #endif +/* + * Enter an interrupt context. + */ +void irq_enter(void) +{ + account_system_vtime(current); + add_preempt_count(HARDIRQ_OFFSET); + trace_hardirq_enter(); +} + #ifdef __ARCH_IRQ_EXIT_IRQS_DISABLED # define invoke_softirq() __do_softirq() #else |