[PATCH v3 0/6] Add FIELD_MODIFY() helper
Andrew Lunn
andrew at lunn.ch
Thu Apr 17 10:22:29 PDT 2025
On Thu, Apr 17, 2025 at 12:10:54PM +0100, Marc Zyngier wrote:
> On Thu, 17 Apr 2025 11:47:07 +0100,
> Luo Jie <quic_luoj at quicinc.com> wrote:
> >
> > Add the helper FIELD_MODIFY() to the FIELD_XXX family of bitfield
> > macros. It is functionally similar as xxx_replace_bits(), but adds
> > the compile time checking to catch incorrect parameter type errors.
> >
> > This series also converts the four instances of opencoded FIELD_MODIFY()
> > that are found in the core kernel files, to instead use the new
> > FIELD_MODIFY() macro. This is achieved with Coccinelle, by adding
> > the script field_modify.cocci.
> >
> > The changes are validated on IPQ9574 SoC which uses ARM64 architecture.
>
> We already have the *_replace_bits() functions (see
> include/linux/bitfield.h).
>
> Why do we need extra helpers?
If you look at bitfield.h, the *_replace_bits() seem to be
undocumented internal macro magic, not something you are expected to
use. What you are expected to use in that file is however well
documented. The macro magic also means that cross referencing tools
don't find them.
I think this is a useful additional to bitfield.h.
Andrew
More information about the linux-arm-kernel
mailing list