From 3d009b189ac71c6b4196c3960d1771a500ffba58 Mon Sep 17 00:00:00 2001 From: Paul Marks Date: Mon, 3 Dec 2012 10:26:54 +0000 Subject: [PATCH] --- yaml --- r: 341745 b: refs/heads/master c: a5a81f0b9025867efb999d14a8dfc1907c5a4c3b h: refs/heads/master i: 341743: 692f0b303a09e43d9456d7a442376064273ad609 v: v3 --- [refs] | 2 +- trunk/net/ipv6/route.c | 24 ++++++++++-------------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/[refs] b/[refs] index de02c67fe376..75a9509b95d5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5d097109257c03a71845729f8db6b5770c4bbedc +refs/heads/master: a5a81f0b9025867efb999d14a8dfc1907c5a4c3b diff --git a/trunk/net/ipv6/route.c b/trunk/net/ipv6/route.c index 8f124f575116..e229a3bc345d 100644 --- a/trunk/net/ipv6/route.c +++ b/trunk/net/ipv6/route.c @@ -544,35 +544,32 @@ static inline int rt6_check_dev(struct rt6_info *rt, int oif) return 0; } -static inline int rt6_check_neigh(struct rt6_info *rt) +static inline bool rt6_check_neigh(struct rt6_info *rt) { struct neighbour *neigh; - int m; + bool ret = false; neigh = rt->n; if (rt->rt6i_flags & RTF_NONEXTHOP || !(rt->rt6i_flags & RTF_GATEWAY)) - m = 1; + ret = true; else if (neigh) { read_lock_bh(&neigh->lock); if (neigh->nud_state & NUD_VALID) - m = 2; + ret = true; #ifdef CONFIG_IPV6_ROUTER_PREF - else if (neigh->nud_state & NUD_FAILED) - m = 0; + else if (!(neigh->nud_state & NUD_FAILED)) + ret = true; #endif - else - m = 1; read_unlock_bh(&neigh->lock); - } else - m = 0; - return m; + } + return ret; } static int rt6_score_route(struct rt6_info *rt, int oif, int strict) { - int m, n; + int m; m = rt6_check_dev(rt, oif); if (!m && (strict & RT6_LOOKUP_F_IFACE)) @@ -580,8 +577,7 @@ static int rt6_score_route(struct rt6_info *rt, int oif, #ifdef CONFIG_IPV6_ROUTER_PREF m |= IPV6_DECODE_PREF(IPV6_EXTRACT_PREF(rt->rt6i_flags)) << 2; #endif - n = rt6_check_neigh(rt); - if (!n && (strict & RT6_LOOKUP_F_REACHABLE)) + if (!rt6_check_neigh(rt) && (strict & RT6_LOOKUP_F_REACHABLE)) return -1; return m; }