Message ID | 20230307160340.57074-1-zhangpeng.00@bytedance.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | maple_tree: Fix the error of mas->min/max in mas_skip_node() | expand |
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.com/, so please don't pay attention.
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; }
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(-)