diff options
author | David S. Miller <davem@davemloft.net> | 2010-06-23 21:26:27 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-06-23 21:26:27 -0400 |
commit | 8244132ea89cdd128003f5b9980fab50d8d36d72 (patch) | |
tree | c6cf9327cf9b6bab5bb830bbf389a514f4d7bb95 /net/bridge | |
parent | 7b2ff18ee7b0ec4bc3162f821e221781aaca48bd (diff) | |
parent | 38000a94a902e94ca8b5498f7871c6316de8957a (diff) |
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) | |||
128 | { | 128 | { |
129 | struct net_bridge *br = (struct net_bridge *)_data; | 129 | struct net_bridge *br = (struct net_bridge *)_data; |
130 | unsigned long delay = hold_time(br); | 130 | unsigned long delay = hold_time(br); |
131 | unsigned long next_timer = jiffies + br->forward_delay; | 131 | unsigned long next_timer = jiffies + br->ageing_time; |
132 | int i; | 132 | int i; |
133 | 133 | ||
134 | spin_lock_bh(&br->hash_lock); | 134 | spin_lock_bh(&br->hash_lock); |
@@ -149,9 +149,7 @@ void br_fdb_cleanup(unsigned long _data) | |||
149 | } | 149 | } |
150 | spin_unlock_bh(&br->hash_lock); | 150 | spin_unlock_bh(&br->hash_lock); |
151 | 151 | ||
152 | /* Add HZ/4 to ensure we round the jiffies upwards to be after the next | 152 | mod_timer(&br->gc_timer, round_jiffies_up(next_timer)); |
153 | * timer, otherwise we might round down and will have no-op run. */ | ||
154 | mod_timer(&br->gc_timer, round_jiffies(next_timer + HZ/4)); | ||
155 | } | 153 | } |
156 | 154 | ||
157 | /* Completely flush all dynamic entries in forwarding database.*/ | 155 | /* 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, | |||
130 | void (*__packet_hook)(const struct net_bridge_port *p, | 130 | void (*__packet_hook)(const struct net_bridge_port *p, |
131 | struct sk_buff *skb)) | 131 | struct sk_buff *skb)) |
132 | { | 132 | { |
133 | struct net_device *dev = BR_INPUT_SKB_CB(skb)->brdev; | ||
134 | |||
133 | skb = skb_clone(skb, GFP_ATOMIC); | 135 | skb = skb_clone(skb, GFP_ATOMIC); |
134 | if (!skb) { | 136 | if (!skb) { |
135 | struct net_device *dev = BR_INPUT_SKB_CB(skb)->brdev; | ||
136 | |||
137 | dev->stats.tx_dropped++; | 137 | dev->stats.tx_dropped++; |
138 | return -ENOMEM; | 138 | return -ENOMEM; |
139 | } | 139 | } |