When debug preempt or preempt tracer is enabled, preempt_count_add/sub() can be traced by function and function graph tracing, and preempt_disable/enable() would call preempt_count_add/sub(), so we should use preempt_disable/enable_notrace in Ftrace subsystem. The function this_cpu_read() started being used by function graph tracing after the commit 345ddcc882d8 ("ftrace: Have set_ftrace_pid use the bitmap like events do"), so it has to use preempt_disable/enable_notrace instead now. Signed-off-by: Chunyan Zhang <zhang.chunyan@xxxxxxxxxx> --- include/asm-generic/percpu.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/asm-generic/percpu.h b/include/asm-generic/percpu.h index 4d9f233..70fefec 100644 --- a/include/asm-generic/percpu.h +++ b/include/asm-generic/percpu.h @@ -108,9 +108,9 @@ do { \ #define this_cpu_generic_read(pcp) \ ({ \ typeof(pcp) __ret; \ - preempt_disable(); \ + preempt_disable_notrace(); \ __ret = *this_cpu_ptr(&(pcp)); \ - preempt_enable(); \ + preempt_enable_notrace(); \ __ret; \ }) -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html