From: Yury Norov <yury.norov@gmail.com>
To: Marc Zyngier <maz@kernel.org>
Cc: Ben Horgan <ben.horgan@arm.com>,
catalin.marinas@arm.com, will@kernel.org, oliver.upton@linux.dev,
joey.gouly@arm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com,
linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
linux@rasmusvillemoes.dk, linux-kernel@vger.kernel.org,
james.morse@arm.com
Subject: Re: [PATCH 2/2] bitfield: Ensure the return value of type##_replace_bits() is checked
Date: Tue, 8 Jul 2025 10:46:33 -0400 [thread overview]
Message-ID: <aG0vScXkDROkdASW@yury> (raw)
In-Reply-To: <86tt3n9fsh.wl-maz@kernel.org>
On Tue, Jul 08, 2025 at 10:45:50AM +0100, Marc Zyngier wrote:
> On Tue, 08 Jul 2025 10:42:06 +0100,
> Ben Horgan <ben.horgan@arm.com> wrote:
> >
> > Hi Yury,
> >
> > On 7/7/25 17:31, Yury Norov wrote:
> > > Hi Ben,
> > >
> > > On Thu, Jul 03, 2025 at 02:57:29PM +0100, Ben Horgan wrote:
> > >> As type##_replace_bits() has no side effects it is only useful if its
> > >> return value is checked. Add __must_check to enforce this usage. To have
> > >> the bits replaced in-place typep##_replace_bits() can be used instead.
> > >>
> > >> Signed-off-by: Ben Horgan <ben.horgan@arm.com>
> > >> ---
> > >> include/linux/bitfield.h | 4 ++--
> > >> 1 file changed, 2 insertions(+), 2 deletions(-)
> > >>
> > >> diff --git a/include/linux/bitfield.h b/include/linux/bitfield.h
> > >> index 6d9a53db54b6..39333b80d22b 100644
> > >> --- a/include/linux/bitfield.h
> > >> +++ b/include/linux/bitfield.h
> > >> @@ -195,8 +195,8 @@ static __always_inline __##type type##_encode_bits(base v, base field) \
> > >> __field_overflow(); \
> > >> return to((v & field_mask(field)) * field_multiplier(field)); \
> > >> } \
> > >> -static __always_inline __##type type##_replace_bits(__##type old, \
> > >> - base val, base field) \
> > >> +static __always_inline __##type __must_check type##_replace_bits(__##type old, \
> > >> + base val, base field) \
> > >> { \
> > >> return (old & ~to(field)) | type##_encode_bits(val, field); \
> > >> } \
> > >
> > > So, would it make sense to mark _encode_bits() and _get_bits() as
> > > __must_check as well? At least from the point of unification, it
> > > would.
> > Could do. It seems less important as there are no obvious foot-guns
> > that these would guards against. Would you like me to add this in a
> > v2?
Yes please.
> > > How would we move this - with my bitmap-for next or with arm branch?
> >
> > I'm not familiar with the branch machinery so can't comment on this.
>
> The first patch will definitely go in via the KVM/arm64 tree, probably
> as a fix for 6.16.
OK. Then I'll take patch #2 v2 by myself.
Thanks,
Yury
prev parent reply other threads:[~2025-07-08 14:46 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-03 13:57 [PATCH 0/2] Fix and add warning of misuse of type##_replace_bits() Ben Horgan
2025-07-03 13:57 ` [PATCH 1/2] KVM: arm64: Fix enforcement of upper bound on MDCR_EL2.HPMN Ben Horgan
2025-07-04 6:44 ` Zenghui Yu
2025-07-03 13:57 ` [PATCH 2/2] bitfield: Ensure the return value of type##_replace_bits() is checked Ben Horgan
2025-07-07 16:31 ` Yury Norov
2025-07-08 9:42 ` Ben Horgan
2025-07-08 9:45 ` Marc Zyngier
2025-07-08 14:46 ` Yury Norov [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=aG0vScXkDROkdASW@yury \
--to=yury.norov@gmail.com \
--cc=ben.horgan@arm.com \
--cc=catalin.marinas@arm.com \
--cc=james.morse@arm.com \
--cc=joey.gouly@arm.com \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=maz@kernel.org \
--cc=oliver.upton@linux.dev \
--cc=suzuki.poulose@arm.com \
--cc=will@kernel.org \
--cc=yuzenghui@huawei.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.