aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 612472aaa79c..6f657d7f2d04 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)
106 * always balanced, so the interrupted value of ->hardirq_context 106 * always balanced, so the interrupted value of ->hardirq_context
107 * will always be restored. 107 * will always be restored.
108 */ 108 */
109#define irq_enter() \ 109extern void irq_enter(void);
110 do { \
111 account_system_vtime(current); \
112 add_preempt_count(HARDIRQ_OFFSET); \
113 trace_hardirq_enter(); \
114 } while (0)
115 110
116/* 111/*
117 * Exit irq context without processing softirqs: 112 * Exit irq context without processing softirqs:
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 918e52df090e..14e1a14f94d2 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -273,6 +273,16 @@ EXPORT_SYMBOL(do_softirq);
273 273
274#endif 274#endif
275 275
276/*
277 * Enter an interrupt context.
278 */
279void irq_enter(void)
280{
281 account_system_vtime(current);
282 add_preempt_count(HARDIRQ_OFFSET);
283 trace_hardirq_enter();
284}
285
276#ifdef __ARCH_IRQ_EXIT_IRQS_DISABLED 286#ifdef __ARCH_IRQ_EXIT_IRQS_DISABLED
277# define invoke_softirq() __do_softirq() 287# define invoke_softirq() __do_softirq()
278#else 288#else