Re: [RFC 0/6] Regressions for "imply" behavior change

From: Saeed Mahameed
Date: Tue Apr 14 2020 - 13:50:11 EST


On Tue, 2020-04-14 at 17:25 +0200, Arnd Bergmann wrote:
> On Tue, Apr 14, 2020 at 5:23 PM Jason Gunthorpe <jgg@xxxxxxxx> wrote:
> > On Tue, Apr 14, 2020 at 04:27:41PM +0200, Arnd Bergmann wrote:
> > > On Tue, Apr 14, 2020 at 3:29 PM Jason Gunthorpe <jgg@xxxxxxxx>
> > > wrote:
> > > > On Fri, Apr 10, 2020 at 07:04:27PM +0000, Saeed Mahameed wrote:
> > > which in turn leads to mlx5_core.ko *not* containing
> > > mlx5_vxlan.o,
> > > and in turn causing that link error against
> > > mlx5_vxlan_create/mlx5_vxlan_destroy, unless the IS_ENABLED()
> > > is changed to IS_REACHABLE().
> >
> > What about the reverse if mlx5_core is 'm' and VLXAN is 'y'?
> >
> > mlx5_core-m := mlx5_core.o
> > mlx5_core-y += mlx5_vxlan.o
> >
> > Magically works out?
>
> Yes, Kbuild takes care of that case.
>
> > > > IIRC that isn't what the expression does, if vxlan is 'n' then
> > > > n || !n == true
> > >
> > > It forces MLX5_CORE to 'm' or 'n' but not 'y' if VXLAN=m,
> > > but allows any option if VXLAN=y
> >
> > And any option if VXLAN=n ?
>
> Correct.
>

Great !

Then bottom line we will change mlx5/Kconfig: to

depends on VXLAN || !VXLAN

This will force MLX5_CORE to m when necessary to make vxlan reachable
to mlx5_core. So no need for explicit use of IS_REACHABLE().
in mlx5 there are 4 of these:

imply PTP_1588_CLOCK
imply VXLAN
imply MLXFW
imply PCI_HYPERV_INTERFACE


I will make a patch.

Thanks,
Saeed.