diff options
author | Yangbo Lu <yangbo.lu@nxp.com> | 2021-04-27 12:22:00 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-04-27 14:10:15 -0700 |
commit | c4b364ce1270d689ee5010001344b8eae3685f32 (patch) | |
tree | 9067cf9a35e95a99308d823ba9b2db06165fb8ae /include/linux/dsa | |
parent | 5c5416f5d4c75fe6aba56f6c2c45a070b5e7cc78 (diff) | |
download | lwn-c4b364ce1270d689ee5010001344b8eae3685f32.tar.gz lwn-c4b364ce1270d689ee5010001344b8eae3685f32.zip |
net: dsa: free skb->cb usage in core driver
Free skb->cb usage in core driver and let device drivers decide to
use or not. The reason having a DSA_SKB_CB(skb)->clone was because
dsa_skb_tx_timestamp() which may set the clone pointer was called
before p->xmit() which would use the clone if any, and the device
driver has no way to initialize the clone pointer.
This patch just put memset(skb->cb, 0, sizeof(skb->cb)) at beginning
of dsa_slave_xmit(). Some new features in the future, like one-step
timestamp may need more bytes of skb->cb to use in
dsa_skb_tx_timestamp(), and p->xmit().
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/dsa')
-rw-r--r-- | include/linux/dsa/sja1105.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/dsa/sja1105.h b/include/linux/dsa/sja1105.h index dd93735ae228..1eb84562b311 100644 --- a/include/linux/dsa/sja1105.h +++ b/include/linux/dsa/sja1105.h @@ -47,11 +47,12 @@ struct sja1105_tagger_data { }; struct sja1105_skb_cb { + struct sk_buff *clone; u32 meta_tstamp; }; #define SJA1105_SKB_CB(skb) \ - ((struct sja1105_skb_cb *)DSA_SKB_CB_PRIV(skb)) + ((struct sja1105_skb_cb *)((skb)->cb)) struct sja1105_port { u16 subvlan_map[DSA_8021Q_N_SUBVLAN]; |