diff options
author | David S. Miller <davem@davemloft.net> | 2010-06-23 18:26:27 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-06-23 18:26:27 -0700 |
commit | 8244132ea89cdd128003f5b9980fab50d8d36d72 (patch) | |
tree | c6cf9327cf9b6bab5bb830bbf389a514f4d7bb95 /net/bridge | |
parent | 7b2ff18ee7b0ec4bc3162f821e221781aaca48bd (diff) | |
parent | 38000a94a902e94ca8b5498f7871c6316de8957a (diff) | |
download | lwn-8244132ea89cdd128003f5b9980fab50d8d36d72.tar.gz lwn-8244132ea89cdd128003f5b9980fab50d8d36d72.zip |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
net/ipv4/ip_output.c
Diffstat (limited to 'net/bridge')
-rw-r--r-- | net/bridge/br_fdb.c | 6 | ||||
-rw-r--r-- | net/bridge/br_forward.c | 4 |
2 files changed, 4 insertions, 6 deletions
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c index 6818e609b2c0..a744296fc675 100644 --- a/net/bridge/br_fdb.c +++ b/net/bridge/br_fdb.c @@ -128,7 +128,7 @@ void br_fdb_cleanup(unsigned long _data) { struct net_bridge *br = (struct net_bridge *)_data; unsigned long delay = hold_time(br); - unsigned long next_timer = jiffies + br->forward_delay; + unsigned long next_timer = jiffies + br->ageing_time; int i; spin_lock_bh(&br->hash_lock); @@ -149,9 +149,7 @@ void br_fdb_cleanup(unsigned long _data) } spin_unlock_bh(&br->hash_lock); - /* Add HZ/4 to ensure we round the jiffies upwards to be after the next - * timer, otherwise we might round down and will have no-op run. */ - mod_timer(&br->gc_timer, round_jiffies(next_timer + HZ/4)); + mod_timer(&br->gc_timer, round_jiffies_up(next_timer)); } /* Completely flush all dynamic entries in forwarding database.*/ diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c index 6e97711fd2c5..cbfe87f0f34a 100644 --- a/net/bridge/br_forward.c +++ b/net/bridge/br_forward.c @@ -130,10 +130,10 @@ static int deliver_clone(const struct net_bridge_port *prev, void (*__packet_hook)(const struct net_bridge_port *p, struct sk_buff *skb)) { + struct net_device *dev = BR_INPUT_SKB_CB(skb)->brdev; + skb = skb_clone(skb, GFP_ATOMIC); if (!skb) { - struct net_device *dev = BR_INPUT_SKB_CB(skb)->brdev; - dev->stats.tx_dropped++; return -ENOMEM; } |