]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - include/linux/hardirq.h
[PATCH] tick-management: dyntick / highres functionality
[mirror_ubuntu-artful-kernel.git] / include / linux / hardirq.h
index 6f657d7f2d04668f7aa360158c582d33f63fcacb..7803014f3a11bae4f353e7b042c0e1835997c7be 100644 (file)
@@ -106,6 +106,16 @@ 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)
+
+/*
+ * Enter irq context (on NO_HZ, update jiffies):
+ */
 extern void irq_enter(void);
 
 /*
@@ -123,7 +133,7 @@ extern void irq_enter(void);
  */
 extern void irq_exit(void);
 
-#define nmi_enter()            do { lockdep_off(); irq_enter(); } while (0)
+#define nmi_enter()            do { lockdep_off(); __irq_enter(); } while (0)
 #define nmi_exit()             do { __irq_exit(); lockdep_on(); } while (0)
 
 #endif /* LINUX_HARDIRQ_H */