Commit ab6ef70a authored by Wei Yang's avatar Wei Yang Committed by Andrew Morton
Browse files

maple_tree: should get pivots boundary by type

We should get pivots boundary by type.  Fixes a potential overindexing of
mt_pivots[].

Link: https://lkml.kernel.org/r/20221112234308.23823-1-richard.weiyang@gmail.com


Fixes: 54a611b6 ("Maple Tree: add new data structure")
Signed-off-by: default avatarWei Yang <richard.weiyang@gmail.com>
Reviewed-by: default avatarLiam R. Howlett <Liam.Howlett@oracle.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 889a904f
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -670,12 +670,13 @@ static inline unsigned long mte_pivot(const struct maple_enode *mn,
				 unsigned char piv)
{
	struct maple_node *node = mte_to_node(mn);
	enum maple_type type = mte_node_type(mn);

	if (piv >= mt_pivots[piv]) {
	if (piv >= mt_pivots[type]) {
		WARN_ON(1);
		return 0;
	}
	switch (mte_node_type(mn)) {
	switch (type) {
	case maple_arange_64:
		return node->ma64.pivot[piv];
	case maple_range_64: