From b4a96294ad4bf0c193033ca0929e6efbb955c32a Mon Sep 17 00:00:00 2001 From: "Liam R. Howlett" Date: Tue, 8 Sep 2020 13:59:56 -0400 Subject: [PATCH] maple_tree: Change mas_get_slot to only rcu_dereference when necessary Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 578772401d33..5066e5460471 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]; } /* -- 2.50.1