ip807x: backport bridge port forwarding patch

Fixes: WIFI-13234
Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
John Crispin
2023-12-15 14:59:35 +01:00
parent 01240ada80
commit 9e5d1ae848
3 changed files with 42 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
Index: linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/net/bridge/br_forward.c
===================================================================
--- linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d.orig/net/bridge/br_forward.c
+++ linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/net/bridge/br_forward.c
@@ -24,8 +24,7 @@ static inline int should_deliver(const s
struct net_bridge_vlan_group *vg;
vg = nbp_vlan_group_rcu(p);
- return (((p->flags & BR_HAIRPIN_MODE) && !is_multicast_ether_addr(eth_hdr(skb)->h_dest))
- || (skb->dev != p->dev)) &&
+ return (((p->flags & BR_HAIRPIN_MODE)) || (skb->dev != p->dev)) &&
br_allowed_egress(vg, skb) && (p->state == BR_STATE_FORWARDING) &&
nbp_switchdev_allowed_egress(p, skb) &&
!br_skb_isolated(p, skb);

View File

@@ -0,0 +1,14 @@
Index: linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/net/bridge/br_forward.c
===================================================================
--- linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d.orig/net/bridge/br_forward.c
+++ linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/net/bridge/br_forward.c
@@ -24,8 +24,7 @@ static inline int should_deliver(const s
struct net_bridge_vlan_group *vg;
vg = nbp_vlan_group_rcu(p);
- return (((p->flags & BR_HAIRPIN_MODE) && !is_multicast_ether_addr(eth_hdr(skb)->h_dest))
- || (skb->dev != p->dev)) &&
+ return (((p->flags & BR_HAIRPIN_MODE)) || (skb->dev != p->dev)) &&
br_allowed_egress(vg, skb) && (p->state == BR_STATE_FORWARDING) &&
nbp_switchdev_allowed_egress(p, skb) &&
!br_skb_isolated(p, skb);

View File

@@ -0,0 +1,14 @@
Index: linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/net/bridge/br_forward.c
===================================================================
--- linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d.orig/net/bridge/br_forward.c
+++ linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/net/bridge/br_forward.c
@@ -24,8 +24,7 @@ static inline int should_deliver(const s
struct net_bridge_vlan_group *vg;
vg = nbp_vlan_group_rcu(p);
- return (((p->flags & BR_HAIRPIN_MODE) && !is_multicast_ether_addr(eth_hdr(skb)->h_dest))
- || (skb->dev != p->dev)) &&
+ return (((p->flags & BR_HAIRPIN_MODE)) || (skb->dev != p->dev)) &&
br_allowed_egress(vg, skb) && (p->state == BR_STATE_FORWARDING) &&
nbp_switchdev_allowed_egress(p, skb) &&
!br_skb_isolated(p, skb);