• Vladimir Oltean's avatar
    net: dsa: Initialize DSA_SKB_CB(skb)->deferred_xmit variable · 87671375
    Vladimir Oltean authored
    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: 97a69a0d ("net: dsa: Add support for deferred xmit")
    Signed-off-by: default avatarVladimir Oltean <olteanv@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    87671375
dsa.h 19.7 KB