Signed-off-by: Thomas Graf <[EMAIL PROTECTED]>

Index: net-2.6.14/net/ipv6/ip6_fib.c
===================================================================
--- net-2.6.14.orig/net/ipv6/ip6_fib.c
+++ net-2.6.14/net/ipv6/ip6_fib.c
@@ -588,33 +588,35 @@ struct lookup_args {
        struct in6_addr *addr;          /* search key                   */
 };
 
-static struct fib6_node * fib6_lookup_1(struct fib6_node *root,
-                                       struct lookup_args *args)
+static inline struct fib6_node *fib6_descend_tree(struct fib6_node *root,
+                                                 struct lookup_args *args)
 {
-       struct fib6_node *fn;
-       int dir;
-
-       /*
-        *      Descend on a tree
-        */
-
-       fn = root;
+       struct fib6_node *fn = root;
 
        for (;;) {
                struct fib6_node *next;
 
-               dir = addr_bit_set(args->addr, fn->fn_bit);
-
-               next = dir ? fn->right : fn->left;
+               if (addr_bit_set(args->addr, fn->fn_bit))
+                       next = fn->right;
+               else
+                       next = fn->left;
 
-               if (next) {
-                       fn = next;
-                       continue;
-               }
+               if (!next)
+                       break;
 
-               break;
+               fn = next;
        }
 
+       return fn;
+}
+
+static struct fib6_node * fib6_lookup_1(struct fib6_node *root,
+                                       struct lookup_args *args)
+{
+       struct fib6_node *fn;
+
+       fn = fib6_descend_tree(root, args);
+
        while (!fib6_root_node(fn)) {
 #ifdef CONFIG_IPV6_SUBTREES
                if (fn->subtree) {

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to