Merge branch 'core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip...
[sfrench/cifs-2.6.git] / include / linux / hardirq.h
index 9b70b9231693fc07a446f892220d2c91a6300672..f83288347dda3455e2deaa057112707accacaa93 100644 (file)
@@ -4,6 +4,7 @@
 #include <linux/preempt.h>
 #include <linux/smp_lock.h>
 #include <linux/lockdep.h>
+#include <linux/ftrace_irq.h>
 #include <asm/hardirq.h>
 #include <asm/system.h>
 
@@ -163,7 +164,20 @@ extern void irq_enter(void);
  */
 extern void irq_exit(void);
 
-#define nmi_enter()            do { lockdep_off(); rcu_nmi_enter(); __irq_enter(); } while (0)
-#define nmi_exit()             do { __irq_exit(); rcu_nmi_exit(); lockdep_on(); } while (0)
+#define nmi_enter()                            \
+       do {                                    \
+               ftrace_nmi_enter();             \
+               lockdep_off();                  \
+               rcu_nmi_enter();                \
+               __irq_enter();                  \
+       } while (0)
+
+#define nmi_exit()                             \
+       do {                                    \
+               __irq_exit();                   \
+               rcu_nmi_exit();                 \
+               lockdep_on();                   \
+               ftrace_nmi_exit();              \
+       } while (0)
 
 #endif /* LINUX_HARDIRQ_H */