2020-03-11 02:17:14

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: build failure after merge of the nand tree

Hi all,

After merging the nand tree, today's linux-next build (x86_64
allmodconfig) failed like this:

FATAL: modpost: drivers/mtd/nand/raw/ams-delta: sizeof(struct of_device_id)=200 is not a modulo of the size of section __mod_of__<identifier>_device_table=64.
Fix definition of struct of_device_id in mod_devicetable.h

Maybe caused by commit

966d708517e3 ("mtd: rawnand: ams-delta: Add module device tables")

But I have no idea why.

I have used the nand tree from next-20200310 for today.

--
Cheers,
Stephen Rothwell


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2020-03-11 10:11:09

by Miquel Raynal

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the nand tree

Hi Stephen,

+ Janusz, ams-delta patch author

Stephen Rothwell <[email protected]> wrote on Wed, 11 Mar 2020
13:16:16 +1100:

> Hi all,
>
> After merging the nand tree, today's linux-next build (x86_64
> allmodconfig) failed like this:

Thanks for the report.

>
> FATAL: modpost: drivers/mtd/nand/raw/ams-delta: sizeof(struct of_device_id)=200 is not a modulo of the size of section __mod_of__<identifier>_device_table=64.
> Fix definition of struct of_device_id in mod_devicetable.h
>
> Maybe caused by commit
>
> 966d708517e3 ("mtd: rawnand: ams-delta: Add module device tables")
>
> But I have no idea why.
>

This is strange. I think this is caused because of the addition of a
second device table with the same "of" scope. Changing one of them to
"platform" (the legacy one) seems to fix the problem.

Janusz, Is the following change okay for you? I would like to apply it
today so that linux-next get's updated with the 50+ stack of new
patches by tomorrow.

--- a/drivers/mtd/nand/raw/ams-delta.c
+++ b/drivers/mtd/nand/raw/ams-delta.c
@@ -411,7 +411,7 @@ static const struct platform_device_id gpio_nand_plat_id_table[] = {
/* sentinel */
},
};
-MODULE_DEVICE_TABLE(of, gpio_nand_plat_id_table);
+MODULE_DEVICE_TABLE(platform, gpio_nand_plat_id_table);

static struct platform_driver gpio_nand_driver = {
.probe = gpio_nand_probe,


Thanks,
Miquèl

2020-03-11 14:04:50

by Boris Brezillon

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the nand tree

On Wed, 11 Mar 2020 11:10:41 +0100
Miquel Raynal <[email protected]> wrote:

> Hi Stephen,
>
> + Janusz, ams-delta patch author
>
> Stephen Rothwell <[email protected]> wrote on Wed, 11 Mar 2020
> 13:16:16 +1100:
>
> > Hi all,
> >
> > After merging the nand tree, today's linux-next build (x86_64
> > allmodconfig) failed like this:
>
> Thanks for the report.
>
> >
> > FATAL: modpost: drivers/mtd/nand/raw/ams-delta: sizeof(struct of_device_id)=200 is not a modulo of the size of section __mod_of__<identifier>_device_table=64.
> > Fix definition of struct of_device_id in mod_devicetable.h
> >
> > Maybe caused by commit
> >
> > 966d708517e3 ("mtd: rawnand: ams-delta: Add module device tables")
> >
> > But I have no idea why.
> >
>
> This is strange. I think this is caused because of the addition of a
> second device table with the same "of" scope. Changing one of them to
> "platform" (the legacy one) seems to fix the problem.
>
> Janusz, Is the following change okay for you? I would like to apply it
> today so that linux-next get's updated with the 50+ stack of new
> patches by tomorrow.

Yep, this change looks good to me, I don't think you need to wait for
Janusz' ack to merge it.

Regards,

Boris

2020-03-11 19:22:00

by Janusz Krzysztofik

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the nand tree

Hi Miquel,

On Wednesday, March 11, 2020 11:10:41 A.M. CET Miquel Raynal wrote:
> Hi Stephen,
>
> + Janusz, ams-delta patch author
>
> Stephen Rothwell <[email protected]> wrote on Wed, 11 Mar 2020
> 13:16:16 +1100:
>
> > Hi all,
> >
> > After merging the nand tree, today's linux-next build (x86_64
> > allmodconfig) failed like this:
>
> Thanks for the report.
>
> >
> > FATAL: modpost: drivers/mtd/nand/raw/ams-delta: sizeof(struct of_device_id)=200 is not a modulo of the size of section __mod_of__<identifier>_device_table=64.
> > Fix definition of struct of_device_id in mod_devicetable.h
> >
> > Maybe caused by commit
> >
> > 966d708517e3 ("mtd: rawnand: ams-delta: Add module device tables")
> >
> > But I have no idea why.
> >
>
> This is strange. I think this is caused because of the addition of a
> second device table with the same "of" scope. Changing one of them to
> "platform" (the legacy one) seems to fix the problem.
>
> Janusz, Is the following change okay for you? I would like to apply it
> today so that linux-next get's updated with the 50+ stack of new
> patches by tomorrow.
>
> --- a/drivers/mtd/nand/raw/ams-delta.c
> +++ b/drivers/mtd/nand/raw/ams-delta.c
> @@ -411,7 +411,7 @@ static const struct platform_device_id gpio_nand_plat_id_table[] = {
> /* sentinel */
> },
> };
> -MODULE_DEVICE_TABLE(of, gpio_nand_plat_id_table);
> +MODULE_DEVICE_TABLE(platform, gpio_nand_plat_id_table);

Evidently a copy-paste error on my side, sorry for that.

Acked-by: Janusz Krzysztofik <[email protected]>

Thanks,
Janusz

>
> static struct platform_driver gpio_nand_driver = {
> .probe = gpio_nand_probe,
>
>
> Thanks,
> Miqu?l
>