[PATCH v1 1/1] UBI: Fix section mismatch

Andy Shevchenko andriy.shevchenko at linux.intel.com
Tue Jan 10 03:45:11 PST 2017


On Tue, 2017-01-10 at 09:37 +0100, Boris Brezillon wrote:
> On Mon, 09 Jan 2017 21:34:26 +0200
> Andy Shevchenko <andriy.shevchenko at linux.intel.com> wrote:
> 
> > On Mon, 2017-01-09 at 20:10 +0200, Andy Shevchenko wrote:
> > > WARNING: vmlinux.o(.text+0x1f2a80): Section mismatch in reference
> > > from
> > > the variable __param_ops_mtd to the function
> > > .init.text:ubi_mtd_param_parse()
> > > The function __param_ops_mtd() references
> > > the function __init ubi_mtd_param_parse().
> > > This is often because __param_ops_mtd lacks a __init
> > > annotation or the annotation of ubi_mtd_param_parse is wrong.  
> > 
> > Please, discard this. It fixes one and add another.
> 
> Just remove the __initdata specifiers on mtd_devs and mtd_dev_param
> and
> you should be fine.

Yes, I already have this patch.

But I decided to talk to Artem and just talked.

We thought about comment to explain what is going on there and why
section mismatch is false positive, though a bit error prone (since you
have to keep in mind 0000 permissions).

So, one solution here is to unmark them and, what I would add, change
permissions to read-only.

If you are okay with this I will send series.

> 
> > 
> > > 
> > > Cc: Richard Weinberger <richard at nod.at>
> > > Signed-off-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
> > > ---
> > >  drivers/mtd/ubi/build.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
> > > index 85d54f37e28f..00a46ff61528 100644
> > > --- a/drivers/mtd/ubi/build.c
> > > +++ b/drivers/mtd/ubi/build.c
> > > @@ -1389,7 +1389,7 @@ static int __init bytes_str_to_int(const
> > > char
> > > *str)
> > >   * This function returns zero in case of success and a negative
> > > error
> > > code in
> > >   * case of error.
> > >   */
> > > -static int __init ubi_mtd_param_parse(const char *val, struct
> > > kernel_param *kp)
> > > +static int ubi_mtd_param_parse(const char *val, struct
> > > kernel_param
> > > *kp)
> > >  {
> > >  	int i, len;
> > >  	struct mtd_dev_param *p;  
> 
> 

-- 
Andy Shevchenko <andriy.shevchenko at linux.intel.com>
Intel Finland Oy



More information about the linux-mtd mailing list