]> git.itanic.dy.fi Git - linux-stable/commitdiff
net: dsa: tag_sja1105: don't rely on skb_mac_header() in TX paths
authorVladimir Oltean <vladimir.oltean@nxp.com>
Thu, 20 Apr 2023 22:55:58 +0000 (01:55 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 23 Apr 2023 13:16:44 +0000 (14:16 +0100)
skb_mac_header() will no longer be available in the TX path when
reverting commit 6d1ccff62780 ("net: reset mac header in
dev_start_xmit()"). As preparation for that, let's use
skb_vlan_eth_hdr() to get to the VLAN header instead, which assumes it's
located at skb->data (assumption which holds true here).

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/tag_sja1105.c

index 1c2ceba4771bbdf842e6954a18a7c88b5e9ab01b..a7ca97b7ac9e6b4244a8b3e87c506dc456efd700 100644 (file)
@@ -256,7 +256,7 @@ static struct sk_buff *sja1105_pvid_tag_control_pkt(struct dsa_port *dp,
                        return NULL;
        }
 
-       hdr = (struct vlan_ethhdr *)skb_mac_header(skb);
+       hdr = skb_vlan_eth_hdr(skb);
 
        /* If skb is already VLAN-tagged, leave that VLAN ID in place */
        if (hdr->h_vlan_proto == xmit_tpid)