Message ID | 20170313165927.1389014-1-arnd@arndb.de |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
From: Arnd Bergmann <arnd@arndb.de> Date: Mon, 13 Mar 2017 17:59:04 +0100 > The dependency is reversed: cpsw and netcp call into cpts, > but cpts depends on the other two in Kconfig. This can lead > to cpts being a loadable module and its callers built-in: > > drivers/net/ethernet/ti/cpsw.o: In function `cpsw_remove': > cpsw.c:(.text.cpsw_remove+0xd0): undefined reference to `cpts_release' > drivers/net/ethernet/ti/cpsw.o: In function `cpsw_rx_handler': > cpsw.c:(.text.cpsw_rx_handler+0x2dc): undefined reference to `cpts_rx_timestamp' > drivers/net/ethernet/ti/cpsw.o: In function `cpsw_tx_handler': > cpsw.c:(.text.cpsw_tx_handler+0x7c): undefined reference to `cpts_tx_timestamp' > drivers/net/ethernet/ti/cpsw.o: In function `cpsw_ndo_stop': > > As a workaround, I'm introducing another Kconfig symbol to > control the compilation of cpts, while making the actual > module controlled by a silent symbol that is =y when necessary. > > Fixes: 6246168b4a38 ("net: ethernet: ti: netcp: add support of cpts") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com> > --- > Originally submitted on Dec 16, still needed for v4.10 and v4.11-rc2 I'm fine with this change, but please keep the user visible Kconfig symbol name the same, use the new name for the internal one. I know that this means you have to make more changes elsewhere in order to accomplish this.
On Fri, Mar 17, 2017 at 4:13 AM, David Miller <davem@davemloft.net> wrote: > > I'm fine with this change, but please keep the user visible Kconfig > symbol name the same, use the new name for the internal one. Yes, makes snese. > I know that this means you have to make more changes elsewhere in > order to accomplish this. It turned out to require just one extra change line, as the other references work either way (they use IS_ENABLED()). I'm running a little more build tests and will then submit the new version. Arnd
diff --git a/drivers/net/ethernet/ti/Kconfig b/drivers/net/ethernet/ti/Kconfig index 296c8efd0038..d42257fbe9d9 100644 --- a/drivers/net/ethernet/ti/Kconfig +++ b/drivers/net/ethernet/ti/Kconfig @@ -73,8 +73,8 @@ config TI_CPSW To compile this driver as a module, choose M here: the module will be called cpsw. -config TI_CPTS - tristate "TI Common Platform Time Sync (CPTS) Support" +config TI_CPTS_ENABLE + bool "TI Common Platform Time Sync (CPTS) Support" depends on TI_CPSW || TI_KEYSTONE_NETCP imply PTP_1588_CLOCK ---help--- @@ -83,6 +83,12 @@ config TI_CPTS The unit can time stamp PTP UDP/IPv4 and Layer 2 packets, and the driver offers a PTP Hardware Clock. +config TI_CPTS + tristate + depends on TI_CPTS_ENABLE + default y if TI_CPSW=y || TI_KEYSTONE_NETCP=y + default m + config TI_KEYSTONE_NETCP tristate "TI Keystone NETCP Core Support" select TI_CPSW_ALE