Merge branch 'linux-4.19' of git://github.com/skeggsb/linux into drm-fixes
[linux-2.6-microblaze.git] / include / linux / tracepoint.h
index 7f2e16e..041f7e5 100644 (file)
@@ -158,8 +158,10 @@ extern void syscall_unregfunc(void);
                 * For rcuidle callers, use srcu since sched-rcu        \
                 * doesn't work from the idle path.                     \
                 */                                                     \
-               if (rcuidle)                                            \
+               if (rcuidle) {                                          \
                        idx = srcu_read_lock_notrace(&tracepoint_srcu); \
+                       rcu_irq_enter_irqson();                         \
+               }                                                       \
                                                                        \
                it_func_ptr = rcu_dereference_raw((tp)->funcs);         \
                                                                        \
@@ -171,8 +173,10 @@ extern void syscall_unregfunc(void);
                        } while ((++it_func_ptr)->func);                \
                }                                                       \
                                                                        \
-               if (rcuidle)                                            \
+               if (rcuidle) {                                          \
+                       rcu_irq_exit_irqson();                          \
                        srcu_read_unlock_notrace(&tracepoint_srcu, idx);\
+               }                                                       \
                                                                        \
                preempt_enable_notrace();                               \
        } while (0)