Thread (5 messages) 5 messages, 2 authors, 2018-11-01

Re: [PATCH v1] net: ipv6: fix racey clock check in route cache aging logic

flat view

From: Brendan Higgins <hidden>
Date: 2018-10-25 21:47:05
Also in: lkml

On Thu, Oct 25, 2018 at 2:40 PM Eric Dumazet [off-list ref] wrote:
On 10/25/2018 02:13 PM, Brendan Higgins wrote:
<snip>
quoted
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 2a7423c394560..54d28b91fd840 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -1734,7 +1734,7 @@ static void rt6_age_examine_exception(struct rt6_exception_bucket *bucket,
                      rt6_remove_exception(bucket, rt6_ex);
                      return;
              }
-     } else if (time_after(jiffies, rt->dst.expires)) {
+     } else if (time_after(now, rt->dst.expires)) {
              RT6_TRACE("purging expired route %p\n", rt);
              rt6_remove_exception(bucket, rt6_ex);
              return;

I do not think there is a bug here ?

As a matter of fact, using the latest value of jiffies is probably better,
since in some cases the @now variable could be quite in the past.
Then why do we pass the `now` parameter in at all and use it at all,
like here: https://elixir.bootlin.com/linux/latest/source/net/ipv6/route.c#L1764
?

I am still skeptical that we should check jiffies in each check, but
we should at least be consistent.

Cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help