Message ID | 1506354002.6617.10.camel@edumazet-glaptop3.roam.corp.google.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | [net] inetpeer: fix RCU lookup() again | expand |
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Mon, 25 Sep 2017 08:40:02 -0700 > From: Eric Dumazet <edumazet@google.com> > > My prior fix was not complete, as we were dereferencing a pointer > three times per node, not twice as I initially thought. > > Fixes: 4cc5b44b29a9 ("inetpeer: fix RCU lookup()") > Fixes: b145425f269a ("inetpeer: remove AVL implementation in favor of RB tree") > Signed-off-by: Eric Dumazet <edumazet@google.com> Applied.
diff --git a/net/ipv4/inetpeer.c b/net/ipv4/inetpeer.c index e7eb590c86ce2b33654c17c61619de74ff07bfd1..b20c8ac640811e1b4c5416134181dd77675db878 100644 --- a/net/ipv4/inetpeer.c +++ b/net/ipv4/inetpeer.c @@ -128,9 +128,9 @@ static struct inet_peer *lookup(const struct inetpeer_addr *daddr, break; } if (cmp == -1) - pp = &(*pp)->rb_left; + pp = &next->rb_left; else - pp = &(*pp)->rb_right; + pp = &next->rb_right; } *parent_p = parent; *pp_p = pp;