Re: linux-next: build warning after merge of the net-next tree

From: Eric Dumazet
Date: Sun Nov 10 2019 - 20:45:07 EST




On 11/10/19 5:39 PM, Stephen Rothwell wrote:
> Hi all,
>
> After merging the net-next tree, today's linux-next build (powerpc
> ppc64_defconfig) produced this warning:
>
> In file included from ./arch/powerpc/include/generated/asm/local64.h:1,
> from include/linux/u64_stats_sync.h:72,
> from include/linux/cgroup-defs.h:20,
> from include/linux/cgroup.h:28,
> from include/linux/memcontrol.h:13,
> from include/linux/swap.h:9,
> from include/linux/suspend.h:5,
> from arch/powerpc/kernel/asm-offsets.c:23:
> include/linux/u64_stats_sync.h: In function 'u64_stats_read':
> include/asm-generic/local64.h:30:37: warning: passing argument 1 of 'local_read' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
> 30 | #define local64_read(l) local_read(&(l)->a)
> | ^~~~~~~
> include/linux/u64_stats_sync.h:80:9: note: in expansion of macro 'local64_read'
> 80 | return local64_read(&p->v);
> | ^~~~~~~~~~~~
> In file included from include/asm-generic/local64.h:22,
> from ./arch/powerpc/include/generated/asm/local64.h:1,
> from include/linux/u64_stats_sync.h:72,
> from include/linux/cgroup-defs.h:20,
> from include/linux/cgroup.h:28,
> from include/linux/memcontrol.h:13,
> from include/linux/swap.h:9,
> from include/linux/suspend.h:5,
> from arch/powerpc/kernel/asm-offsets.c:23:
> arch/powerpc/include/asm/local.h:20:44: note: expected 'local_t *' {aka 'struct <anonymous> *'} but argument is of type 'const local_t *' {aka 'const struct <anonymous> *'}
> 20 | static __inline__ long local_read(local_t *l)
> | ~~~~~~~~~^
>
> Introduced by commit
>
> 316580b69d0a ("u64_stats: provide u64_stats_t type")
>
> Powerpc folks: is there some reason that local_read() cannot take a
> const argument?
>
> I have added this patch (which builds fine) for today:
>
> From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> Date: Mon, 11 Nov 2019 12:32:24 +1100
> Subject: [PATCH] powerpc: local_read() should take a const local_t argument
>
> Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> ---
> arch/powerpc/include/asm/local.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/include/asm/local.h b/arch/powerpc/include/asm/local.h
> index fdd00939270b..bc4bd19b7fc2 100644
> --- a/arch/powerpc/include/asm/local.h
> +++ b/arch/powerpc/include/asm/local.h
> @@ -17,7 +17,7 @@ typedef struct
>
> #define LOCAL_INIT(i) { (i) }
>
> -static __inline__ long local_read(local_t *l)
> +static __inline__ long local_read(const local_t *l)
> {
> return READ_ONCE(l->v);
> }
>

I have sent this patch two days ago, I do not believe I had any answer from ppc maintainers.