LAN bridge is not working with 5.15.80 [Was: Re: [PATCH v2] mvebu: switch default kernel to 5.15]

Petr Štetiar ynezz at true.cz
Sat Dec 3 07:46:36 PST 2022


Bjørn Mork <bjorn at mork.no> [2022-12-03 15:56:49]:

> Petr Štetiar <ynezz at true.cz> writes:
> 
> > Indeed, it looks like a regression caused by upstream commit e5f31552674e
> > ("ethernet: fix PTP_1588_CLOCK dependencies") in conjuction with images
> > produced by our buildbots, which use `CONFIG_ALL_KMODS=y` config setting, so
> > it likely makes `PTP_1588_CLOCK=m` and thus `CONFIG_NET_DSA_MV88E6XXX=m`.
> >
> > This simple revert/workaround seems to fix it:
> >
> > 	diff --git a/drivers/net/dsa/mv88e6xxx/Kconfig
> > 	b/drivers/net/dsa/mv88e6xxx/Kconfig
> > 	index 7a2445a34eb7..634a48e6616b 100644
> > 	--- a/drivers/net/dsa/mv88e6xxx/Kconfig
> > 	+++ b/drivers/net/dsa/mv88e6xxx/Kconfig
> > 	@@ -2,7 +2,6 @@
> > 	 config NET_DSA_MV88E6XXX
> > 		tristate "Marvell 88E6xxx Ethernet switch fabric support"
> > 		depends on NET_DSA
> > 	-       depends on PTP_1588_CLOCK_OPTIONAL
> > 		select IRQ_DOMAIN
> > 		select NET_DSA_TAG_EDSA
> > 		select NET_DSA_TAG_DSA
> 
> That look like it, yes.
> 
> But the problem is much more generic, isn't it?

No, lets take a look at that PTP_1588_CLOCK_OPTIONAL:

	config PTP_1588_CLOCK_OPTIONAL
		tristate
		default y if PTP_1588_CLOCK=n
		default PTP_1588_CLOCK
		help
		  Drivers that can optionally use the PTP_1588_CLOCK framework
		  should depend on this symbol to prevent them from being built
		  into vmlinux while the PTP support itself is in a loadable
		  module.
		  If PTP support is disabled, this dependency will still be
		  met, and drivers refer to dummy helpers.

>From help text description it looks to me, that it's not tristate symbol at
all, it's boolean symbol and certainly shouldn't have `default PTP_1588_CLOCK`
as otherwise it's not doing what it's described on the box.

As we've now:

 NET_DSA_MV88E6XXX=y
 PTP_1588_CLOCK=m
 PTP_1588_CLOCK_OPTIONAL=m

but we then endup with `CONFIG_NET_DSA_MV88E6XXX=m` which is not what
PTP_1588_CLOCK_OPTIONAL is supposed to be doing, right?

So IMO something like following is a proper fix:

	  config PTP_1588_CLOCK_OPTIONAL
	-       tristate
	-       default y if PTP_1588_CLOCK=n
	-       default PTP_1588_CLOCK
	+       bool
	+       default y if !PTP_1588_CLOCK=y



More information about the openwrt-devel mailing list