diff options
author | Felix Fietkau <nbd@nbd.name> | 2022-11-19 19:04:08 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2022-11-21 11:47:36 +0100 |
commit | 9b482ee22f3f509880d2420652392971eef3211d (patch) | |
tree | f1e2325843bc13b6c509899d3ef5fdfdc4e6f392 /target/linux/generic/pending-5.15/732-08-net-dsa-add-support-for-DSA-rx-offloading-via-metada.patch | |
parent | 0d375de10dac3160c65c264bb91a5137ef4c0817 (diff) | |
download | upstream-9b482ee22f3f509880d2420652392971eef3211d.tar.gz upstream-9b482ee22f3f509880d2420652392971eef3211d.tar.bz2 upstream-9b482ee22f3f509880d2420652392971eef3211d.zip |
kernel: add more fixes for mtk_eth_soc
Fix corner cases in DSA offload
Add refcounting fix for flow offload
Fix VLAN untagging issue on MT7986
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'target/linux/generic/pending-5.15/732-08-net-dsa-add-support-for-DSA-rx-offloading-via-metada.patch')
-rw-r--r-- | target/linux/generic/pending-5.15/732-08-net-dsa-add-support-for-DSA-rx-offloading-via-metada.patch | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/target/linux/generic/pending-5.15/732-08-net-dsa-add-support-for-DSA-rx-offloading-via-metada.patch b/target/linux/generic/pending-5.15/732-08-net-dsa-add-support-for-DSA-rx-offloading-via-metada.patch index f6799f2949..0478cb528e 100644 --- a/target/linux/generic/pending-5.15/732-08-net-dsa-add-support-for-DSA-rx-offloading-via-metada.patch +++ b/target/linux/generic/pending-5.15/732-08-net-dsa-add-support-for-DSA-rx-offloading-via-metada.patch @@ -12,11 +12,12 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c -@@ -941,11 +941,13 @@ bool __skb_flow_dissect(const struct net +@@ -940,12 +940,14 @@ bool __skb_flow_dissect(const struct net + #if IS_ENABLED(CONFIG_NET_DSA) if (unlikely(skb->dev && netdev_uses_dsa(skb->dev) && proto == htons(ETH_P_XDSA))) { - const struct dsa_device_ops *ops; + struct metadata_dst *md_dst = skb_metadata_dst(skb); + const struct dsa_device_ops *ops; int offset = 0; ops = skb->dev->dsa_ptr->tag_ops; @@ -53,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> + if (md_dst && md_dst->type == METADATA_HW_PORT_MUX) { + unsigned int port = md_dst->u.port_info.port_id; + -+ skb_dst_set(skb, NULL); ++ skb_dst_drop(skb); + if (!skb_has_extensions(skb)) + skb->slow_gro = 0; + |