From: Liam R. Howlett Date: Tue, 8 Sep 2020 17:59:56 +0000 (-0400) Subject: maple_tree: Change mas_get_slot to only rcu_dereference when necessary X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=10f354cb437a8280cf697aa948d62269d7b88c94;p=users%2Fjedix%2Flinux-maple.git maple_tree: Change mas_get_slot to only rcu_dereference when necessary Signed-off-by: Liam R. Howlett --- diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 578772401d338..5066e54604710 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -588,8 +588,11 @@ static inline struct maple_enode *mas_get_slot(struct ma_state *mas, { void **slots = ma_get_slots(mte_to_node(mas->node), mte_node_type(mas->node)); - return rcu_dereference_check(slots[offset], - lockdep_is_held(mas->tree->ma_lock)); + if (mt_in_rcu(mas->tree)) + return rcu_dereference_check(slots[offset], + lockdep_is_held(mas->tree->ma_lock)); + else + return slots[offset]; } /*