drivers/net/ethernet/freescale/enetc/Kconfig | 3 ++- drivers/net/mdio/Kconfig | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-)
From: Arnd Bergmann <arnd@arndb.de>
The newly added rtl9300 driver needs MDIO_DEVRES:
x86_64-linux-ld: drivers/net/mdio/mdio-realtek-rtl9300.o: in function `rtl9300_mdiobus_probe':
mdio-realtek-rtl9300.c:(.text+0x941): undefined reference to `devm_mdiobus_alloc_size'
x86_64-linux-ld: mdio-realtek-rtl9300.c:(.text+0x9e2): undefined reference to `__devm_mdiobus_register'
Since this is a hidden symbol, it needs to be selected by each user,
rather than the usual 'depends on'. I see that there are a few other
drivers that accidentally use 'depends on', so fix these as well for
consistency and to avoid dependency loops.
Fixes: 37f9b2a6c086 ("net: ethernet: Add missing depends on MDIO_DEVRES")
Fixes: 24e31e474769 ("net: mdio: Add RTL9300 MDIO driver")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
drivers/net/ethernet/freescale/enetc/Kconfig | 3 ++-
drivers/net/mdio/Kconfig | 7 ++++---
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/freescale/enetc/Kconfig b/drivers/net/ethernet/freescale/enetc/Kconfig
index 6c2779047dcd..5367e8af1e1a 100644
--- a/drivers/net/ethernet/freescale/enetc/Kconfig
+++ b/drivers/net/ethernet/freescale/enetc/Kconfig
@@ -73,7 +73,8 @@ config FSL_ENETC_IERB
config FSL_ENETC_MDIO
tristate "ENETC MDIO driver"
- depends on PCI && MDIO_DEVRES && MDIO_BUS
+ depends on PCI && MDIO_BUS
+ select MDIO_DEVRES
help
This driver supports NXP ENETC Central MDIO controller as a PCIe
physical function (PF) device.
diff --git a/drivers/net/mdio/Kconfig b/drivers/net/mdio/Kconfig
index 38a4901da32f..f680ed676797 100644
--- a/drivers/net/mdio/Kconfig
+++ b/drivers/net/mdio/Kconfig
@@ -66,7 +66,7 @@ config MDIO_ASPEED
tristate "ASPEED MDIO bus controller"
depends on ARCH_ASPEED || COMPILE_TEST
depends on OF_MDIO && HAS_IOMEM
- depends on MDIO_DEVRES
+ select MDIO_DEVRES
help
This module provides a driver for the independent MDIO bus
controllers found in the ASPEED AST2600 SoC. This is a driver for the
@@ -172,7 +172,7 @@ config MDIO_IPQ4019
tristate "Qualcomm IPQ4019 MDIO interface support"
depends on HAS_IOMEM && OF_MDIO
depends on COMMON_CLK
- depends on MDIO_DEVRES
+ select MDIO_DEVRES
help
This driver supports the MDIO interface found in Qualcomm
IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s.
@@ -181,7 +181,7 @@ config MDIO_IPQ8064
tristate "Qualcomm IPQ8064 MDIO interface support"
depends on HAS_IOMEM && OF_MDIO
depends on MFD_SYSCON
- depends on MDIO_DEVRES
+ select MDIO_DEVRES
help
This driver supports the MDIO interface found in the network
interface units of the IPQ8064 SoC
@@ -189,6 +189,7 @@ config MDIO_IPQ8064
config MDIO_REALTEK_RTL9300
tristate "Realtek RTL9300 MDIO interface support"
depends on MACH_REALTEK_RTL || COMPILE_TEST
+ select MDIO_DEVRES
help
This driver supports the MDIO interface found in the Realtek
RTL9300 family of Ethernet switches with integrated SoC.
--
2.39.5
Hi Arnd,
On 25/04/2025 23:27, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> The newly added rtl9300 driver needs MDIO_DEVRES:
>
> x86_64-linux-ld: drivers/net/mdio/mdio-realtek-rtl9300.o: in function `rtl9300_mdiobus_probe':
> mdio-realtek-rtl9300.c:(.text+0x941): undefined reference to `devm_mdiobus_alloc_size'
> x86_64-linux-ld: mdio-realtek-rtl9300.c:(.text+0x9e2): undefined reference to `__devm_mdiobus_register'
> Since this is a hidden symbol, it needs to be selected by each user,
> rather than the usual 'depends on'. I see that there are a few other
> drivers that accidentally use 'depends on', so fix these as well for
> consistency and to avoid dependency loops.
>
> Fixes: 37f9b2a6c086 ("net: ethernet: Add missing depends on MDIO_DEVRES")
> Fixes: 24e31e474769 ("net: mdio: Add RTL9300 MDIO driver")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Thanks for catching this
Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> ---
> drivers/net/ethernet/freescale/enetc/Kconfig | 3 ++-
> drivers/net/mdio/Kconfig | 7 ++++---
> 2 files changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/ethernet/freescale/enetc/Kconfig b/drivers/net/ethernet/freescale/enetc/Kconfig
> index 6c2779047dcd..5367e8af1e1a 100644
> --- a/drivers/net/ethernet/freescale/enetc/Kconfig
> +++ b/drivers/net/ethernet/freescale/enetc/Kconfig
> @@ -73,7 +73,8 @@ config FSL_ENETC_IERB
>
> config FSL_ENETC_MDIO
> tristate "ENETC MDIO driver"
> - depends on PCI && MDIO_DEVRES && MDIO_BUS
> + depends on PCI && MDIO_BUS
> + select MDIO_DEVRES
> help
> This driver supports NXP ENETC Central MDIO controller as a PCIe
> physical function (PF) device.
> diff --git a/drivers/net/mdio/Kconfig b/drivers/net/mdio/Kconfig
> index 38a4901da32f..f680ed676797 100644
> --- a/drivers/net/mdio/Kconfig
> +++ b/drivers/net/mdio/Kconfig
> @@ -66,7 +66,7 @@ config MDIO_ASPEED
> tristate "ASPEED MDIO bus controller"
> depends on ARCH_ASPEED || COMPILE_TEST
> depends on OF_MDIO && HAS_IOMEM
> - depends on MDIO_DEVRES
> + select MDIO_DEVRES
> help
> This module provides a driver for the independent MDIO bus
> controllers found in the ASPEED AST2600 SoC. This is a driver for the
> @@ -172,7 +172,7 @@ config MDIO_IPQ4019
> tristate "Qualcomm IPQ4019 MDIO interface support"
> depends on HAS_IOMEM && OF_MDIO
> depends on COMMON_CLK
> - depends on MDIO_DEVRES
> + select MDIO_DEVRES
> help
> This driver supports the MDIO interface found in Qualcomm
> IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s.
> @@ -181,7 +181,7 @@ config MDIO_IPQ8064
> tristate "Qualcomm IPQ8064 MDIO interface support"
> depends on HAS_IOMEM && OF_MDIO
> depends on MFD_SYSCON
> - depends on MDIO_DEVRES
> + select MDIO_DEVRES
> help
> This driver supports the MDIO interface found in the network
> interface units of the IPQ8064 SoC
> @@ -189,6 +189,7 @@ config MDIO_IPQ8064
> config MDIO_REALTEK_RTL9300
> tristate "Realtek RTL9300 MDIO interface support"
> depends on MACH_REALTEK_RTL || COMPILE_TEST
> + select MDIO_DEVRES
> help
> This driver supports the MDIO interface found in the Realtek
> RTL9300 family of Ethernet switches with integrated SoC.
© 2016 - 2026 Red Hat, Inc.