|
@@ -693,9 +693,17 @@ static int br_port_slave_changelink(struct net_device *brdev,
|
|
struct nlattr *tb[],
|
|
struct nlattr *tb[],
|
|
struct nlattr *data[])
|
|
struct nlattr *data[])
|
|
{
|
|
{
|
|
|
|
+ struct net_bridge *br = netdev_priv(brdev);
|
|
|
|
+ int ret;
|
|
|
|
+
|
|
if (!data)
|
|
if (!data)
|
|
return 0;
|
|
return 0;
|
|
- return br_setport(br_port_get_rtnl(dev), data);
|
|
|
|
|
|
+
|
|
|
|
+ spin_lock_bh(&br->lock);
|
|
|
|
+ ret = br_setport(br_port_get_rtnl(dev), data);
|
|
|
|
+ spin_unlock_bh(&br->lock);
|
|
|
|
+
|
|
|
|
+ return ret;
|
|
}
|
|
}
|
|
|
|
|
|
static int br_port_fill_slave_info(struct sk_buff *skb,
|
|
static int br_port_fill_slave_info(struct sk_buff *skb,
|