Thread (31 messages) 31 messages, 3 authors, 2018-03-25

Re: [PATCH RFC v2 net-next 19/21] net/ipv6: separate handling of FIB entries from dst based routes

From: David Ahern <hidden>
Date: 2018-03-24 15:31:04

On 3/24/18 8:31 AM, Ido Schimmel wrote:
On Sun, Mar 18, 2018 at 08:36:20PM -0700, David Ahern wrote:
quoted
@@ -405,18 +383,9 @@ static void ip6_dst_destroy(struct dst_entry *dst)
 		rt->rt6i_idev = NULL;
 		in6_dev_put(idev);
 	}
-	bucket = rcu_dereference_protected(rt->rt6i_exception_bucket, 1);
-	if (bucket) {
-		rt->rt6i_exception_bucket = NULL;
-		kfree(bucket);
-	}
-
-	m = rt->fib6_metrics;
-	if (m != &dst_default_metrics && refcount_dec_and_test(&m->refcnt))
-		kfree(m);
You remove this...
quoted
 
 	rt->from = NULL;
-	dst_release(&from->dst);
+	fib6_info_release(from);
Yet fib6_info_release() doesn't take care of it (unlike the IPv4
equivalent), which means you're leaking the metrics.
quoted
 }
ok, I'll take a look. I thought I verified both paths (fib6_info and
dst) were freeing the metrics.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help