aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2007-02-16 01:27:45 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-16 08:13:58 -0800
commitdde4b2b5f4ed275250488dabdaf282d9c6e7e2b8 (patch)
treec14b594c39cb5f64216c24440b4a54ef2db3baea
parent07190a08eef3666a8687070226c8d403c1d548b7 (diff)
[PATCH] uninline irq_enter()
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>
-rw-r--r--include/linux/hardirq.h7
-rw-r--r--kernel/softirq.c10
2 files changed, 11 insertions, 6 deletions
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h
index 612472aaa79..6f657d7f2d0 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 918e52df090..14e1a14f94d 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