From: "Liam R. Howlett" <Liam.Howlett@Oracle.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Wei Yang <richard.weiyang@gmail.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] maple_tree: should get pivots boundary by type
Date: Mon, 23 Jan 2023 17:35:21 -0500 [thread overview]
Message-ID: <20230123223521.4eacmsmftmwddjfb@revolver> (raw)
In-Reply-To: <20230123134341.2514c269a07ad9e7989921c6@linux-foundation.org>
* Andrew Morton <akpm@linux-foundation.org> [230123 16:43]:
> On Sat, 12 Nov 2022 23:43:08 +0000 Wei Yang <richard.weiyang@gmail.com> wrote:
>
> > We should get pivots boundary by type.
> >
>
> When fixing a bug, please always fully describe the runtime effects of
> that bug.
>
> I see from earlier review that the bug could result in overindexing
> mt_pivots[], but Liam says this code isn't presently used, but
> mas_alloc() calls mte_pivot(), so I'm all confused.
Correct. The function mas_alloc() is... very much not well named. It
is called from mtree_alloc_range() which will put a temporary value into
the tree so that you may store over that value later without allocating
memory later. It's about allocating a range, not memory. Perhaps
mas_reserve() would have been better, in retrospect.
Anyways, it's not used by the mm code right now, but it's certainly a
bug.
>
>
> > --- 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
> >
prev parent reply other threads:[~2023-01-23 22:35 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-12 23:43 [PATCH] maple_tree: should get pivots boundary by type Wei Yang
2022-12-25 6:16 ` Wei Yang
2023-01-23 21:43 ` Andrew Morton
2023-01-23 22:35 ` Liam R. Howlett [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230123223521.4eacmsmftmwddjfb@revolver \
--to=liam.howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=richard.weiyang@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.