Subject: Re: linux-next: build failure after merge of the l2-mtd tree

From: Brian Norris <[email-masked]>
Date: Wed, 8 Feb 2017 17:59:34 -0800

Hi,

On Thu, Feb 09, 2017 at 12:08:39PM +1100, Stephen Rothwell wrote:
> Hi Brian,
> 
> After merging the l2-mtd tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
> 
> ERROR: "of_flash_probe_versatile" [drivers/mtd/maps/physmap_of.ko] undefined!
> ERROR: "of_flash_probe_gemini" [drivers/mtd/maps/physmap_of.ko] undefined!
> 
> Probably caused by commit
> 
>   56ff337ea433 ("mtd: physmap_of: add a hook for Gemini flash probing")
> 
> The config has:
> 
> CONFIG_MTD_PHYSMAP=m
> CONFIG_MTD_PHYSMAP_COMPAT=y
> CONFIG_MTD_PHYSMAP_OF=m
> CONFIG_MTD_PHYSMAP_OF_VERSATILE=y
> CONFIG_MTD_PHYSMAP_OF_GEMINI=y
> 
> I am not sure why this is a problem, but previously physmap_of_versatile.o
> would have been in obj-m and it is now in obj-y.

I think this part of that change does it:

--- a/drivers/mtd/maps/Makefile
+++ b/drivers/mtd/maps/Makefile
@@ -18,9 +18,8 @@ obj-$(CONFIG_MTD_TSUNAMI)     += tsunami_flash.o
 obj-$(CONFIG_MTD_PXA2XX)       += pxa2xx-flash.o
 obj-$(CONFIG_MTD_PHYSMAP)      += physmap.o
 obj-$(CONFIG_MTD_PHYSMAP_OF)   += physmap_of.o
-ifdef CONFIG_MTD_PHYSMAP_OF_VERSATILE
-obj-$(CONFIG_MTD_PHYSMAP_OF)   += physmap_of_versatile.o
-endif
+obj-$(CONFIG_MTD_PHYSMAP_OF_VERSATILE) += physmap_of_versatile.o
+obj-$(CONFIG_MTD_PHYSMAP_OF_GEMINI)    += physmap_of_gemini.o
 obj-$(CONFIG_MTD_PISMO)                += pismo.o
 obj-$(CONFIG_MTD_PMC_MSP_EVM)   += pmcmsp-flash.o
 obj-$(CONFIG_MTD_PCMCIA)       += pcmciamtd.o

We were previously just keeping physmap_of_versatile in sync with physmap_of.
So it could be a module, even though CONFIG_MTD_PHYSMAP_OF_VERSATILE was
'bool'.

This is kind of a weird scenario, since physmap_of actually depends on
*_versatile or *_gemini (when enabled). Maybe we should revert to something
like the original logic. We can even actually merge the 3 modules (and then
drop the EXPORT_*s too):

diff --git a/drivers/mtd/maps/Makefile b/drivers/mtd/maps/Makefile
index 2fec1e0c2371..aef1846b4de2 100644
--- a/drivers/mtd/maps/Makefile
+++ b/drivers/mtd/maps/Makefile
@@ -17,9 +17,13 @@ obj-$(CONFIG_MTD_CK804XROM)	+= ck804xrom.o
 obj-$(CONFIG_MTD_TSUNAMI)	+= tsunami_flash.o
 obj-$(CONFIG_MTD_PXA2XX)	+= pxa2xx-flash.o
 obj-$(CONFIG_MTD_PHYSMAP)	+= physmap.o
+ifdef CONFIG_MTD_PHYSMAP_OF_VERSATILE
+physmap_of-objs += physmap_of_versatile.o
+endif
+ifdef CONFIG_MTD_PHYSMAP_OF_GEMINI
+physmap_of-objs += physmap_of_gemini.o
+endif
 obj-$(CONFIG_MTD_PHYSMAP_OF)	+= physmap_of.o
-obj-$(CONFIG_MTD_PHYSMAP_OF_VERSATILE)	+= physmap_of_versatile.o
-obj-$(CONFIG_MTD_PHYSMAP_OF_GEMINI)	+= physmap_of_gemini.o
 obj-$(CONFIG_MTD_PISMO)		+= pismo.o
 obj-$(CONFIG_MTD_PMC_MSP_EVM)   += pmcmsp-flash.o
 obj-$(CONFIG_MTD_PCMCIA)	+= pcmciamtd.o

I'll cook that into a proper patch if it seems good.

> I have used the version fo the l2-mtd tree from next-20170208 for today.

Sounds good.

Brian

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/