]> git.baikalelectronics.ru Git - kernel.git/commit
net: dsa: Initialize DSA_SKB_CB(skb)->deferred_xmit variable
authorVladimir Oltean <olteanv@gmail.com>
Sat, 11 May 2019 20:14:45 +0000 (23:14 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 12 May 2019 20:19:46 +0000 (13:19 -0700)
commitac0f5752129124767e1834edc1994f652fdf10d7
treeec2cc5a812036a08df0cc25c1a6cce8fd8546fe7
parent1f61c9b2a8b773d64b7f06f6dc6f6ba08d37de17
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: 1957aa729663 ("net: dsa: Add support for deferred xmit")
Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/dsa.h
net/dsa/slave.c