diff options
author | David S. Miller <davem@davemloft.net> | 2013-09-05 14:58:52 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-09-05 14:58:52 -0400 |
commit | 06c54055bebf919249aa1eb68312887c3cfe77b4 (patch) | |
tree | 223a49c09e5d26516ed0161b8a52d08454ae028e /net/bridge/br_mdb.c | |
parent | 1a5bbfc3d6b700178b75743a2ba1fd2e58a8f36f (diff) | |
parent | e2e5c4c07caf810d7849658dca42f598b3938e21 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
net/bridge/br_multicast.c
net/ipv6/sit.c
The conflicts were minor:
1) sit.c changes overlap with change to ip_tunnel_xmit() signature.
2) br_multicast.c had an overlap between computing max_delay using
msecs_to_jiffies and turning MLDV2_MRC() into an inline function
with a name using lowercase instead of uppercase letters.
3) stmmac had two overlapping changes, one which conditionally allocated
and hooked up a dma_cfg based upon the presence of the pbl OF property,
and another one handling store-and-forward DMA made. The latter of
which should not go into the new of_find_property() basic block.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_mdb.c')
-rw-r--r-- | net/bridge/br_mdb.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c index de818d95c476..85a09bb5ca51 100644 --- a/net/bridge/br_mdb.c +++ b/net/bridge/br_mdb.c | |||
@@ -416,16 +416,20 @@ static int __br_mdb_del(struct net_bridge *br, struct br_mdb_entry *entry) | |||
416 | if (!netif_running(br->dev) || br->multicast_disabled) | 416 | if (!netif_running(br->dev) || br->multicast_disabled) |
417 | return -EINVAL; | 417 | return -EINVAL; |
418 | 418 | ||
419 | if (timer_pending(&br->multicast_querier_timer)) | ||
420 | return -EBUSY; | ||
421 | |||
422 | ip.proto = entry->addr.proto; | 419 | ip.proto = entry->addr.proto; |
423 | if (ip.proto == htons(ETH_P_IP)) | 420 | if (ip.proto == htons(ETH_P_IP)) { |
421 | if (timer_pending(&br->ip4_querier.timer)) | ||
422 | return -EBUSY; | ||
423 | |||
424 | ip.u.ip4 = entry->addr.u.ip4; | 424 | ip.u.ip4 = entry->addr.u.ip4; |
425 | #if IS_ENABLED(CONFIG_IPV6) | 425 | #if IS_ENABLED(CONFIG_IPV6) |
426 | else | 426 | } else { |
427 | if (timer_pending(&br->ip6_querier.timer)) | ||
428 | return -EBUSY; | ||
429 | |||
427 | ip.u.ip6 = entry->addr.u.ip6; | 430 | ip.u.ip6 = entry->addr.u.ip6; |
428 | #endif | 431 | #endif |
432 | } | ||
429 | 433 | ||
430 | spin_lock_bh(&br->multicast_lock); | 434 | spin_lock_bh(&br->multicast_lock); |
431 | mdb = mlock_dereference(br->mdb, br); | 435 | mdb = mlock_dereference(br->mdb, br); |