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

Boris Brezillon boris.brezillon at free-electrons.com
Tue Jan 10 04:40:35 PST 2017


On Tue, 10 Jan 2017 13:45:11 +0200
Andy Shevchenko <andriy.shevchenko at linux.intel.com> wrote:

> 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.

Sounds good.

> 
> >   
> > >   
> > > > 
> > > > 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;    
> > 
> >   
> 




More information about the linux-mtd mailing list