Patch "bridge: netlink: call br_changelink() during br_dev_newlink()" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
bridge: netlink: call br_changelink() during br_dev_newlink()
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
bridge-netlink-call-br_changelink-during-br_dev_newlink.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Wed Feb 1 08:50:24 CET 2017
From: Ivan Vecera <[email protected]>
Date: Fri, 20 Jan 2017 18:12:17 +0100
Subject: bridge: netlink: call br_changelink() during br_dev_newlink()
From: Ivan Vecera <[email protected]>
[ Upstream commit b6677449dff674cf5b81429b11d5c7f358852ef9 ]
Any bridge options specified during link creation (e.g. ip link add) are ignored as br_dev_newlink() does not process them. Use br_changelink() to do it.
--- net/bridge/br_netlink.c | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-)
net/bridge/br_netlink.c +19 -14
@@ -781,20 +781,6 @@ static int br_validate(struct nlattr *tbreturn 0 ; } -static int br_dev_newlink (struct net *src_net,struct net_device *dev, -struct nlattr *tb[],struct nlattr *data[]) -{ -struct net_bridge *br =netdev_priv (dev); - -if (tb[IFLA_ADDRESS ]) { -spin_lock_bh (&br->lock); -br_stp_change_bridge_id (br,nla_data (tb[IFLA_ADDRESS ])); -spin_unlock_bh (&br->lock); - } - -return register_netdevice (dev); -} - static int br_port_slave_changelink(struct net_device *brdev, struct net_device *dev, struct nlattr *tb[],
@@ -1093,6 +1079,25 @@ static int br_changelink(struct net_devireturn 0 ; } +static int br_dev_newlink (struct net *src_net,struct net_device *dev, +struct nlattr *tb[],struct nlattr *data[]) +{ +struct net_bridge *br =netdev_priv (dev); +int err; + +if (tb[IFLA_ADDRESS ]) { +spin_lock_bh (&br->lock); +br_stp_change_bridge_id (br,nla_data (tb[IFLA_ADDRESS ])); +spin_unlock_bh (&br->lock); + } + + err =br_changelink (dev, tb, data); +if (err) +return err; + +return register_netdevice (dev); +} +static size_t br_get_size (const struct net_device *brdev) { return nla_total_size(sizeof(u32)) + /* IFLA_BR_FORWARD_DELAY */
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/bridge-netlink-call-br_changelink-during-br_dev_newlink.patch