net: dsa: tag_rtl4_a: fix egress tags
authorDENG Qingfang <dqfext@gmail.com>
Sun, 28 Feb 2021 17:08:23 +0000 (01:08 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 1 Mar 2021 21:09:55 +0000 (13:09 -0800)
commit9eb8bc593a5eed167dac2029abef343854c5ba75
tree358d30687bd52b942e3f1da8ae9a6561367e4999
parent826d82170b539f16e1955ab940222543c012044e
net: dsa: tag_rtl4_a: fix egress tags

Commit 86dd9868b878 has several issues, but was accepted too soon
before anyone could take a look.

- Double free. dsa_slave_xmit() will free the skb if the xmit function
  returns NULL, but the skb is already freed by eth_skb_pad(). Use
  __skb_put_padto() to avoid that.
- Unnecessary allocation. It has been done by DSA core since commit
  a3b0b6479700.
- A u16 pointer points to skb data. It should be __be16 for network
  byte order.
- Typo in comments. "numer" -> "number".

Fixes: 86dd9868b878 ("net: dsa: tag_rtl4_a: Support also egress tags")
Signed-off-by: DENG Qingfang <dqfext@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/tag_rtl4_a.c