Explorar o código

inetpeer: fix RCU lookup() again

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>
Signed-off-by: David S. Miller <davem@davemloft.net>
Eric Dumazet %!s(int64=8) %!d(string=hai) anos
pai
achega
35f493b87e
Modificáronse 1 ficheiros con 2 adicións e 2 borrados
  1. 2 2
      net/ipv4/inetpeer.c

+ 2 - 2
net/ipv4/inetpeer.c

@@ -128,9 +128,9 @@ static struct inet_peer *lookup(const struct inetpeer_addr *daddr,
 			break;
 			break;
 		}
 		}
 		if (cmp == -1)
 		if (cmp == -1)
-			pp = &(*pp)->rb_left;
+			pp = &next->rb_left;
 		else
 		else
-			pp = &(*pp)->rb_right;
+			pp = &next->rb_right;
 	}
 	}
 	*parent_p = parent;
 	*parent_p = parent;
 	*pp_p = pp;
 	*pp_p = pp;