diff options
Diffstat (limited to 'net/ipv6/route.c')
-rw-r--r-- | net/ipv6/route.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index bd4cf175ff10..fd626d420cd1 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c | |||
@@ -1332,17 +1332,10 @@ restart: | |||
1332 | break; | 1332 | break; |
1333 | } | 1333 | } |
1334 | 1334 | ||
1335 | if (!rt) { | 1335 | if (!rt) |
1336 | if (rt6_need_strict(&fl->fl6_dst)) { | ||
1337 | while ((fn = fn->parent) != NULL) { | ||
1338 | if (fn->fn_flags & RTN_ROOT) | ||
1339 | break; | ||
1340 | if (fn->fn_flags & RTN_RTINFO) | ||
1341 | goto restart; | ||
1342 | } | ||
1343 | } | ||
1344 | rt = &ip6_null_entry; | 1336 | rt = &ip6_null_entry; |
1345 | } | 1337 | BACKTRACK(&fl->fl6_src); |
1338 | out: | ||
1346 | dst_hold(&rt->u.dst); | 1339 | dst_hold(&rt->u.dst); |
1347 | 1340 | ||
1348 | read_unlock_bh(&table->tb6_lock); | 1341 | read_unlock_bh(&table->tb6_lock); |