]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit2945256b41b5f6e1eaf1ef6786a93b97ca34a938
tree358d30687bd52b942e3f1da8ae9a6561367e4999
parent0a3941948270025dd445c9f7c8dcbcf1d5c7c2b3
net: dsa: tag_rtl4_a: fix egress tags

Commit 5f2efe09c447 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
  ce896b809416.
- A u16 pointer points to skb data. It should be __be16 for network
  byte order.
- Typo in comments. "numer" -> "number".

Fixes: 5f2efe09c447 ("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