diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h index f9cde44f93b44be4e104812f056b813d59e603c6..7be4f4e3a0f2241b27ebb72aa69d0582a93a9fff 100644 --- a/include/net/ip6_fib.h +++ b/include/net/ip6_fib.h @@ -50,9 +50,9 @@ struct fib6_node struct fib6_node *parent; struct fib6_node *left; struct fib6_node *right; - +#ifdef CONFIG_IPV6_SUBTREES struct fib6_node *subtree; - +#endif struct rt6_info *leaf; __u16 fn_bit; /* bit key */ diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 9f80518aacbdf5069a10484c8235aec80ac0cbe6..8c3d56871b50aa2f7252e4fb7b58b9796c55c428 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -494,7 +494,7 @@ do { \ goto out; \ pn = fn->parent; \ if (FIB6_SUBTREE(pn) && FIB6_SUBTREE(pn) != fn) \ - fn = fib6_lookup(pn->subtree, NULL, saddr); \ + fn = fib6_lookup(FIB6_SUBTREE(pn), NULL, saddr); \ else \ fn = pn; \ if (fn->fn_flags & RTN_RTINFO) \