aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/fib_trie.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-04-10 11:46:00 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-04-10 11:46:00 -0400
commit460fbf82c0842cad3f3c744c4dcb81978b7829f3 (patch)
treed19b6d7d18491a8fa423f3ac9f2b422863b8c373 /net/ipv4/fib_trie.c
parent68491d5892defca59ad4f604cace2b1e30889c14 (diff)
parentb1a7ffcb7a047e99ab02424e651e0492f36095f7 (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (35 commits) [IPV6]: Deinline few large functions in inet6 code [IPV4] ip_fragment: Always compute hash with ipfrag_lock held. [NETFILTER]: Fix DNAT in LOCAL_OUT [X25]: Restore skb->dev setting in x25_type_trans(). [NET]: Fix hotplug race during device registration. [IPV6]: Unexport secure_ipv6_port_ephemeral [NETFILTER]: Fix build with CONFIG_NETFILTER=y/m on IA64 [NET]: More kzalloc conversions. [NET] kzalloc: use in alloc_netdev [PKT_SCHED] act_police: Rename methods. [TG3]: Speed up SRAM access (2nd version) [TG3]: Kill some less useful flags [NETFILTER]: H.323 helper: remove changelog [NETFILTER]: Convert conntrack/ipt_REJECT to new checksumming functions [NETFILTER]: Add address family specific checksum helpers [NETFILTER]: Introduce infrastructure for address family specific operations [NETFILTER]: Fix IP_NF_CONNTRACK_NETLINK dependency [NETFILTER]: H.323 helper: add parameter 'default_rrq_ttl' [NETFILTER]: H.323 helper: make get_h245_addr() static [NETFILTER]: H.323 helper: change EXPORT_SYMBOL to EXPORT_SYMBOL_GPL ...
Diffstat (limited to 'net/ipv4/fib_trie.c')
-rw-r--r--net/ipv4/fib_trie.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
index ccd3efc6a1..95a639f2e3 100644
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
@@ -50,7 +50,7 @@
50 * Patrick McHardy <kaber@trash.net> 50 * Patrick McHardy <kaber@trash.net>
51 */ 51 */
52 52
53#define VERSION "0.406" 53#define VERSION "0.407"
54 54
55#include <linux/config.h> 55#include <linux/config.h>
56#include <asm/uaccess.h> 56#include <asm/uaccess.h>
@@ -314,11 +314,6 @@ static void __leaf_free_rcu(struct rcu_head *head)
314 kfree(container_of(head, struct leaf, rcu)); 314 kfree(container_of(head, struct leaf, rcu));
315} 315}
316 316
317static inline void free_leaf(struct leaf *leaf)
318{
319 call_rcu(&leaf->rcu, __leaf_free_rcu);
320}
321
322static void __leaf_info_free_rcu(struct rcu_head *head) 317static void __leaf_info_free_rcu(struct rcu_head *head)
323{ 318{
324 kfree(container_of(head, struct leaf_info, rcu)); 319 kfree(container_of(head, struct leaf_info, rcu));
@@ -357,7 +352,12 @@ static void __tnode_free_rcu(struct rcu_head *head)
357 352
358static inline void tnode_free(struct tnode *tn) 353static inline void tnode_free(struct tnode *tn)
359{ 354{
360 call_rcu(&tn->rcu, __tnode_free_rcu); 355 if(IS_LEAF(tn)) {
356 struct leaf *l = (struct leaf *) tn;
357 call_rcu_bh(&l->rcu, __leaf_free_rcu);
358 }
359 else
360 call_rcu(&tn->rcu, __tnode_free_rcu);
361} 361}
362 362
363static struct leaf *leaf_new(void) 363static struct leaf *leaf_new(void)