From 377abc05e19f84c60a9f8513f2cc5972f7417cbd Mon Sep 17 00:00:00 2001 From: YOSHIFUJI Hideaki Date: Sat, 19 Jan 2008 00:35:16 -0800 Subject: [PATCH] --- yaml --- r: 75613 b: refs/heads/master c: 398bcbebb6f721ac308df1e3d658c0029bb74503 h: refs/heads/master i: 75611: 720d8d09684deee9a916c35b15d6536faeac0bf6 v: v3 --- [refs] | 2 +- trunk/net/ipv6/route.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index ca72fa947d81..7776a62a335d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8d3f099abe25c21670cb5728178a1f286952782d +refs/heads/master: 398bcbebb6f721ac308df1e3d658c0029bb74503 diff --git a/trunk/net/ipv6/route.c b/trunk/net/ipv6/route.c index 6ecb5e6fae2e..20083e0d3995 100644 --- a/trunk/net/ipv6/route.c +++ b/trunk/net/ipv6/route.c @@ -329,7 +329,7 @@ static inline int rt6_check_dev(struct rt6_info *rt, int oif) static inline int rt6_check_neigh(struct rt6_info *rt) { struct neighbour *neigh = rt->rt6i_nexthop; - int m = 0; + int m; if (rt->rt6i_flags & RTF_NONEXTHOP || !(rt->rt6i_flags & RTF_GATEWAY)) m = 1; @@ -337,10 +337,15 @@ static inline int rt6_check_neigh(struct rt6_info *rt) read_lock_bh(&neigh->lock); if (neigh->nud_state & NUD_VALID) m = 2; - else if (!(neigh->nud_state & NUD_FAILED)) +#ifdef CONFIG_IPV6_ROUTER_PREF + else if (neigh->nud_state & NUD_FAILED) + m = 0; +#endif + else m = 1; read_unlock_bh(&neigh->lock); - } + } else + m = 0; return m; }