Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1543307

[PATCH net 3/3] cpsw/netcp: work around reverse cpts dependency

Path csiph.com!news.mixmin.net!news.unit0.net!news.panservice.it!bofh.it!news.nic.it!robomod
From Arnd Bergmann <arnd@arndb.de>
Newsgroups linux.kernel
Subject [PATCH net 3/3] cpsw/netcp: work around reverse cpts dependency
Date Fri, 16 Dec 2016 10:30:02 +0100
Message-ID <sOWZY-1DO-29@gated-at.bofh.it> (permalink)
References <sOWZY-1DO-9@gated-at.bofh.it>
X-Original-To "David S. Miller" <davem@davemloft.net>
X-Mailer git-send-email 2.9.0
X-Provags-ID V03:K0:T+XphN2sMgYktxaCQFrW4MwWN3v9OHS4IOcoZyzufRfvjT5UeBy naMvMuJ0/ZQohrRFkLF4lFfukR0GokUs8vutfbf5VKlwmDP+1iWLHggP7Axy06rs8ANnUDR IiTD80noj4sncyi+KIpxey19K/1bA5ynTT4Ib3X8WqEnv8h01LgamZYSUfr/TKTQoNny3ye tiaA15vHtprjGNcRZQoCA==
X-Ui-Out-Filterresults notjunk:1;V01:K0:S9L8IvZM4qU=:8b7u5p8CmOCxAp4ZC0bcF+ hjPpSL/3KoZJQQEFrnCiFgtAMzCoCdPhyhz5dTSJTLd6dwKwe13IzUsnkc2YbLnO6Q3mqBupK bZ+H0h7as+ilaxC2TR8dpfFz+r3qRWZkx+GP5/CEemcJQO62nT15EzxcT1E6KTxdPRbV9B6KJ z7HQv33vgQN3gppXWq5EErNasUVm/IJmC8cKknRinv4aht++vn2C6KlXsWxyqbTSYeA9MJcOi bXNbHMM5FWY/yUrCRZ2Eby6hTDe1AmHeEFn8DBuleREzAdWFl7ya/Nlh2Vy1QwAqkbmG+mbkF mMcpz+V+rIVKz23rbJpkDAWVzny0USMZz3Av3BQmiWzXTJ/qw/toYOF4ETwBUu7tHNgbh2mjQ RD2y+Wq4/F/sMHZEi7k5dGBBSj4S+8FeeNo7ChY1BxwMnasZAkN5KjBKd+hnZ1Y5HQWogtFOh uUkNI1NKTf10SEOay8uCE32PgutnCfGLUL6dmPt2ihFfn3MNiUiX6exVR2dM9ty5XmBqCmSTk PPOPDuF8GUqMn6TkGA9k/igVBDcnvuYz19P0yViuidf0HBLn3s4p+H5WRTyH9V/LX0DDz8/pl aetCFr2RJIYsP8nmrNf22oABSxqvaO+cNqYr8a2WGsKhxBRTV+eBfPVxnokIIPwn5oc+lqxuP Ajaz/1MlCz7/aAaI0GYmKjhBQ9MeNXKe1G57AWs/7WMnCTrPFeOwWp91H0h4O0vsCJhw=
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 52
Organization linux.* mail to news gateway
X-Original-Cc Arnd Bergmann <arnd@arndb.de>, Grygorii Strashko <grygorii.strashko@ti.com>, Thomas Gleixner <tglx@linutronix.de>, Nicolas Pitre <nicolas.pitre@linaro.org>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>, WingMan Kwok <w-kwok2@ti.com>, netdev@vger.kernel.org, linux-kernel@vger.kernel.org
X-Original-Date Fri, 16 Dec 2016 10:19:59 +0100
X-Original-Message-ID <20161216092017.2560717-3-arnd@arndb.de>
X-Original-References <20161216092017.2560717-1-arnd@arndb.de>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1543307

Show key headers only | View raw


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>
---
 drivers/net/ethernet/ti/Kconfig | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/ti/Kconfig b/drivers/net/ethernet/ti/Kconfig
index 366e29ff8605..c114efcd1575 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
 	depends on POSIX_TIMERS
 	select PTP_1588_CLOCK
@@ -84,6 +84,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
-- 
2.9.0

Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH net 1/3] cpsw/netcp: cpts depends on posix_timers Arnd Bergmann <arnd@arndb.de> - 2016-12-16 10:30 +0100
  [PATCH net 3/3] cpsw/netcp: work around reverse cpts dependency Arnd Bergmann <arnd@arndb.de> - 2016-12-16 10:30 +0100
    Re: [PATCH net 3/3] cpsw/netcp: work around reverse cpts dependency Grygorii Strashko <grygorii.strashko@ti.com> - 2016-12-21 19:30 +0100
  Re: [PATCH net 1/3] cpsw/netcp: cpts depends on posix_timers Nicolas Pitre <nicolas.pitre@linaro.org> - 2016-12-16 19:20 +0100

csiph-web