The assignment of mas->min and mas->max is wrong. mas->min and mas->max should represent the range of the current node. After mas_ascend() returns, mas-min and mas->max already represent the range of the current node, so we should delete these assignments of mas->min and mas->max.
Signed-off-by: Peng Zhang zhangpeng.00@bytedance.com --- lib/maple_tree.c | 10 ---------- 1 file changed, 10 deletions(-)
diff --git a/lib/maple_tree.c b/lib/maple_tree.c index f5bee48de569..d4ddf7f8adc7 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5157,9 +5157,6 @@ static inline bool mas_rewind_node(struct ma_state *mas) */ static inline bool mas_skip_node(struct ma_state *mas) { - unsigned long *pivots; - enum maple_type mt; - if (mas_is_err(mas)) return false;
@@ -5173,14 +5170,7 @@ static inline bool mas_skip_node(struct ma_state *mas) mas_ascend(mas); } } while (mas->offset >= mas_data_end(mas)); - - mt = mte_node_type(mas->node); - pivots = ma_pivots(mas_mn(mas), mt); - mas->min = pivots[mas->offset] + 1; mas->offset++; - if (mas->offset < mt_slots[mt]) - mas->max = pivots[mas->offset]; - return true; }
On Wed, Mar 08, 2023 at 12:03:40AM +0800, Peng Zhang wrote:
The assignment of mas->min and mas->max is wrong. mas->min and mas->max should represent the range of the current node. After mas_ascend() returns, mas-min and mas->max already represent the range of the current node, so we should delete these assignments of mas->min and mas->max.
Signed-off-by: Peng Zhang zhangpeng.00@bytedance.com
lib/maple_tree.c | 10 ---------- 1 file changed, 10 deletions(-)
diff --git a/lib/maple_tree.c b/lib/maple_tree.c index f5bee48de569..d4ddf7f8adc7 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5157,9 +5157,6 @@ static inline bool mas_rewind_node(struct ma_state *mas) */ static inline bool mas_skip_node(struct ma_state *mas) {
- unsigned long *pivots;
- enum maple_type mt;
- if (mas_is_err(mas)) return false;
@@ -5173,14 +5170,7 @@ static inline bool mas_skip_node(struct ma_state *mas) mas_ascend(mas); } } while (mas->offset >= mas_data_end(mas));
- mt = mte_node_type(mas->node);
- pivots = ma_pivots(mas_mn(mas), mt);
- mas->min = pivots[mas->offset] + 1; mas->offset++;
- if (mas->offset < mt_slots[mt])
mas->max = pivots[mas->offset];
- return true;
} -- 2.20.1
<formletter>
This is not the correct way to submit patches for inclusion in the stable kernel tree. Please read: https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html for how to do this properly.
</formletter>
On Wed, 8 Mar 2023 00:03:40 +0800 Peng Zhang zhangpeng.00@bytedance.com wrote:
The assignment of mas->min and mas->max is wrong. mas->min and mas->max should represent the range of the current node. After mas_ascend() returns, mas-min and mas->max already represent the range of the current node, so we should delete these assignments of mas->min and mas->max.
Please fully describe the user-visible effects of the flaw, especially when proposing a -stable backport.
在 2023/3/9 09:55, Andrew Morton 写道:
On Wed, 8 Mar 2023 00:03:40 +0800 Peng Zhang zhangpeng.00@bytedance.com wrote:
The assignment of mas->min and mas->max is wrong. mas->min and mas->max should represent the range of the current node. After mas_ascend() returns, mas-min and mas->max already represent the range of the current node, so we should delete these assignments of mas->min and mas->max.
Please fully describe the user-visible effects of the flaw, especially when proposing a -stable backport.
The fixes made by this patch have been included in https://lore.kernel.org/lkml/20230307180247.2220303-2-Liam.Howlett@oracle.co..., so please don't pay attention.
linux-stable-mirror@lists.linaro.org