[PATCH] uninline irq_enter()
Ingo Molnar [Fri, 16 Feb 2007 09:27:45 +0000 (01:27 -0800)]
Uninline irq_enter().  [dynticks adds more stuff to it]

No functional changes.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

include/linux/hardirq.h
kernel/softirq.c

index 612472a..6f657d7 100644 (file)
@@ -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:
index 918e52d..14e1a14 100644 (file)
@@ -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