2020-03-13 02:20:58

by Stephen Rothwell

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

Hi all,

After merging the v4l-dvb tree, today's linux-next build (arm
multi_v7_defconfig) failed like this:

ERROR: modpost: "fwnode_get_name" [drivers/media/v4l2-core/v4l2-fwnode.ko] undefined!

Caused by commit

dfc22c073b78 ("media: v4l2-fwnode: add initial connector parsing support")

I have used the v4l-dvb tree from next-20200312 for today.

--
Cheers,
Stephen Rothwell


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

2020-03-13 06:48:47

by Marco Felsch

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

Hi Stephen,

On 20-03-13 13:19, Stephen Rothwell wrote:
> Hi all,
>
> After merging the v4l-dvb tree, today's linux-next build (arm
> multi_v7_defconfig) failed like this:
>
> ERROR: modpost: "fwnode_get_name" [drivers/media/v4l2-core/v4l2-fwnode.ko] undefined!
>
> Caused by commit
>
> dfc22c073b78 ("media: v4l2-fwnode: add initial connector parsing support")
>
> I have used the v4l-dvb tree from next-20200312 for today.

I'm sorry for that. I put my branch on our 0day to test most of the
compile configs. Obviously this casae wasn't covered..

@Sakari
I will send a patch to fix this by adding:
EXPORT_SYMBOL_GPL(fwnode_get_name).

Regards,
Marco

2020-03-13 07:06:18

by Mauro Carvalho Chehab

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

Em Fri, 13 Mar 2020 07:48:07 +0100
Marco Felsch <[email protected]> escreveu:

> Hi Stephen,
>
> On 20-03-13 13:19, Stephen Rothwell wrote:
> > Hi all,
> >
> > After merging the v4l-dvb tree, today's linux-next build (arm
> > multi_v7_defconfig) failed like this:
> >
> > ERROR: modpost: "fwnode_get_name" [drivers/media/v4l2-core/v4l2-fwnode.ko] undefined!
> >
> > Caused by commit
> >
> > dfc22c073b78 ("media: v4l2-fwnode: add initial connector parsing support")
> >
> > I have used the v4l-dvb tree from next-20200312 for today.
>
> I'm sorry for that. I put my branch on our 0day to test most of the
> compile configs. Obviously this casae wasn't covered..
>
> @Sakari
> I will send a patch to fix this by adding:
> EXPORT_SYMBOL_GPL(fwnode_get_name).

There is already such patch at next-20200312:

$ git show a7914d1072fb8ddeb2ec87bba1d28812483a3565
commit a7914d1072fb8ddeb2ec87bba1d28812483a3565
Author: Heikki Krogerus <[email protected]>
Date: Mon Mar 2 16:53:51 2020 +0300

device property: Export fwnode_get_name()

This makes it possible to take advantage of the function in
the device drivers.

Signed-off-by: Heikki Krogerus <[email protected]>
Acked-by: Rafael J. Wysocki <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>

diff --git a/drivers/base/property.c b/drivers/base/property.c
index 511f6d7acdfe..5f35c0ccf5e0 100644
--- a/drivers/base/property.c
+++ b/drivers/base/property.c
@@ -566,6 +566,7 @@ const char *fwnode_get_name(const struct fwnode_handle *fwnode)
{
return fwnode_call_ptr_op(fwnode, get_name);
}
+EXPORT_SYMBOL_GPL(fwnode_get_name);

/**
* fwnode_get_name_prefix - Return the prefix of node for printing purposes




Thanks,
Mauro

2020-03-13 07:09:37

by Mauro Carvalho Chehab

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

Em Fri, 13 Mar 2020 13:19:03 +1100
Stephen Rothwell <[email protected]> escreveu:

> Hi all,
>
> After merging the v4l-dvb tree, today's linux-next build (arm
> multi_v7_defconfig) failed like this:
>
> ERROR: modpost: "fwnode_get_name" [drivers/media/v4l2-core/v4l2-fwnode.ko] undefined!
>
> Caused by commit
>
> dfc22c073b78 ("media: v4l2-fwnode: add initial connector parsing support")
>
> I have used the v4l-dvb tree from next-20200312 for today.

Hmm... I double-checked at next-20200312. This function is defined
at linux/property.h header:

include/linux/property.h:const char *fwnode_get_name(const struct fwnode_handle *fwnode);

Its implementation is at drivers/base/property.c, and this is always
built, according with drivers/base/Makefile:

obj-y := component.o core.o bus.o dd.o syscore.o \
driver.o class.o platform.o \
cpu.o firmware.o init.o map.o devres.o \
attribute_container.o transport_class.o \
topology.o container.o property.o cacheinfo.o \
devcon.o swnode.o

The v4l2-fwnode.c properly includes include/linux/property.h.

So, at least up to next-20200312, everything looks fine on my eyes.

The header is probably there, as the error happened at link stage.

Maybe there is some merge conflict caused by merging a patch from
some other tree that might have renamed or removed its implementation
after next-20200312, or changed from obj-y target?

Or maybe this changeset got reverted?

a7914d1072fb ("device property: Export fwnode_get_name()")


Thanks,
Mauro

2020-03-13 07:16:03

by Marco Felsch

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

On 20-03-13 08:05, Mauro Carvalho Chehab wrote:
> Em Fri, 13 Mar 2020 07:48:07 +0100
> Marco Felsch <[email protected]> escreveu:
>
> > Hi Stephen,
> >
> > On 20-03-13 13:19, Stephen Rothwell wrote:
> > > Hi all,
> > >
> > > After merging the v4l-dvb tree, today's linux-next build (arm
> > > multi_v7_defconfig) failed like this:
> > >
> > > ERROR: modpost: "fwnode_get_name" [drivers/media/v4l2-core/v4l2-fwnode.ko] undefined!
> > >
> > > Caused by commit
> > >
> > > dfc22c073b78 ("media: v4l2-fwnode: add initial connector parsing support")
> > >
> > > I have used the v4l-dvb tree from next-20200312 for today.
> >
> > I'm sorry for that. I put my branch on our 0day to test most of the
> > compile configs. Obviously this casae wasn't covered..
> >
> > @Sakari
> > I will send a patch to fix this by adding:
> > EXPORT_SYMBOL_GPL(fwnode_get_name).
>
> There is already such patch at next-20200312:

You're right. This answers my question why I got no build errors..

Regards,
Marco

> $ git show a7914d1072fb8ddeb2ec87bba1d28812483a3565
> commit a7914d1072fb8ddeb2ec87bba1d28812483a3565
> Author: Heikki Krogerus <[email protected]>
> Date: Mon Mar 2 16:53:51 2020 +0300
>
> device property: Export fwnode_get_name()
>
> This makes it possible to take advantage of the function in
> the device drivers.
>
> Signed-off-by: Heikki Krogerus <[email protected]>
> Acked-by: Rafael J. Wysocki <[email protected]>
> Link: https://lore.kernel.org/r/[email protected]
> Signed-off-by: Greg Kroah-Hartman <[email protected]>
>
> diff --git a/drivers/base/property.c b/drivers/base/property.c
> index 511f6d7acdfe..5f35c0ccf5e0 100644
> --- a/drivers/base/property.c
> +++ b/drivers/base/property.c
> @@ -566,6 +566,7 @@ const char *fwnode_get_name(const struct fwnode_handle *fwnode)
> {
> return fwnode_call_ptr_op(fwnode, get_name);
> }
> +EXPORT_SYMBOL_GPL(fwnode_get_name);
>
> /**
> * fwnode_get_name_prefix - Return the prefix of node for printing purposes
>
>
>
>
> Thanks,
> Mauro

2020-03-13 10:31:02

by Stephen Rothwell

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

Hi Mauro,

On Fri, 13 Mar 2020 08:07:35 +0100 Mauro Carvalho Chehab <[email protected]> wrote:
>
> Em Fri, 13 Mar 2020 13:19:03 +1100
> Stephen Rothwell <[email protected]> escreveu:
>
> > After merging the v4l-dvb tree, today's linux-next build (arm
> > multi_v7_defconfig) failed like this:
> >
> > ERROR: modpost: "fwnode_get_name" [drivers/media/v4l2-core/v4l2-fwnode.ko] undefined!
> >
> > Caused by commit
> >
> > dfc22c073b78 ("media: v4l2-fwnode: add initial connector parsing support")
> >
> > I have used the v4l-dvb tree from next-20200312 for today.
>
> Hmm... I double-checked at next-20200312. This function is defined
> at linux/property.h header:
>
> include/linux/property.h:const char *fwnode_get_name(const struct fwnode_handle *fwnode);
>
> Its implementation is at drivers/base/property.c, and this is always
> built, according with drivers/base/Makefile:
>
> obj-y := component.o core.o bus.o dd.o syscore.o \
> driver.o class.o platform.o \
> cpu.o firmware.o init.o map.o devres.o \
> attribute_container.o transport_class.o \
> topology.o container.o property.o cacheinfo.o \
> devcon.o swnode.o
>
> The v4l2-fwnode.c properly includes include/linux/property.h.
>
> So, at least up to next-20200312, everything looks fine on my eyes.
>
> The header is probably there, as the error happened at link stage.
>
> Maybe there is some merge conflict caused by merging a patch from
> some other tree that might have renamed or removed its implementation
> after next-20200312, or changed from obj-y target?
>
> Or maybe this changeset got reverted?
>
> a7914d1072fb ("device property: Export fwnode_get_name()")

Unfortunately, that commit is in the usb tree which I merge much later
than the v4l-dvb tree. You should not develop against linux-next, and
you should test your tree standalone as you do not know in which order
the trees will be merged by Linus (or me). The solutions here include
cherry-picking the commit into the v4l-dvb tree (since it is such a
simple commit and should not cause any complex conflicts) or merge part
of the usb tree into the v4l-dvb tree (which is possible since Greg
never rebases his tree).

--
Cheers,
Stephen Rothwell


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

2020-03-16 06:52:10

by Mauro Carvalho Chehab

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

Em Fri, 13 Mar 2020 08:07:35 +0100
Mauro Carvalho Chehab <[email protected]> escreveu:

> Em Fri, 13 Mar 2020 13:19:03 +1100
> Stephen Rothwell <[email protected]> escreveu:
>
> > Hi all,
> >
> > After merging the v4l-dvb tree, today's linux-next build (arm
> > multi_v7_defconfig) failed like this:
> >
> > ERROR: modpost: "fwnode_get_name" [drivers/media/v4l2-core/v4l2-fwnode.ko] undefined!
> >
> > Caused by commit
> >
> > dfc22c073b78 ("media: v4l2-fwnode: add initial connector parsing support")
> >
> > I have used the v4l-dvb tree from next-20200312 for today.
>
> Hmm... I double-checked at next-20200312. This function is defined
> at linux/property.h header:
>
> include/linux/property.h:const char *fwnode_get_name(const struct fwnode_handle *fwnode);

...

> So, at least up to next-20200312, everything looks fine on my eyes.
>
> The header is probably there, as the error happened at link stage.
>
> Maybe there is some merge conflict caused by merging a patch from
> some other tree that might have renamed or removed its implementation
> after next-20200312, or changed from obj-y target?
>
> Or maybe this changeset got reverted?
>
> a7914d1072fb ("device property: Export fwnode_get_name()")

I ended by cherry-picking this patch, applying it today on my tree.

Hopefully, this would avoid build problems and won't cause non-trivial
merge conflicts.

Thanks,
Mauro