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

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
...@@ -670,12 +670,13 @@ static inline unsigned long mte_pivot(const struct maple_enode *mn, ...@@ -670,12 +670,13 @@ static inline unsigned long mte_pivot(const struct maple_enode *mn,
unsigned char piv) unsigned char piv)
{ {
struct maple_node *node = mte_to_node(mn); 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); WARN_ON(1);
return 0; return 0;
} }
switch (mte_node_type(mn)) { switch (type) {
case maple_arange_64: case maple_arange_64:
return node->ma64.pivot[piv]; return node->ma64.pivot[piv];
case maple_range_64: case maple_range_64:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment