aboutsummaryrefslogtreecommitdiff
path: root/tools/scripts
diff options
context:
space:
mode:
authorVladimir Oltean2021-10-12 14:40:40 +0300
committerJakub Kicinski2021-10-12 17:35:18 -0700
commitdeab6b1cd9789bb9bd466d5e76aecb8b336259b4 (patch)
treefe4b45eb3ba2747af1991fb370ec5a79b49b0dc6 /tools/scripts
parentebb4c6a990f786d7e0e4618a0d3766cd660125d8 (diff)
net: dsa: tag_ocelot: break circular dependency with ocelot switch lib driver
As explained here: https://lore.kernel.org/netdev/20210908220834.d7gmtnwrorhharna@skbuf/ DSA tagging protocol drivers cannot depend on symbols exported by switch drivers, because this creates a circular dependency that breaks module autoloading. The tag_ocelot.c file depends on the ocelot_ptp_rew_op() function exported by the common ocelot switch lib. This function looks at OCELOT_SKB_CB(skb) and computes how to populate the REW_OP field of the DSA tag, for PTP timestamping (the command: one-step/two-step, and the TX timestamp identifier). None of that requires deep insight into the driver, it is quite stateless, as it only depends upon the skb->cb. So let's make it a static inline function and put it in include/linux/dsa/ocelot.h, a file that despite its name is used by the ocelot switch driver for populating the injection header too - since commit 40d3f295b5fe ("net: mscc: ocelot: use common tag parsing code with DSA"). With that function declared as static inline, its body is expanded inside each call site, so the dependency is broken and the DSA tagger can be built without the switch library, upon which the felix driver depends. Fixes: 39e5308b3250 ("net: mscc: ocelot: support PTP Sync one-step timestamping") Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/scripts')
0 files changed, 0 insertions, 0 deletions