]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Aug 2018 12:16:24 +0000 (14:16 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Aug 2018 12:16:24 +0000 (14:16 +0200)
added patches:
bridge-propagate-vlan-add-failure-to-user.patch

queue-4.4/bridge-propagate-vlan-add-failure-to-user.patch [new file with mode: 0644]
queue-4.4/series

diff --git a/queue-4.4/bridge-propagate-vlan-add-failure-to-user.patch b/queue-4.4/bridge-propagate-vlan-add-failure-to-user.patch
new file mode 100644 (file)
index 0000000..7927633
--- /dev/null
@@ -0,0 +1,50 @@
+From 08474cc1e6ea71237cab7e4a651a623c9dea1084 Mon Sep 17 00:00:00 2001
+From: Elad Raz <eladr@mellanox.com>
+Date: Wed, 6 Jan 2016 13:01:04 +0100
+Subject: bridge: Propagate vlan add failure to user
+
+From: Elad Raz <eladr@mellanox.com>
+
+commit 08474cc1e6ea71237cab7e4a651a623c9dea1084 upstream.
+
+Disallow adding interfaces to a bridge when vlan filtering operation
+failed. Send the failure code to the user.
+
+Signed-off-by: Elad Raz <eladr@mellanox.com>
+Signed-off-by: Jiri Pirko <jiri@mellanox.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: SZ Lin (林上智) <sz.lin@moxa.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/bridge/br_if.c |   11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+--- a/net/bridge/br_if.c
++++ b/net/bridge/br_if.c
+@@ -511,8 +511,11 @@ int br_add_if(struct net_bridge *br, str
+       if (br_fdb_insert(br, p, dev->dev_addr, 0))
+               netdev_err(dev, "failed insert local address bridge forwarding table\n");
+-      if (nbp_vlan_init(p))
++      err = nbp_vlan_init(p);
++      if (err) {
+               netdev_err(dev, "failed to initialize vlan filtering on this port\n");
++              goto err6;
++      }
+       spin_lock_bh(&br->lock);
+       changed_addr = br_stp_recalculate_bridge_id(br);
+@@ -533,6 +536,12 @@ int br_add_if(struct net_bridge *br, str
+       return 0;
++err6:
++      list_del_rcu(&p->list);
++      br_fdb_delete_by_port(br, p, 0, 1);
++      nbp_update_port_count(br);
++      netdev_upper_dev_unlink(dev, br->dev);
++
+ err5:
+       dev->priv_flags &= ~IFF_BRIDGE_PORT;
+       netdev_rx_handler_unregister(dev);
index b4a49c77d112a17715441807665c77eb851fd805..8b3c1382d524b64f184204b2db3754ba5dca30c9 100644 (file)
@@ -71,3 +71,4 @@ parisc-remove-ordered-stores-from-syscall.s.patch
 xfrm_user-prevent-leaking-2-bytes-of-kernel-memory.patch
 netfilter-conntrack-dccp-treat-sync-syncack-as-invalid-if-no-prior-state.patch
 packet-refine-ring-v3-block-size-test-to-hold-one-frame.patch
+bridge-propagate-vlan-add-failure-to-user.patch