Re: [PATCH RFC] maple_tree: should get pivots boundary by type

From: Liam Howlett
Date: Thu Nov 10 2022 - 11:17:05 EST


* Wei Yang <richard.weiyang@xxxxxxxxx> [221110 02:25]:
> If my understanding is correct, we should get pivots boundary by type.
>

Thank you, yes - you are correct. This is a bug, and should have:

Fixes: 54a611b60590 (Maple Tree: add new data structure)

Please fix your commit message and add the fixes line and resend.

Reviewed-by: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx>

> Signed-off-by: Wei Yang <richard.weiyang@xxxxxxxxx>
> CC: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx>
>
> ---
> * kernel build looks good
> ---
> lib/maple_tree.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/lib/maple_tree.c b/lib/maple_tree.c
> index 73e2e6434e2f..2123d1930a9b 100644
> --- a/lib/maple_tree.c
> +++ b/lib/maple_tree.c
> @@ -669,12 +669,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:
> --
> 2.33.1
>