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

> Petr Štetiar <yn...@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

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to