From 653af8ffd3a743048e17c01261cee987935fe9a3 Mon Sep 17 00:00:00 2001
From: Daniel Danzberger <daniel@dd-wrt.com>
Date: Wed, 31 Jan 2018 14:46:08 +0100
Subject: [PATCH] kernel: fix forwarding locally generated packages in bridge
 isolation patch

Locally generated packets weren't forwarded to the isolated interfaces in a
bridge. Isolation should only prevent the flooding of incomming packets to
other interfaces in the bridge.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
 target/linux/generic/hack-4.14/641-bridge_port_isolate.patch | 2 +-
 target/linux/generic/hack-4.9/641-bridge_port_isolate.patch  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/target/linux/generic/hack-4.14/641-bridge_port_isolate.patch b/target/linux/generic/hack-4.14/641-bridge_port_isolate.patch
index ab9f4765776..538dbd16b09 100644
--- a/target/linux/generic/hack-4.14/641-bridge_port_isolate.patch
+++ b/target/linux/generic/hack-4.14/641-bridge_port_isolate.patch
@@ -29,7 +29,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  void br_forward(const struct net_bridge_port *to,
  		struct sk_buff *skb, bool local_rcv, bool local_orig)
  {
-+	if (to->flags & BR_ISOLATE_MODE)
++	if (to->flags & BR_ISOLATE_MODE && !local_orig)
 +		to = NULL;
 +
  	if (to && should_deliver(to, skb)) {
diff --git a/target/linux/generic/hack-4.9/641-bridge_port_isolate.patch b/target/linux/generic/hack-4.9/641-bridge_port_isolate.patch
index 56259329d2d..0d0b2c73ffe 100644
--- a/target/linux/generic/hack-4.9/641-bridge_port_isolate.patch
+++ b/target/linux/generic/hack-4.9/641-bridge_port_isolate.patch
@@ -29,7 +29,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  void br_forward(const struct net_bridge_port *to,
  		struct sk_buff *skb, bool local_rcv, bool local_orig)
  {
-+	if (to->flags & BR_ISOLATE_MODE)
++	if (to->flags & BR_ISOLATE_MODE && !local_orig)
 +		to = NULL;
 +
  	if (to && should_deliver(to, skb)) {