Commit 8f2771f2 authored by David S. Miller's avatar David S. Miller

ipv6: Remove route peer binding assertions.

They are bogus.  The basic idea is that I wanted to make sure
that prefixed routes never bind to peers.

The test I used was whether RTF_CACHE was set.

But first of all, the RTF_CACHE flag is set at different spots
depending upon which ip6_rt_copy() caller you're talking about.

I've validated all of the code paths, and even in the future
where we bind peers more aggressively (for route metric COW'ing)
we never bind to prefix'd routes, only fully specified ones.
This even applies when addrconf or icmp6 routes are allocated.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c2aa3665
...@@ -194,7 +194,6 @@ static void ip6_dst_destroy(struct dst_entry *dst) ...@@ -194,7 +194,6 @@ static void ip6_dst_destroy(struct dst_entry *dst)
in6_dev_put(idev); in6_dev_put(idev);
} }
if (peer) { if (peer) {
BUG_ON(!(rt->rt6i_flags & RTF_CACHE));
rt->rt6i_peer = NULL; rt->rt6i_peer = NULL;
inet_putpeer(peer); inet_putpeer(peer);
} }
...@@ -204,9 +203,6 @@ void rt6_bind_peer(struct rt6_info *rt, int create) ...@@ -204,9 +203,6 @@ void rt6_bind_peer(struct rt6_info *rt, int create)
{ {
struct inet_peer *peer; struct inet_peer *peer;
if (WARN_ON(!(rt->rt6i_flags & RTF_CACHE)))
return;
peer = inet_getpeer_v6(&rt->rt6i_dst.addr, create); peer = inet_getpeer_v6(&rt->rt6i_dst.addr, create);
if (peer && cmpxchg(&rt->rt6i_peer, NULL, peer) != NULL) if (peer && cmpxchg(&rt->rt6i_peer, NULL, peer) != NULL)
inet_putpeer(peer); inet_putpeer(peer);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment