Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: net/bridge/br_mdb.c Minor conflict in br_mdb.c, in 'net' we added a memset of the on-stack 'ip' variable whereas in 'net-next' we assign a new member 'vid'. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -328,6 +328,7 @@ static int br_mdb_add_group(struct net_bridge *br, struct net_bridge_port *port,
|
||||
struct net_bridge_port_group *p;
|
||||
struct net_bridge_port_group __rcu **pp;
|
||||
struct net_bridge_mdb_htable *mdb;
|
||||
unsigned long now = jiffies;
|
||||
int err;
|
||||
|
||||
mdb = mlock_dereference(br->mdb, br);
|
||||
@@ -352,6 +353,8 @@ static int br_mdb_add_group(struct net_bridge *br, struct net_bridge_port *port,
|
||||
if (unlikely(!p))
|
||||
return -ENOMEM;
|
||||
rcu_assign_pointer(*pp, p);
|
||||
if (state == MDB_TEMPORARY)
|
||||
mod_timer(&p->timer, now + br->multicast_membership_interval);
|
||||
|
||||
br_mdb_notify(br->dev, port, group, RTM_NEWMDB, state);
|
||||
return 0;
|
||||
@@ -376,6 +379,7 @@ static int __br_mdb_add(struct net *net, struct net_bridge *br,
|
||||
if (!p || p->br != br || p->state == BR_STATE_DISABLED)
|
||||
return -EINVAL;
|
||||
|
||||
memset(&ip, 0, sizeof(ip));
|
||||
ip.vid = entry->vid;
|
||||
ip.proto = entry->addr.proto;
|
||||
if (ip.proto == htons(ETH_P_IP))
|
||||
@@ -423,21 +427,15 @@ static int __br_mdb_del(struct net_bridge *br, struct br_mdb_entry *entry)
|
||||
if (!netif_running(br->dev) || br->multicast_disabled)
|
||||
return -EINVAL;
|
||||
|
||||
memset(&ip, 0, sizeof(ip));
|
||||
ip.vid = entry->vid;
|
||||
ip.proto = entry->addr.proto;
|
||||
if (ip.proto == htons(ETH_P_IP)) {
|
||||
if (timer_pending(&br->ip4_other_query.timer))
|
||||
return -EBUSY;
|
||||
|
||||
if (ip.proto == htons(ETH_P_IP))
|
||||
ip.u.ip4 = entry->addr.u.ip4;
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
} else {
|
||||
if (timer_pending(&br->ip6_other_query.timer))
|
||||
return -EBUSY;
|
||||
|
||||
else
|
||||
ip.u.ip6 = entry->addr.u.ip6;
|
||||
#endif
|
||||
}
|
||||
|
||||
spin_lock_bh(&br->multicast_lock);
|
||||
mdb = mlock_dereference(br->mdb, br);
|
||||
|
Reference in New Issue
Block a user