On !SMP builds, the this_rq_raw() macro used PERCPU_PTR() which is no longer defined. Since percpu pointers are plain pointers on !SMP, cast through (void *) to strip the __percpu annotation without requiring the complete struct rq type to be visible.
Update the comment to reflect the actual implementation. Signed-off-by: Eva Kurchatova <[email protected]> --- include/linux/sched.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index 10545e470d3d..ea3bc4a5c831 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -2348,12 +2348,14 @@ DECLARE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues); * this_cpu_ptr() -> raw_cpu_ptr() -> __verify_pcpu_ptr(): * typeof((ptr) + 0) * - * So use arch_raw_cpu_ptr()/PERCPU_PTR() directly here. + * So use arch_raw_cpu_ptr() directly here. + * On !SMP percpu pointers are plain pointers; cast through (void *) + * to strip __percpu without needing the complete struct rq type. */ #ifdef CONFIG_SMP #define this_rq_raw() arch_raw_cpu_ptr(&runqueues) #else -#define this_rq_raw() PERCPU_PTR(&runqueues) +#define this_rq_raw() ((void __kernel __force *)&(runqueues)) #endif #define this_rq_pinned() (*(unsigned int *)((void *)this_rq_raw() + RQ_nr_pinned)) -- 2.54.0 _______________________________________________ Devel mailing list [email protected] https://lists.openvz.org/mailman/listinfo/devel
