[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID:
<PAXPR04MB851053B80F47A41520984667889EA@PAXPR04MB8510.eurprd04.prod.outlook.com>
Date: Wed, 21 May 2025 02:11:44 +0000
From: Wei Fang <wei.fang@....com>
To: Arnd Bergmann <arnd@...nel.org>
CC: Arnd Bergmann <arnd@...db.de>, Heiner Kallweit <hkallweit1@...il.com>,
Frank Li <frank.li@....com>, "imx@...ts.linux.dev" <imx@...ts.linux.dev>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, Claudiu Manoil
<claudiu.manoil@....com>, Vladimir Oltean <vladimir.oltean@....com>, Clark
Wang <xiaoning.wang@....com>, Andrew Lunn <andrew+netdev@...n.ch>, "David S.
Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Jakub
Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>
Subject: RE: [PATCH] net: enetc: fix NTMP build dependency
> From: Arnd Bergmann <arnd@...db.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@...db.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.
Powered by blists - more mailing lists