diff mbox series

[net] net: Always descend into dsa/ folder

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

Checks

Context Check Description
netdev/series_format success Single patches do not need cover letters
netdev/tree_selection success Clearly marked for net
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag present in non-next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 922 this patch: 922
netdev/build_tools success No tools touched, skip
netdev/cc_maintainers success CCed 7 of 7 maintainers
netdev/build_clang success Errors and warnings before: 925 this patch: 925
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 927 this patch: 927
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 8 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0
netdev/contest success net-next-2024-05-17--00-00 (tests: 1034)

Commit Message

Florian Fainelli May 16, 2024, 3:33 a.m. UTC
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(-)

Comments

Alexander Lobakin May 16, 2024, 8:58 a.m. UTC | #1
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
Florian Fainelli May 16, 2024, 4:05 p.m. UTC | #2
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 mbox series

Patch

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/