diff options
Diffstat (limited to 'include/linux/hardirq.h')
-rw-r--r-- | include/linux/hardirq.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index 6f657d7f2d04..7803014f3a11 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h | |||
@@ -106,6 +106,16 @@ 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() \ | ||
110 | do { \ | ||
111 | account_system_vtime(current); \ | ||
112 | add_preempt_count(HARDIRQ_OFFSET); \ | ||
113 | trace_hardirq_enter(); \ | ||
114 | } while (0) | ||
115 | |||
116 | /* | ||
117 | * Enter irq context (on NO_HZ, update jiffies): | ||
118 | */ | ||
109 | extern void irq_enter(void); | 119 | extern void irq_enter(void); |
110 | 120 | ||
111 | /* | 121 | /* |
@@ -123,7 +133,7 @@ extern void irq_enter(void); | |||
123 | */ | 133 | */ |
124 | extern void irq_exit(void); | 134 | extern void irq_exit(void); |
125 | 135 | ||
126 | #define nmi_enter() do { lockdep_off(); irq_enter(); } while (0) | 136 | #define nmi_enter() do { lockdep_off(); __irq_enter(); } while (0) |
127 | #define nmi_exit() do { __irq_exit(); lockdep_on(); } while (0) | 137 | #define nmi_exit() do { __irq_exit(); lockdep_on(); } while (0) |
128 | 138 | ||
129 | #endif /* LINUX_HARDIRQ_H */ | 139 | #endif /* LINUX_HARDIRQ_H */ |