From ba3227ffa29334200407faadb94735eda985615a Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 16 Feb 2007 01:27:45 -0800 Subject: [PATCH] --- yaml --- r: 48576 b: refs/heads/master c: dde4b2b5f4ed275250488dabdaf282d9c6e7e2b8 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/linux/hardirq.h | 7 +------ trunk/kernel/softirq.c | 10 ++++++++++ 3 files changed, 12 insertions(+), 7 deletions(-) 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