summaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorVladimir Oltean <olteanv@gmail.com>2019-05-11 23:14:45 +0300
committerDavid S. Miller <davem@davemloft.net>2019-05-12 13:19:46 -0700
commit87671375108625bb7f8a09f0809a369d460ebe43 (patch)
treeec2cc5a812036a08df0cc25c1a6cce8fd8546fe7 /include/net
parent8f779443b440f975f0eea80a68e9adccc15050c0 (diff)
downloadlinux-stable-87671375108625bb7f8a09f0809a369d460ebe43.tar.gz
linux-stable-87671375108625bb7f8a09f0809a369d460ebe43.tar.bz2
linux-stable-87671375108625bb7f8a09f0809a369d460ebe43.zip
net: dsa: Initialize DSA_SKB_CB(skb)->deferred_xmit variable
The sk_buff control block can have any contents on xmit put there by the stack, so initialization is mandatory, since we are checking its value after the actual DSA xmit (the tagger may have changed it). The DSA_SKB_ZERO() macro could have been used for this purpose, but: - Zeroizing a 48-byte memory region in the hotpath is best avoided. - It would have triggered a warning with newer compilers since __dsa_skb_cb contains a structure within a structure, and the {0} initializer was incorrect for that purpose. So simply remove the DSA_SKB_ZERO() macro and initialize the deferred_xmit variable by hand (which should be done for all further dsa_skb_cb variables which need initialization - currently none - to avoid the performance penalty). Fixes: 97a69a0dea9a ("net: dsa: Add support for deferred xmit") Signed-off-by: Vladimir Oltean <olteanv@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/dsa.h3
1 files changed, 0 insertions, 3 deletions
diff --git a/include/net/dsa.h b/include/net/dsa.h
index 6aaaadd6a413..35ca1f2c6e28 100644
--- a/include/net/dsa.h
+++ b/include/net/dsa.h
@@ -102,9 +102,6 @@ struct __dsa_skb_cb {
#define DSA_SKB_CB_COPY(nskb, skb) \
{ *__DSA_SKB_CB(nskb) = *__DSA_SKB_CB(skb); }
-#define DSA_SKB_CB_ZERO(skb) \
- { *__DSA_SKB_CB(skb) = (struct __dsa_skb_cb) {0}; }
-
#define DSA_SKB_CB_PRIV(skb) \
((void *)(skb)->cb + offsetof(struct __dsa_skb_cb, priv))