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.