net: dsa: tag_qca: return early if dev is not found
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> Link: https://lore.kernel.org/r/20230730074113.21889-1-ansuelsmth@gmail.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
630e0afacd
commit
de9db136dc
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue