mas_mab_cp() copy range [mas_start, mas_end] inclusively. For some usage, the mas_end passed could be refined. Patch 1: if we know the end of a maple_node, we don't need to copy end + 1. Patch 2: this one tries to leverage mt_pivot_count() for optimize the code. Patch 3: the maximum end of a maple_node is mt_pivot_count() instead of mt_slot_count() Patch 4: after above cleanup, we are sure mas_end won't exceed mt_pivots[], so we can remove the check in mas_mab_cp() Wei Yang (4): maple_tree: not necessary to copy mas->end + 1 maple_tree: use mt_pivot_count() to replace mt_slot_count() - 1 maple_tree: copy to mt_pivot_count() instead of mt_slot_count() maple_tree: now we are sure mas_end wouldn't exceed mt_pivots[mt] lib/maple_tree.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) -- 2.34.1