Hi all, Today's linux-next merge of the net-next tree got a conflict in: net/bridge/br_mdb.c between commit: f1158b74e54f ("bridge: mdb: zero out the local br_ip variable before use") from Linus' tree and commit: 74fe61f17e99 ("bridge: mdb: add vlan support for user entries") from the net-next tree. I fixed it up (see below) and can carry the fix as necessary (no action is required). -- Cheers, Stephen Rothwell sfr@canb.auug.org.au diff --cc net/bridge/br_mdb.c index c11cf2611db0,a8d0e93d43f2..000000000000 --- a/net/bridge/br_mdb.c +++ b/net/bridge/br_mdb.c @@@ -348,10 -352,8 +353,10 @@@ static int br_mdb_add_group(struct net_ 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); + br_mdb_notify(br->dev, port, group, RTM_NEWMDB, state); return 0; } @@@ -374,7 -376,7 +379,8 @@@ static int __br_mdb_add(struct net *net 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)) ip.u.ip4 = entry->addr.u.ip4; @@@ -421,14 -423,21 +427,15 @@@ static int __br_mdb_del(struct net_brid 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);