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 <[email protected]>
Signed-off-by: Florian Fainelli <[email protected]>
---
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_ETHERNET) += ethernet/
obj-$(CONFIG_FDDI) += fddi/
obj-$(CONFIG_HIPPI) += hippi/
--
2.34.1
From: Florian Fainelli <[email protected]>
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 <[email protected]>
> Signed-off-by: Florian Fainelli <[email protected]>
> ---
> 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 <[email protected]>
> 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 <[email protected]>
>> Signed-off-by: Florian Fainelli <[email protected]>
>> ---
>> 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!
--
Florian