Message ID | 20230730074113.21889-1-ansuelsmth@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | de9db136dcc3b60ba99f1f5034fc6ae7af45fa99 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,v3,1/5] net: dsa: tag_qca: return early if dev is not found | expand |
Hello: This series was applied to netdev/net-next.git (main) by Paolo Abeni <pabeni@redhat.com>: On Sun, 30 Jul 2023 09:41:09 +0200 you wrote: > Currently checksum is recalculated and dsa tag stripped even if we later > don't find the dev. > > To improve code, exit early if we don't find the dev and skip additional > operation on the skb since it will be freed anyway. > > Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> > Reviewed-by: Simon Horman <simon.horman@corigine.com> > Reviewed-by: Vladimir Oltean <olteanv@gmail.com> > Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> > > [...] Here is the summary with links: - [net-next,v3,1/5] net: dsa: tag_qca: return early if dev is not found https://git.kernel.org/netdev/net-next/c/de9db136dcc3 - [net-next,v3,2/5] net: dsa: qca8k: make learning configurable and keep off if standalone https://git.kernel.org/netdev/net-next/c/23cfc7172e52 - [net-next,v3,3/5] net: dsa: qca8k: limit user ports access to the first CPU port on setup https://git.kernel.org/netdev/net-next/c/18e8feae4a80 - [net-next,v3,4/5] net: dsa: qca8k: move qca8xxx hol fixup to separate function https://git.kernel.org/netdev/net-next/c/a9108b0712bf - [net-next,v3,5/5] net: dsa: qca8k: use dsa_for_each macro instead of for loop https://git.kernel.org/netdev/net-next/c/01e6f8ad8d26 You are awesome, thank you!
diff --git a/net/dsa/tag_qca.c b/net/dsa/tag_qca.c index e757c8de06f1..e5ff7c34e577 100644 --- a/net/dsa/tag_qca.c +++ b/net/dsa/tag_qca.c @@ -75,10 +75,6 @@ static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev) return NULL; } - /* Remove QCA tag and recalculate checksum */ - skb_pull_rcsum(skb, QCA_HDR_LEN); - dsa_strip_etype_header(skb, QCA_HDR_LEN); - /* Get source port information */ port = FIELD_GET(QCA_HDR_RECV_SOURCE_PORT, hdr); @@ -86,6 +82,10 @@ static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev) if (!skb->dev) return NULL; + /* Remove QCA tag and recalculate checksum */ + skb_pull_rcsum(skb, QCA_HDR_LEN); + dsa_strip_etype_header(skb, QCA_HDR_LEN); + return skb; }