linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] net: enetc: fix NTMP build dependency
@ 2025-05-20 16:12 Arnd Bergmann
  2025-05-21  2:11 ` Wei Fang
  0 siblings, 1 reply; 2+ messages in thread
From: Arnd Bergmann @ 2025-05-20 16:12 UTC (permalink / raw)
  To: Claudiu Manoil, Vladimir Oltean, Wei Fang, Clark Wang,
	Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni
  Cc: Arnd Bergmann, Heiner Kallweit, Frank Li, imx, netdev,
	linux-kernel

From: Arnd Bergmann <arnd@arndb.de>

When the new library driver is in a loadable module, but the enetc
core driver is built-in, the kernel fails to link:

aarch64-linux-ld: drivers/net/ethernet/freescale/enetc/enetc_cbdr.o: in function `enetc4_teardown_cbdr':
enetc_cbdr.c:(.text+0x70): undefined reference to `ntmp_free_cbdr'
aarch64-linux-ld: drivers/net/ethernet/freescale/enetc/enetc_cbdr.o: in function `enetc4_get_rss_table':
enetc_cbdr.c:(.text+0x98): undefined reference to `ntmp_rsst_query_entry'
aarch64-linux-ld: drivers/net/ethernet/freescale/enetc/enetc_cbdr.o: in function `enetc4_set_rss_table':
enetc_cbdr.c:(.text+0xb8): undefined reference to `ntmp_rsst_update_entry'
aarch64-linux-ld: drivers/net/ethernet/freescale/enetc/enetc_cbdr.o: in function `enetc4_setup_cbdr':
enetc_cbdr.c:(.text+0x438): undefined reference to `ntmp_init_cbdr'

Move the ntmp code into the core module itself to avoid this link error.

Fixes: 4701073c3deb ("net: enetc: add initial netc-lib driver to support NTMP")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/net/ethernet/freescale/enetc/Kconfig  | 2 +-
 drivers/net/ethernet/freescale/enetc/Makefile | 3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/freescale/enetc/Kconfig b/drivers/net/ethernet/freescale/enetc/Kconfig
index e917132d3714..90aa6f6dfd63 100644
--- a/drivers/net/ethernet/freescale/enetc/Kconfig
+++ b/drivers/net/ethernet/freescale/enetc/Kconfig
@@ -16,7 +16,7 @@ config NXP_ENETC_PF_COMMON
 	  If compiled as module (M), the module name is nxp-enetc-pf-common.
 
 config NXP_NETC_LIB
-	tristate
+	bool
 	help
 	  This module provides common functionalities for both ENETC and NETC
 	  Switch, such as NETC Table Management Protocol (NTMP) 2.0, common tc
diff --git a/drivers/net/ethernet/freescale/enetc/Makefile b/drivers/net/ethernet/freescale/enetc/Makefile
index f1c5ad45fd76..0af59f97b7e7 100644
--- a/drivers/net/ethernet/freescale/enetc/Makefile
+++ b/drivers/net/ethernet/freescale/enetc/Makefile
@@ -6,8 +6,7 @@ fsl-enetc-core-y := enetc.o enetc_cbdr.o enetc_ethtool.o
 obj-$(CONFIG_NXP_ENETC_PF_COMMON) += nxp-enetc-pf-common.o
 nxp-enetc-pf-common-y := enetc_pf_common.o
 
-obj-$(CONFIG_NXP_NETC_LIB) += nxp-netc-lib.o
-nxp-netc-lib-y := ntmp.o
+fsl-enetc-core-$(CONFIG_NXP_NETC_LIB) += ntmp.o
 
 obj-$(CONFIG_FSL_ENETC) += fsl-enetc.o
 fsl-enetc-y := enetc_pf.o
-- 
2.39.5


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* RE: [PATCH] net: enetc: fix NTMP build dependency
  2025-05-20 16:12 [PATCH] net: enetc: fix NTMP build dependency Arnd Bergmann
@ 2025-05-21  2:11 ` Wei Fang
  0 siblings, 0 replies; 2+ messages in thread
From: Wei Fang @ 2025-05-21  2:11 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Arnd Bergmann, Heiner Kallweit, Frank Li, imx@lists.linux.dev,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	Claudiu Manoil, Vladimir Oltean, Clark Wang, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni

> From: Arnd Bergmann <arnd@arndb.de>
> 
> When the new library driver is in a loadable module, but the enetc
> core driver is built-in, the kernel fails to link:
> 
> aarch64-linux-ld: drivers/net/ethernet/freescale/enetc/enetc_cbdr.o: in function
> `enetc4_teardown_cbdr':
> enetc_cbdr.c:(.text+0x70): undefined reference to `ntmp_free_cbdr'
> aarch64-linux-ld: drivers/net/ethernet/freescale/enetc/enetc_cbdr.o: in function
> `enetc4_get_rss_table':
> enetc_cbdr.c:(.text+0x98): undefined reference to `ntmp_rsst_query_entry'
> aarch64-linux-ld: drivers/net/ethernet/freescale/enetc/enetc_cbdr.o: in function
> `enetc4_set_rss_table':
> enetc_cbdr.c:(.text+0xb8): undefined reference to `ntmp_rsst_update_entry'
> aarch64-linux-ld: drivers/net/ethernet/freescale/enetc/enetc_cbdr.o: in function
> `enetc4_setup_cbdr':
> enetc_cbdr.c:(.text+0x438): undefined reference to `ntmp_init_cbdr'
> 
> Move the ntmp code into the core module itself to avoid this link error.
> 
> Fixes: 4701073c3deb ("net: enetc: add initial netc-lib driver to support NTMP")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  drivers/net/ethernet/freescale/enetc/Kconfig  | 2 +-
>  drivers/net/ethernet/freescale/enetc/Makefile | 3 +--
>  2 files changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/ethernet/freescale/enetc/Kconfig
> b/drivers/net/ethernet/freescale/enetc/Kconfig
> index e917132d3714..90aa6f6dfd63 100644
> --- a/drivers/net/ethernet/freescale/enetc/Kconfig
> +++ b/drivers/net/ethernet/freescale/enetc/Kconfig
> @@ -16,7 +16,7 @@ config NXP_ENETC_PF_COMMON
>  	  If compiled as module (M), the module name is nxp-enetc-pf-common.
> 
>  config NXP_NETC_LIB
> -	tristate
> +	bool
>  	help
>  	  This module provides common functionalities for both ENETC and NETC
>  	  Switch, such as NETC Table Management Protocol (NTMP) 2.0, common tc
> diff --git a/drivers/net/ethernet/freescale/enetc/Makefile
> b/drivers/net/ethernet/freescale/enetc/Makefile
> index f1c5ad45fd76..0af59f97b7e7 100644
> --- a/drivers/net/ethernet/freescale/enetc/Makefile
> +++ b/drivers/net/ethernet/freescale/enetc/Makefile
> @@ -6,8 +6,7 @@ fsl-enetc-core-y := enetc.o enetc_cbdr.o enetc_ethtool.o
>  obj-$(CONFIG_NXP_ENETC_PF_COMMON) += nxp-enetc-pf-common.o
>  nxp-enetc-pf-common-y := enetc_pf_common.o
> 
> -obj-$(CONFIG_NXP_NETC_LIB) += nxp-netc-lib.o
> -nxp-netc-lib-y := ntmp.o
> +fsl-enetc-core-$(CONFIG_NXP_NETC_LIB) += ntmp.o

Thanks for catching this issue.

The purpose of netc-lib is to be a library that provides the common interfaces
for enetc and NETC switch drivers to use (Note that switch driver is not added
to upstream yet), while enetc-core is only for the enetc drivers. So please do
not move ntmp code to enetc-core driver. I think changing "tristate" to "bool"
would be enough to fix this issue.

BTW, the blamed commit is only present in net-next, so the target tree should
be net-next.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-05-21  2:11 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-20 16:12 [PATCH] net: enetc: fix NTMP build dependency Arnd Bergmann
2025-05-21  2:11 ` Wei Fang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).