aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/fib_trie.c
diff options
context:
space:
mode:
authorRobert Olsson <robert.olsson@its.uu.se>2006-03-20 21:34:12 -0800
committerDavid S. Miller <davem@davemloft.net>2006-03-20 21:34:12 -0800
commit5ddf0eb2bfd613e941dd8748870c71da2e5ad409 (patch)
tree54591328f3ffcaef3b91be801be3e621b99e8463 /net/ipv4/fib_trie.c
parent[TG3]: Fix tg3_get_ringparam() (diff)
downloadlinux-dev-5ddf0eb2bfd613e941dd8748870c71da2e5ad409.tar.xz
linux-dev-5ddf0eb2bfd613e941dd8748870c71da2e5ad409.zip
[IPV4]: fib_trie initialzation fix
In some kernel configs /proc functions seems to be accessed before the trie is initialized. The patch below checks for this. Signed-off-by: Robert Olsson <robert.olsson@its.uu.se> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/fib_trie.c')
-rw-r--r--net/ipv4/fib_trie.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
index e320b32373e5..8aa31fe514ee 100644
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
@@ -50,7 +50,7 @@
* Patrick McHardy <kaber@trash.net>
*/
-#define VERSION "0.404"
+#define VERSION "0.405"
#include <linux/config.h>
#include <asm/uaccess.h>
@@ -2040,7 +2040,15 @@ rescan:
static struct node *fib_trie_get_first(struct fib_trie_iter *iter,
struct trie *t)
{
- struct node *n = rcu_dereference(t->trie);
+ struct node *n ;
+
+ if(!t)
+ return NULL;
+
+ n = rcu_dereference(t->trie);
+
+ if(!iter)
+ return NULL;
if (n && IS_TNODE(n)) {
iter->tnode = (struct tnode *) n;