On 12/4/19 7:35 AM, Grygorii Strashko wrote: > > > On 04/12/2019 01:43, Randy Dunlap wrote: >> On 12/2/19 8:54 PM, Stephen Rothwell wrote: >>> Hi all, >>> >>> Please do not add any material for v5.6 to your linux-next included >>> trees until after v5.5-rc1 has been released. >>> >>> Changes since 20191202: >> >> I am seeing this (happens to be on i386; I doubt that it matters): >> CONFIG_COMPILE_TEST=y >> >> >> WARNING: unmet direct dependencies detected for NET_SWITCHDEV >> Depends on [n]: NET [=y] && INET [=n] >> Selected by [y]: >> - TI_CPSW_SWITCHDEV [=y] && NETDEVICES [=y] && ETHERNET [=y] && NET_VENDOR_TI [=y] && (ARCH_DAVINCI || ARCH_OMAP2PLUS || COMPILE_TEST [=y]) >> >> because TI_CPSW_SWITCHDEV blindly selects NET_SWITCHDEV even though >> INET is not set/enabled, while NET_SWITCHDEV depends on INET. >> >> However, the build succeeds, including net/switchdev/*. >> >> So why does NET_SWITCHDEV depend on INET? >> >> It looks like TI_CPSW_SWITCHDEV should depend on INET (based on the >> Kconfig rules), but in practice it doesn't seem to matter to the build. >> > > Thanks for reporting this. I'd like to ask for some advice of how to proceed? > a) change it to "depends on NET_SWITCHDEV" (as it's done in other drivers), > but this will require to add NET_SWITCHDEV in defconfig IMO TI_CPSW_SWITCHDEV should depend on NET_SWITCHDEV, as other drivers do that. That will require to add NET_SWITCHDEV in what defconfig? To me, it just means that whoever is doing the kernel config must enable/set NET_SWITCHDEV first, same as other drivers that depend on NET_SWITCHDEV. > b) change it to "imply NET_SWITCHDEV", but then NET_SWITCHDEV can be switched off > manually or by random build and cause build failure of cpsw_new. > To fix build below diff can be used, but TI_CPSW_SWITCHDEV will not be functional > > --- > diff --git a/drivers/net/ethernet/ti/cpsw_new.c b/drivers/net/ethernet/ti/cpsw_new.c > index 71215db7934b..22e8fc548d48 100644 > --- a/drivers/net/ethernet/ti/cpsw_new.c > +++ b/drivers/net/ethernet/ti/cpsw_new.c > @@ -368,8 +368,9 @@ static void cpsw_rx_handler(void *token, int len, int status) > page_pool_recycle_direct(pool, page); > goto requeue; > } > - > +#ifdef CONFIG_NET_SWITCHDEV > skb->offload_fwd_mark = priv->offload_fwd_mark; > +#endif > skb_reserve(skb, headroom); > skb_put(skb, len); > skb->dev = ndev; > > Thank you. > -- ~Randy Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>