Merge branch 'next/drivers' into HEAD
[deliverable/linux.git] / include / linux / rcupdate.h
index 115ead2b51553d78a523c4e62db3cb4b84866cd0..7c968e4f929ea49806c5e17e53bdfdfb997e4c79 100644 (file)
@@ -191,6 +191,21 @@ extern void rcu_idle_enter(void);
 extern void rcu_idle_exit(void);
 extern void rcu_irq_enter(void);
 extern void rcu_irq_exit(void);
+
+#ifdef CONFIG_RCU_USER_QS
+extern void rcu_user_enter(void);
+extern void rcu_user_exit(void);
+extern void rcu_user_enter_after_irq(void);
+extern void rcu_user_exit_after_irq(void);
+extern void rcu_user_hooks_switch(struct task_struct *prev,
+                                 struct task_struct *next);
+#else
+static inline void rcu_user_enter(void) { }
+static inline void rcu_user_exit(void) { }
+static inline void rcu_user_enter_after_irq(void) { }
+static inline void rcu_user_exit_after_irq(void) { }
+#endif /* CONFIG_RCU_USER_QS */
+
 extern void exit_rcu(void);
 
 /**
@@ -210,14 +225,12 @@ extern void exit_rcu(void);
  * to nest RCU_NONIDLE() wrappers, but the nesting level is currently
  * quite limited.  If deeper nesting is required, it will be necessary
  * to adjust DYNTICK_TASK_NESTING_VALUE accordingly.
- *
- * This macro may be used from process-level code only.
  */
 #define RCU_NONIDLE(a) \
        do { \
-               rcu_idle_exit(); \
+               rcu_irq_enter(); \
                do { a; } while (0); \
-               rcu_idle_enter(); \
+               rcu_irq_exit(); \
        } while (0)
 
 /*
This page took 0.025903 seconds and 5 git commands to generate.