| 123456789101112131415161718192021222324252627282930313233 | 
							- From: Felix Fietkau <[email protected]>
 
- Date: Tue, 27 Dec 2022 15:02:51 +0100
 
- Subject: [PATCH] net: ethernet: mtk_eth_soc: ppe: fix L2 offloading with DSA
 
-  untagging offload enabled
 
- Check for skb metadata in order to detect the case where the DSA header is not
 
- present.
 
- Fixes: 2d7605a72906 ("net: ethernet: mtk_eth_soc: enable hardware DSA untagging")
 
- Signed-off-by: Felix Fietkau <[email protected]>
 
- ---
 
- --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
 
- +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
 
- @@ -8,6 +8,7 @@
 
-  #include <linux/platform_device.h>
 
-  #include <linux/if_ether.h>
 
-  #include <linux/if_vlan.h>
 
- +#include <net/dst_metadata.h>
 
-  #include <net/dsa.h>
 
-  #include "mtk_eth_soc.h"
 
-  #include "mtk_ppe.h"
 
- @@ -775,7 +776,9 @@ void __mtk_ppe_check_skb(struct mtk_ppe
 
-  		    skb->dev->dsa_ptr->tag_ops->proto != DSA_TAG_PROTO_MTK)
 
-  			goto out;
 
-  
 
- -		tag += 4;
 
- +		if (!skb_metadata_dst(skb))
 
- +			tag += 4;
 
- +
 
-  		if (get_unaligned_be16(tag) != ETH_P_8021Q)
 
-  			break;
 
-  
 
 
  |