From: Liam R. Howlett Date: Thu, 25 Sep 2025 02:38:21 +0000 (-0400) Subject: maple_tree: mas_wr_node_store() general cleanup X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=e16092bf7865c3fc1717497419ec13df1d732c06;p=users%2Fjedix%2Flinux-maple.git maple_tree: mas_wr_node_store() general cleanup Set variables after declaration, order declaration by length of lines. Remove the height variable as it is seldom used. Don't memcpy size 0. change type of slots size to void __rcu * Signed-off-by: Liam R. Howlett --- diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 741ec1e020b5..4c8fe5d3889f 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3454,18 +3454,22 @@ static void mas_wr_spanning_store(struct ma_wr_state *wr_mas) */ static inline void mas_wr_node_store(struct ma_wr_state *wr_mas) { - struct ma_state *mas = wr_mas->mas; - void __rcu **dst_slots; - unsigned long *dst_pivots; - unsigned char dst_offset, offset_end = wr_mas->offset_end; + unsigned char dst_offset, offset_end; + unsigned char copy_size, node_pivots; struct maple_node reuse, *newnode; - unsigned char copy_size, node_pivots = mt_pivots[wr_mas->type]; - bool in_rcu = mt_in_rcu(mas->tree); - unsigned char height = mas_mt_height(mas); + unsigned long *dst_pivots; + void __rcu **dst_slots; unsigned char new_end; + struct ma_state *mas; + bool in_rcu; + + mas = wr_mas->mas; + in_rcu = mt_in_rcu(mas->tree); + offset_end = wr_mas->offset_end; + node_pivots = mt_pivots[wr_mas->type]; /* Assume last adds an entry */ - new_end = mas->end + 1 - wr_mas->offset_end + mas->offset; + new_end = mas->end + 1 - offset_end + mas->offset; if (mas->last == wr_mas->end_piv) { offset_end++; /* don't copy this offset */ new_end--; @@ -3485,8 +3489,10 @@ static inline void mas_wr_node_store(struct ma_wr_state *wr_mas) dst_pivots = ma_pivots(newnode, wr_mas->type); dst_slots = ma_slots(newnode, wr_mas->type); /* Copy from start to insert point */ - memcpy(dst_pivots, wr_mas->pivots, sizeof(unsigned long) * mas->offset); - memcpy(dst_slots, wr_mas->slots, sizeof(void *) * mas->offset); + if (mas->offset) { + memcpy(dst_pivots, wr_mas->pivots, sizeof(unsigned long) * mas->offset); + memcpy(dst_slots, wr_mas->slots, sizeof(void __rcu *) * mas->offset); + } /* Handle insert of new range starting after old range */ if (wr_mas->r_min < mas->index) { @@ -3524,7 +3530,7 @@ done: struct maple_enode *old_enode = mas->node; mas->node = mt_mk_node(newnode, wr_mas->type); - mas_replace_node(mas, old_enode, height); + mas_replace_node(mas, old_enode, mas_mt_height(mas)); } else { memcpy(wr_mas->node, newnode, sizeof(struct maple_node)); }