diff options
author | Felix Fietkau <nbd@nbd.name> | 2017-01-10 18:15:39 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2017-01-11 13:09:33 +0100 |
commit | b7bee2858b582164d55c32be44df3fcb42cafc78 (patch) | |
tree | d908808a56549ec42e1b269421fd1be2dbd57f45 /target/linux/generic/patches-4.1/642-bridge_port_isolate.patch | |
parent | b1dbe6028eed57a89ae94c5e61e0b1e65f3aeb80 (diff) | |
download | upstream-b7bee2858b582164d55c32be44df3fcb42cafc78.tar.gz upstream-b7bee2858b582164d55c32be44df3fcb42cafc78.tar.bz2 upstream-b7bee2858b582164d55c32be44df3fcb42cafc78.zip |
kernel: remove linux 4.1 support
The only target still referencing it is omap24xx, and it is marked as
broken.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'target/linux/generic/patches-4.1/642-bridge_port_isolate.patch')
-rw-r--r-- | target/linux/generic/patches-4.1/642-bridge_port_isolate.patch | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/target/linux/generic/patches-4.1/642-bridge_port_isolate.patch b/target/linux/generic/patches-4.1/642-bridge_port_isolate.patch deleted file mode 100644 index d7ae041b25..0000000000 --- a/target/linux/generic/patches-4.1/642-bridge_port_isolate.patch +++ /dev/null @@ -1,107 +0,0 @@ -From: Felix Fietkau <nbd@nbd.name> -Subject: [PATCH] bridge: port isolate - -Isolating individual bridge ports ---- ---- a/include/linux/if_bridge.h -+++ b/include/linux/if_bridge.h -@@ -45,6 +45,7 @@ struct br_ip_list { - #define BR_PROXYARP BIT(8) - #define BR_LEARNING_SYNC BIT(9) - #define BR_PROXYARP_WIFI BIT(10) -+#define BR_ISOLATE_MODE BIT(11) - - extern void brioctl_set(int (*ioctl_hook)(struct net *, unsigned int, void __user *)); - ---- a/net/bridge/br_sysfs_if.c -+++ b/net/bridge/br_sysfs_if.c -@@ -173,6 +173,22 @@ BRPORT_ATTR_FLAG(unicast_flood, BR_FLOOD - BRPORT_ATTR_FLAG(proxyarp, BR_PROXYARP); - BRPORT_ATTR_FLAG(proxyarp_wifi, BR_PROXYARP_WIFI); - -+static ssize_t show_isolate_mode(struct net_bridge_port *p, char *buf) -+{ -+ int isolate_mode = (p->flags & BR_ISOLATE_MODE) ? 1 : 0; -+ return sprintf(buf, "%d\n", isolate_mode); -+} -+static ssize_t store_isolate_mode(struct net_bridge_port *p, unsigned long v) -+{ -+ if (v) -+ p->flags |= BR_ISOLATE_MODE; -+ else -+ p->flags &= ~BR_ISOLATE_MODE; -+ return 0; -+} -+static BRPORT_ATTR(isolate_mode, S_IRUGO | S_IWUSR, -+ show_isolate_mode, store_isolate_mode); -+ - #ifdef CONFIG_BRIDGE_IGMP_SNOOPING - static ssize_t show_multicast_router(struct net_bridge_port *p, char *buf) - { -@@ -217,6 +233,7 @@ static const struct brport_attribute *br - #endif - &brport_attr_proxyarp, - &brport_attr_proxyarp_wifi, -+ &brport_attr_isolate_mode, - NULL - }; - ---- a/net/bridge/br_input.c -+++ b/net/bridge/br_input.c -@@ -185,8 +185,8 @@ int br_handle_frame_finish(struct sock * - - unicast = false; - br->dev->stats.multicast++; -- } else if ((dst = __br_fdb_get(br, dest, vid)) && -- dst->is_local) { -+ } else if ((p->flags & BR_ISOLATE_MODE) || -+ ((dst = __br_fdb_get(br, dest, vid)) && dst->is_local)) { - skb2 = skb; - /* Do not forward the packet since it's local. */ - skb = NULL; ---- a/net/bridge/br_forward.c -+++ b/net/bridge/br_forward.c -@@ -119,7 +119,7 @@ EXPORT_SYMBOL_GPL(br_deliver); - /* called with rcu_read_lock */ - void br_forward(const struct net_bridge_port *to, struct sk_buff *skb, struct sk_buff *skb0) - { -- if (should_deliver(to, skb)) { -+ if (should_deliver(to, skb) && !(to->flags & BR_ISOLATE_MODE)) { - if (skb0) - deliver_clone(to, skb, __br_forward); - else -@@ -175,7 +175,7 @@ static void br_flood(struct net_bridge * - struct sk_buff *skb0, - void (*__packet_hook)(const struct net_bridge_port *p, - struct sk_buff *skb), -- bool unicast) -+ bool unicast, bool forward) - { - struct net_bridge_port *p; - struct net_bridge_port *prev; -@@ -183,6 +183,8 @@ static void br_flood(struct net_bridge * - prev = NULL; - - list_for_each_entry_rcu(p, &br->port_list, list) { -+ if (forward && (p->flags & BR_ISOLATE_MODE)) -+ continue; - /* Do not flood unicast traffic to ports that turn it off */ - if (unicast && !(p->flags & BR_FLOOD)) - continue; -@@ -217,14 +219,14 @@ out: - /* called with rcu_read_lock */ - void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb, bool unicast) - { -- br_flood(br, skb, NULL, __br_deliver, unicast); -+ br_flood(br, skb, NULL, __br_deliver, unicast, false); - } - - /* called under bridge lock */ - void br_flood_forward(struct net_bridge *br, struct sk_buff *skb, - struct sk_buff *skb2, bool unicast) - { -- br_flood(br, skb, skb2, __br_forward, unicast); -+ br_flood(br, skb, skb2, __br_forward, unicast, true); - } - - #ifdef CONFIG_BRIDGE_IGMP_SNOOPING |