diff options
author | Johannes Berg <johannes.berg@intel.com> | 2017-10-06 11:46:32 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2017-10-06 11:46:55 +0200 |
commit | 753d179ad001b25425beb977d00f2531540e7d42 (patch) | |
tree | de61b9e3c86b71e9a654cea002b188f90b1f8ef6 /net/ipv4/inetpeer.c | |
parent | 503c1fb98ba3859c13863957c7c65c92371a9e50 (diff) | |
parent | cc71b7b071192ac1c288e272fdc3f3877eb96663 (diff) | |
download | talos-op-linux-753d179ad001b25425beb977d00f2531540e7d42.tar.gz talos-op-linux-753d179ad001b25425beb977d00f2531540e7d42.zip |
Merge remote-tracking branch 'net-next/master' into mac80211-next
Merging this brings in the timer_setup() change, which allows
me to apply Kees's mac80211 changes for it.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/ipv4/inetpeer.c')
-rw-r--r-- | net/ipv4/inetpeer.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/net/ipv4/inetpeer.c b/net/ipv4/inetpeer.c index e7eb590c86ce..914d56928578 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; @@ -284,14 +284,17 @@ EXPORT_SYMBOL(inet_peer_xrlim_allow); void inetpeer_invalidate_tree(struct inet_peer_base *base) { - struct inet_peer *p, *n; + struct rb_node *p = rb_first(&base->rb_root); - rbtree_postorder_for_each_entry_safe(p, n, &base->rb_root, rb_node) { - inet_putpeer(p); + while (p) { + struct inet_peer *peer = rb_entry(p, struct inet_peer, rb_node); + + p = rb_next(p); + rb_erase(&peer->rb_node, &base->rb_root); + inet_putpeer(peer); cond_resched(); } - base->rb_root = RB_ROOT; base->total = 0; } EXPORT_SYMBOL(inetpeer_invalidate_tree); |