Re: linux-next: build failure after merge of the nand tree

Miquel Raynal
2019-04-02T09:21:41Z

Hi Paul,

Miquel Raynal <miquel.raynal@bootlin.com> wrote on Tue, 2 Apr 2019
09:27:47 +0200:

> Hi Paul,
>
> Paul Cercueil <paul@crapouillou.net> wrote on Tue, 02 Apr 2019 01:31:52
> +0200:
>
> > Hi Stephen,
> >
> > Le mar. 2 avril 2019 à 1:14, Stephen Rothwell <sfr@canb.auug.org.au> a écrit :
> > > Hi all,
> > >
> > > After merging the nand tree, today's linux-next build (x86_64
> > > allmodconfig) failed like this:
> > >
> > > drivers/mtd/nand/raw/ingenic/ingenic_ecc.c:26:5: error: redefinition > of 'ingenic_ecc_calculate'
> > > int ingenic_ecc_calculate(struct ingenic_ecc *ecc,
> > > ^~~~~~~~~~~~~~~~~~~~~
> > > In file included from drivers/mtd/nand/raw/ingenic/ingenic_ecc.c:14:
> > > drivers/mtd/nand/raw/ingenic/ingenic_ecc.h:39:5: note: previous > definition of 'ingenic_ecc_calculate' was here
> > > int ingenic_ecc_calculate(struct ingenic_ecc *ecc,
> > > ^~~~~~~~~~~~~~~~~~~~~
> > > drivers/mtd/nand/raw/ingenic/ingenic_ecc.c:47:5: error: redefinition > of 'ingenic_ecc_correct'
> > > int ingenic_ecc_correct(struct ingenic_ecc *ecc,
> > > ^~~~~~~~~~~~~~~~~~~
> > > In file included from drivers/mtd/nand/raw/ingenic/ingenic_ecc.c:14:
> > > drivers/mtd/nand/raw/ingenic/ingenic_ecc.h:46:5: note: previous > definition of 'ingenic_ecc_correct' was here
> > > int ingenic_ecc_correct(struct ingenic_ecc *ecc,
> > > ^~~~~~~~~~~~~~~~~~~
> > > drivers/mtd/nand/raw/ingenic/ingenic_ecc.c:93:21: error: redefinition > of 'of_ingenic_ecc_get'
> > > struct ingenic_ecc *of_ingenic_ecc_get(struct device_node *of_node)
> > > ^~~~~~~~~~~~~~~~~~
> > > In file included from drivers/mtd/nand/raw/ingenic/ingenic_ecc.c:14:
> > > drivers/mtd/nand/raw/ingenic/ingenic_ecc.h:57:21: note: previous > definition of 'of_ingenic_ecc_get' was here
> > > struct ingenic_ecc *of_ingenic_ecc_get(struct device_node *np)
> > > ^~~~~~~~~~~~~~~~~~
> > > drivers/mtd/nand/raw/ingenic/ingenic_ecc.c:119:6: error: redefinition > of 'ingenic_ecc_release'
> > > void ingenic_ecc_release(struct ingenic_ecc *ecc)
> > > ^~~~~~~~~~~~~~~~~~~
> > > In file included from drivers/mtd/nand/raw/ingenic/ingenic_ecc.c:14:
> > > drivers/mtd/nand/raw/ingenic/ingenic_ecc.h:53:6: note: previous > definition of 'ingenic_ecc_release' was here
> > > void ingenic_ecc_release(struct ingenic_ecc *ecc)
> > > ^~~~~~~~~~~~~~~~~~~
> > >
> > > Caused by commit
> > >
> > > 8278ad0d709a ("mtd: rawnand: ingenic: Separate top-level and SoC > specific code")
> > >
> > > I have used the nand tree from next-20190401 for today.
> >
> > That makes no sense to me; from the offsets of the errors in the ingenic_ecc.h
> > file, it seems that CONFIG_MTD_NAND_INGENIC_ECC is not set, and in this case
> > ingenic_ecc.c should not be compiled at all.
> >
> > -Paul
> >
> >
>
> There must be a mistmatch somewhere in Kconfig, please reproduce with
> allmodconfig on x86_64, I don't have time to check on this today.
> Otherwise I'll have to drop the patchset :/

I wonder if the root cause comes from another patchset (mine, actually)
which I applied on top of your work. Maybe there is a conflict there. I
am looking into it.

Thanks,
Miquèl