diff mbox series

[net-next] net: dsa: tag_sja1105: optionally build as module when switch driver is module if PTP is enabled

Message ID 20210805113612.2174148-1-vladimir.oltean@nxp.com (mailing list archive)
State Accepted
Commit f8b17a0bd96065e4511858689916bb729dbb881b
Delegated to: Netdev Maintainers
Headers show
Series [net-next] net: dsa: tag_sja1105: optionally build as module when switch driver is module if PTP is enabled | expand

Checks

Context Check Description
netdev/apply success Patch already applied to net-next
netdev/tree_selection success Clearly marked for net-next

Commit Message

Vladimir Oltean Aug. 5, 2021, 11:36 a.m. UTC
TX timestamps are sent by SJA1110 as Ethernet packets containing
metadata, so they are received by the tagging driver but must be
processed by the switch driver - the one that is stateful since it
keeps the TX timestamp queue.

This means that there is an sja1110_process_meta_tstamp() symbol
exported by the switch driver which is called by the tagging driver.

There is a shim definition for that function when the switch driver is
not compiled, which does nothing, but that shim is not effective when
the tagging protocol driver is built-in and the switch driver is a
module, because built-in code cannot call symbols exported by modules.

So add an optional dependency between the tagger and the switch driver,
if PTP support is enabled in the switch driver. If PTP is not enabled,
sja1110_process_meta_tstamp() will translate into the shim "do nothing
with these meta frames" function.

Fixes: 566b18c8b752 ("net: dsa: sja1105: implement TX timestamping for SJA1110")
Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
 net/dsa/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

patchwork-bot+netdevbpf@kernel.org Aug. 5, 2021, 12:40 p.m. UTC | #1
Hello:

This patch was applied to netdev/net-next.git (refs/heads/master):

On Thu,  5 Aug 2021 14:36:12 +0300 you wrote:
> TX timestamps are sent by SJA1110 as Ethernet packets containing
> metadata, so they are received by the tagging driver but must be
> processed by the switch driver - the one that is stateful since it
> keeps the TX timestamp queue.
> 
> This means that there is an sja1110_process_meta_tstamp() symbol
> exported by the switch driver which is called by the tagging driver.
> 
> [...]

Here is the summary with links:
  - [net-next] net: dsa: tag_sja1105: optionally build as module when switch driver is module if PTP is enabled
    https://git.kernel.org/netdev/net-next/c/f8b17a0bd960

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
diff mbox series

Patch

diff --git a/net/dsa/Kconfig b/net/dsa/Kconfig
index bca1b5d66df2..970906eb5b2c 100644
--- a/net/dsa/Kconfig
+++ b/net/dsa/Kconfig
@@ -138,6 +138,7 @@  config NET_DSA_TAG_LAN9303
 
 config NET_DSA_TAG_SJA1105
 	tristate "Tag driver for NXP SJA1105 switches"
+	depends on (NET_DSA_SJA1105 && NET_DSA_SJA1105_PTP) || !NET_DSA_SJA1105 || !NET_DSA_SJA1105_PTP
 	select PACKING
 	help
 	  Say Y or M if you want to enable support for tagging frames with the