aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/tracepoint.h8
-rw-r--r--kernel/printk/printk_safe.c4
2 files changed, 8 insertions, 4 deletions
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h
index 7f2e16e76ac4..041f7e56a289 100644
--- a/include/linux/tracepoint.h
+++ b/include/linux/tracepoint.h
@@ -158,8 +158,10 @@ extern void syscall_unregfunc(void);
158 * For rcuidle callers, use srcu since sched-rcu \ 158 * For rcuidle callers, use srcu since sched-rcu \
159 * doesn't work from the idle path. \ 159 * doesn't work from the idle path. \
160 */ \ 160 */ \
161 if (rcuidle) \ 161 if (rcuidle) { \
162 idx = srcu_read_lock_notrace(&tracepoint_srcu); \ 162 idx = srcu_read_lock_notrace(&tracepoint_srcu); \
163 rcu_irq_enter_irqson(); \
164 } \
163 \ 165 \
164 it_func_ptr = rcu_dereference_raw((tp)->funcs); \ 166 it_func_ptr = rcu_dereference_raw((tp)->funcs); \
165 \ 167 \
@@ -171,8 +173,10 @@ extern void syscall_unregfunc(void);
171 } while ((++it_func_ptr)->func); \ 173 } while ((++it_func_ptr)->func); \
172 } \ 174 } \
173 \ 175 \
174 if (rcuidle) \ 176 if (rcuidle) { \
177 rcu_irq_exit_irqson(); \
175 srcu_read_unlock_notrace(&tracepoint_srcu, idx);\ 178 srcu_read_unlock_notrace(&tracepoint_srcu, idx);\
179 } \
176 \ 180 \
177 preempt_enable_notrace(); \ 181 preempt_enable_notrace(); \
178 } while (0) 182 } while (0)
diff --git a/kernel/printk/printk_safe.c b/kernel/printk/printk_safe.c
index a0a74c533e4b..0913b4d385de 100644
--- a/kernel/printk/printk_safe.c
+++ b/kernel/printk/printk_safe.c
@@ -306,12 +306,12 @@ static __printf(1, 0) int vprintk_nmi(const char *fmt, va_list args)
306 return printk_safe_log_store(s, fmt, args); 306 return printk_safe_log_store(s, fmt, args);
307} 307}
308 308
309void printk_nmi_enter(void) 309void notrace printk_nmi_enter(void)
310{ 310{
311 this_cpu_or(printk_context, PRINTK_NMI_CONTEXT_MASK); 311 this_cpu_or(printk_context, PRINTK_NMI_CONTEXT_MASK);
312} 312}
313 313
314void printk_nmi_exit(void) 314void notrace printk_nmi_exit(void)
315{ 315{
316 this_cpu_and(printk_context, ~PRINTK_NMI_CONTEXT_MASK); 316 this_cpu_and(printk_context, ~PRINTK_NMI_CONTEXT_MASK);
317} 317}