Re: [PATCH] omapfb: don't annotate dss_conv_list as __initdata

From: Arnd Bergmann
Date: Tue May 05 2020 - 11:08:12 EST


On Tue, May 5, 2020 at 4:12 PM 'Marco Elver' via Clang Built Linux
<clang-built-linux@xxxxxxxxxxxxxxxx> wrote:
> On Tue, 5 May 2020 at 16:04, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> > With the kcsan changes, __read_once_size() is not inlined, but
> > clang can decide to emit a version that hardcodes the address, which
> > in turn triggers a warning for dss_conv_list being __initdata but
> > __read_once_size() not being __init:
> >
> > WARNING: modpost: vmlinux.o(.text+0x6e4d7a): Section mismatch in
> > reference from the function __read_once_size() to the variable
> > .init.data:dss_conv_list
> > The function __read_once_size() references
> > the variable __initdata dss_conv_list.
> > This is often because __read_once_size lacks a __initdata
> > annotation or the annotation of dss_conv_list is wrong.
> >
> > This is clearly a false positive warning, but it's hard to tell
> > who is to blame for it. Work around it by removing the __initdata
> > annotation, wasting the space of two pointers in return for getting
> > rid of the warning.
> >
> > Fixes: dfd402a4c4ba ("kcsan: Add Kernel Concurrency Sanitizer infrastructure")
> > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
>
> [+Cc Will]
>
> I think Will is working on a series that completely overhauls
> READ_ONCE/WRITE_ONCE, also getting rid of __read_once_size() in the
> process, which would make this patch redundant. If we can live with
> this warning until the new READ_ONCE/WRITE_ONCE gets merged, we can
> probably keep things as-is for now.

Ok, let's drop this one for now.

Arnd