Message ID | 20240516033345.1813070-1-florian.fainelli@broadcom.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net: Always descend into dsa/ folder | expand |
From: Florian Fainelli <florian.fainelli@broadcom.com> Date: Wed, 15 May 2024 20:33:45 -0700 > Stephen reported that he was unable to get the dsa_loop driver to get > probed, and the reason ended up being because he had CONFIG_FIXED_PHY=y > in his kernel configuration. As Masahiro explained it: > > "obj-m += dsa/" means everything under dsa/ must be modular. > > If there is a built-in object under dsa/ with CONFIG_NET_DSA=m, > you cannot do "obj-$(CONFIG_NET_DSA) += dsa/". > > You need to change it back to "obj-y += dsa/". > > This was the case here whereby CONFIG_NET_DSA=m, and so the > obj-$(CONFIG_FIXED_PHY) += dsa_loop_bdinfo.o rule is not executed and > the DSA loop mdio_board info structure is not registered with the > kernel, and eventually the device is simply not found. > > Fixes: 227d72063fcc ("dsa: simplify Kconfig symbols and dependencies") > Reported-by: Stephen Langstaff <stephenlangstaff1@gmail.com> > Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com> > --- > drivers/net/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/Makefile b/drivers/net/Makefile > index 9c053673d6b2..0f6f0f091e0e 100644 > --- a/drivers/net/Makefile > +++ b/drivers/net/Makefile > @@ -49,7 +49,7 @@ obj-$(CONFIG_MHI_NET) += mhi_net.o > obj-$(CONFIG_ARCNET) += arcnet/ > obj-$(CONFIG_CAIF) += caif/ > obj-$(CONFIG_CAN) += can/ > -obj-$(CONFIG_NET_DSA) += dsa/ > +obj-y += dsa/ obj-$(CONFIG_NET_DSA:m=y) += dsa/ ? or ifdef CONFIG_NET_DSA obj-y += dsa/ endif I don't like always adding folders even if nothing will be built there as we then have a lot of folders with just empty built-in.a. > obj-$(CONFIG_ETHERNET) += ethernet/ > obj-$(CONFIG_FDDI) += fddi/ > obj-$(CONFIG_HIPPI) += hippi/ Thanks, Olek
On 5/16/24 01:58, Alexander Lobakin wrote: > From: Florian Fainelli <florian.fainelli@broadcom.com> > Date: Wed, 15 May 2024 20:33:45 -0700 > >> Stephen reported that he was unable to get the dsa_loop driver to get >> probed, and the reason ended up being because he had CONFIG_FIXED_PHY=y >> in his kernel configuration. As Masahiro explained it: >> >> "obj-m += dsa/" means everything under dsa/ must be modular. >> >> If there is a built-in object under dsa/ with CONFIG_NET_DSA=m, >> you cannot do "obj-$(CONFIG_NET_DSA) += dsa/". >> >> You need to change it back to "obj-y += dsa/". >> >> This was the case here whereby CONFIG_NET_DSA=m, and so the >> obj-$(CONFIG_FIXED_PHY) += dsa_loop_bdinfo.o rule is not executed and >> the DSA loop mdio_board info structure is not registered with the >> kernel, and eventually the device is simply not found. >> >> Fixes: 227d72063fcc ("dsa: simplify Kconfig symbols and dependencies") >> Reported-by: Stephen Langstaff <stephenlangstaff1@gmail.com> >> Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com> >> --- >> drivers/net/Makefile | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/net/Makefile b/drivers/net/Makefile >> index 9c053673d6b2..0f6f0f091e0e 100644 >> --- a/drivers/net/Makefile >> +++ b/drivers/net/Makefile >> @@ -49,7 +49,7 @@ obj-$(CONFIG_MHI_NET) += mhi_net.o >> obj-$(CONFIG_ARCNET) += arcnet/ >> obj-$(CONFIG_CAIF) += caif/ >> obj-$(CONFIG_CAN) += can/ >> -obj-$(CONFIG_NET_DSA) += dsa/ >> +obj-y += dsa/ > > obj-$(CONFIG_NET_DSA:m=y) += dsa/ > > ? > > or > > ifdef CONFIG_NET_DSA > obj-y += dsa/ > endif > > I don't like always adding folders even if nothing will be built there > as we then have a lot of folders with just empty built-in.a. Sounds good, I prefer the second version which is clearer IMHO, will spin a v2 in the next few hours. Thanks!
diff --git a/drivers/net/Makefile b/drivers/net/Makefile index 9c053673d6b2..0f6f0f091e0e 100644 --- a/drivers/net/Makefile +++ b/drivers/net/Makefile @@ -49,7 +49,7 @@ obj-$(CONFIG_MHI_NET) += mhi_net.o obj-$(CONFIG_ARCNET) += arcnet/ obj-$(CONFIG_CAIF) += caif/ obj-$(CONFIG_CAN) += can/ -obj-$(CONFIG_NET_DSA) += dsa/ +obj-y += dsa/ obj-$(CONFIG_ETHERNET) += ethernet/ obj-$(CONFIG_FDDI) += fddi/ obj-$(CONFIG_HIPPI) += hippi/
Stephen reported that he was unable to get the dsa_loop driver to get probed, and the reason ended up being because he had CONFIG_FIXED_PHY=y in his kernel configuration. As Masahiro explained it: "obj-m += dsa/" means everything under dsa/ must be modular. If there is a built-in object under dsa/ with CONFIG_NET_DSA=m, you cannot do "obj-$(CONFIG_NET_DSA) += dsa/". You need to change it back to "obj-y += dsa/". This was the case here whereby CONFIG_NET_DSA=m, and so the obj-$(CONFIG_FIXED_PHY) += dsa_loop_bdinfo.o rule is not executed and the DSA loop mdio_board info structure is not registered with the kernel, and eventually the device is simply not found. Fixes: 227d72063fcc ("dsa: simplify Kconfig symbols and dependencies") Reported-by: Stephen Langstaff <stephenlangstaff1@gmail.com> Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com> --- drivers/net/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)