浏览代码

[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>
Ingo Molnar 18 年之前
父节点
当前提交
dde4b2b5f4
共有 2 个文件被更改,包括 11 次插入6 次删除
  1. 1 6
      include/linux/hardirq.h
  2. 10 0
      kernel/softirq.c

+ 1 - 6
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
  * always balanced, so the interrupted value of ->hardirq_context
  * will always be restored.
  * 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:
  * Exit irq context without processing softirqs:

+ 10 - 0
kernel/softirq.c

@@ -273,6 +273,16 @@ EXPORT_SYMBOL(do_softirq);
 
 
 #endif
 #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
 #ifdef __ARCH_IRQ_EXIT_IRQS_DISABLED
 # define invoke_softirq()	__do_softirq()
 # define invoke_softirq()	__do_softirq()
 #else
 #else