diff mbox series

[net-next] net: dsa: sja1105: fix ptp link error

Message ID 20190617131430.2263299-1-arnd@arndb.de
State Accepted
Commit 78fe8a28fb9615c3c255702ed854f7796f266661
Headers show
Series [net-next] net: dsa: sja1105: fix ptp link error | expand

Commit Message

Arnd Bergmann June 17, 2019, 1:14 p.m. UTC
Due to a reversed dependency, it is possible to build
the lower ptp driver as a loadable module and the actual
driver using it as built-in, causing a link error:

drivers/net/dsa/sja1105/sja1105_spi.o: In function `sja1105_static_config_upload':
sja1105_spi.c:(.text+0x6f0): undefined reference to `sja1105_ptp_reset'
drivers/net/dsa/sja1105/sja1105_spi.o:(.data+0x2d4): undefined reference to `sja1105et_ptp_cmd'
drivers/net/dsa/sja1105/sja1105_spi.o:(.data+0x604): undefined reference to `sja1105pqrs_ptp_cmd'
drivers/net/dsa/sja1105/sja1105_main.o: In function `sja1105_remove':
sja1105_main.c:(.text+0x8d4): undefined reference to `sja1105_ptp_clock_unregister'
drivers/net/dsa/sja1105/sja1105_main.o: In function `sja1105_rxtstamp_work':
sja1105_main.c:(.text+0x964): undefined reference to `sja1105_tstamp_reconstruct'
drivers/net/dsa/sja1105/sja1105_main.o: In function `sja1105_setup':
sja1105_main.c:(.text+0xb7c): undefined reference to `sja1105_ptp_clock_register'
drivers/net/dsa/sja1105/sja1105_main.o: In function `sja1105_port_deferred_xmit':
sja1105_main.c:(.text+0x1fa0): undefined reference to `sja1105_ptpegr_ts_poll'
sja1105_main.c:(.text+0x1fc4): undefined reference to `sja1105_tstamp_reconstruct'
drivers/net/dsa/sja1105/sja1105_main.o:(.rodata+0x5b0): undefined reference to `sja1105_get_ts_info'

Change the Makefile logic to always build the ptp module
the same way as the rest. Another option would be to
just add it to the same module and remove the exports,
but I don't know if there was a good reason to keep them
separate.

Fixes: bb77f36ac21d ("net: dsa: sja1105: Add support for the PTP clock")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/net/dsa/sja1105/Kconfig  | 2 +-
 drivers/net/dsa/sja1105/Makefile | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

-- 
2.20.0

Comments

David Miller June 17, 2019, 11:25 p.m. UTC | #1
From: Arnd Bergmann <arnd@arndb.de>

Date: Mon, 17 Jun 2019 15:14:10 +0200

> Due to a reversed dependency, it is possible to build

> the lower ptp driver as a loadable module and the actual

> driver using it as built-in, causing a link error:

> 

> drivers/net/dsa/sja1105/sja1105_spi.o: In function `sja1105_static_config_upload':

> sja1105_spi.c:(.text+0x6f0): undefined reference to `sja1105_ptp_reset'

> drivers/net/dsa/sja1105/sja1105_spi.o:(.data+0x2d4): undefined reference to `sja1105et_ptp_cmd'

> drivers/net/dsa/sja1105/sja1105_spi.o:(.data+0x604): undefined reference to `sja1105pqrs_ptp_cmd'

> drivers/net/dsa/sja1105/sja1105_main.o: In function `sja1105_remove':

> sja1105_main.c:(.text+0x8d4): undefined reference to `sja1105_ptp_clock_unregister'

> drivers/net/dsa/sja1105/sja1105_main.o: In function `sja1105_rxtstamp_work':

> sja1105_main.c:(.text+0x964): undefined reference to `sja1105_tstamp_reconstruct'

> drivers/net/dsa/sja1105/sja1105_main.o: In function `sja1105_setup':

> sja1105_main.c:(.text+0xb7c): undefined reference to `sja1105_ptp_clock_register'

> drivers/net/dsa/sja1105/sja1105_main.o: In function `sja1105_port_deferred_xmit':

> sja1105_main.c:(.text+0x1fa0): undefined reference to `sja1105_ptpegr_ts_poll'

> sja1105_main.c:(.text+0x1fc4): undefined reference to `sja1105_tstamp_reconstruct'

> drivers/net/dsa/sja1105/sja1105_main.o:(.rodata+0x5b0): undefined reference to `sja1105_get_ts_info'

> 

> Change the Makefile logic to always build the ptp module

> the same way as the rest. Another option would be to

> just add it to the same module and remove the exports,

> but I don't know if there was a good reason to keep them

> separate.

> 

> Fixes: bb77f36ac21d ("net: dsa: sja1105: Add support for the PTP clock")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Applied, thanks.
diff mbox series

Patch

diff --git a/drivers/net/dsa/sja1105/Kconfig b/drivers/net/dsa/sja1105/Kconfig
index 105e8d3e380e..770134a66e48 100644
--- a/drivers/net/dsa/sja1105/Kconfig
+++ b/drivers/net/dsa/sja1105/Kconfig
@@ -18,7 +18,7 @@  tristate "NXP SJA1105 Ethernet switch family support"
 	    - SJA1105S (Gen. 2, SGMII, TT-Ethernet)
 
 config NET_DSA_SJA1105_PTP
-tristate "Support for the PTP clock on the NXP SJA1105 Ethernet switch"
+	bool "Support for the PTP clock on the NXP SJA1105 Ethernet switch"
 	depends on NET_DSA_SJA1105
 	help
 	  This enables support for timestamping and PTP clock manipulations in
diff --git a/drivers/net/dsa/sja1105/Makefile b/drivers/net/dsa/sja1105/Makefile
index 946eea7d8480..9a22f68b39e9 100644
--- a/drivers/net/dsa/sja1105/Makefile
+++ b/drivers/net/dsa/sja1105/Makefile
@@ -1,6 +1,5 @@ 
 # SPDX-License-Identifier: GPL-2.0-only
 obj-$(CONFIG_NET_DSA_SJA1105) += sja1105.o
-obj-$(CONFIG_NET_DSA_SJA1105_PTP) += sja1105_ptp.o
 
 sja1105-objs := \
     sja1105_spi.o \
@@ -9,3 +8,7 @@  sja1105-objs := \
     sja1105_clocking.o \
     sja1105_static_config.o \
     sja1105_dynamic_config.o \
+
+ifdef CONFIG_NET_DSA_SJA1105_PTP
+obj-$(CONFIG_NET_DSA_SJA1105) += sja1105_ptp.o
+endif