diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index c953466b7afdbde3c77e6494c3f24a46908d9097..5132821e89aa3aa8fb9622ed60990c547bb043c2 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -330,6 +330,8 @@ static int inline 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))
+			m = 1;
 		read_unlock_bh(&neigh->lock);
 	}
 	return m;