Re: [PATCH] rcu: declare rcu_data variables in the section they are defined in

From: Josh Triplett
Date: Sun May 03 2015 - 15:27:16 EST


On Sun, May 03, 2015 at 05:57:53PM +0800, Nicolas Iooss wrote:
> Commit 11bbb235c26f ("rcu: Use DEFINE_PER_CPU_SHARED_ALIGNED for
> rcu_data") replaced DEFINE_PER_CPU by DEFINE_PER_CPU_SHARED_ALIGNED in
> the definition of rcu_sched and rcu_bh without updating
> kernel/rcu/tree.h.
>
> This makes clang report a section mismatch (-Wsection warning) when
> building LLVMLinux because the variables are declared in .data..percpu
> but defined in .data..percpu..shared_aligned.
>
> Signed-off-by: Nicolas Iooss <nicolas.iooss_linux@xxxxxxx>

Good catch.
Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>

> ---
> kernel/rcu/tree.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
> index a69d3dab2ec4..c5e85b27a79f 100644
> --- a/kernel/rcu/tree.h
> +++ b/kernel/rcu/tree.h
> @@ -519,10 +519,10 @@ extern struct list_head rcu_struct_flavors;
> * RCU implementation internal declarations:
> */
> extern struct rcu_state rcu_sched_state;
> -DECLARE_PER_CPU(struct rcu_data, rcu_sched_data);
> +DECLARE_PER_CPU_SHARED_ALIGNED(struct rcu_data, rcu_sched_data);
>
> extern struct rcu_state rcu_bh_state;
> -DECLARE_PER_CPU(struct rcu_data, rcu_bh_data);
> +DECLARE_PER_CPU_SHARED_ALIGNED(struct rcu_data, rcu_bh_data);
>
> #ifdef CONFIG_PREEMPT_RCU
> extern struct rcu_state rcu_preempt_state;
> --
> 2.3.6
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/