diff --git a/[refs] b/[refs] index f87c753bcbbc..8c6eba4cec0b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 07190a08eef3666a8687070226c8d403c1d548b7 +refs/heads/master: dde4b2b5f4ed275250488dabdaf282d9c6e7e2b8 diff --git a/trunk/include/linux/hardirq.h b/trunk/include/linux/hardirq.h index 612472aaa79c..6f657d7f2d04 100644 --- a/trunk/include/linux/hardirq.h +++ b/trunk/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/trunk/kernel/softirq.c b/trunk/kernel/softirq.c index 918e52df090e..14e1a14f94d2 100644 --- a/trunk/kernel/softirq.c +++ b/trunk/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