[PATCH v14 02/18] bitfield: Add less-checking __FIELD_{GET,PREP}()

Mikhail Kshevetskiy mikhail.kshevetskiy at iopsys.eu
Fri Jul 3 13:07:03 CEST 2026


On 7/2/26 16:59, Tom Rini wrote:
> On Thu, Jul 02, 2026 at 11:53:05AM +0100, Simon Glass wrote:
>> Hi Mikhail,
>>
>> On 2026-07-02T05:57:27, Mikhail Kshevetskiy
>> <mikhail.kshevetskiy at iopsys.eu> wrote:
>>> bitfield: Add less-checking __FIELD_{GET,PREP}()
>>>
>>> The BUILD_BUG_ON_MSG() check against '~0ull' works only with "unsigned
>>> (long) long" _mask types.  For constant masks, that condition is usually
>>> met, as GENMASK() yields an UL value.  The few places where the
>>> constant mask is stored in an intermediate variable were fixed by
>>> changing the variable type to u64 (see e.g. [1] and [2]).
>>>
>>> However, for non-constant masks, smaller unsigned types should be valid,
>>> too, but currently lead to "result of comparison of constant
>>> 18446744073709551615 with expression of type ... is always
>>> false"-warnings with clang and W=1.
>>>
>>> Hence refactor the __BF_FIELD_CHECK() helper, and factor out
>>> __FIELD_{GET,PREP}().  The later lack the single problematic check, but
>>> are otherwise identical to FIELD_{GET,PREP}(), and are intended to be
>>> used in the fully non-const variants later.
>>>
>>> [1] commit 5c667d5a5a3ec166 ("clk: sp7021: Adjust width of _m in
>>>     HWM_FIELD_PREP()")
>>> [...]
>>>
>>> include/linux/bitfield.h | 36 ++++++++++++++++++++++++++++--------
>>>  1 file changed, 28 insertions(+), 8 deletions(-)
>>> Signed-off-by: Geert Uytterhoeven <geert+renesas at glider.be>
>>> Link: https://git.kernel.org/torvalds/c/5c667d5a5a3ec166 [1]
>>> Signed-off-by: Yury Norov (NVIDIA) <yury.norov at gmail.com>
>>> Reviewed-by: David Lechner <dlechner at baylibre.com>
>> Reviewed-by: Simon Glass <sjg at chromium.org>
>>
>> Please can you add your own Signed-off-by at the end of the chain?
>>
>> It's a bit confusing that you seem to refer to Linux commit hashes in
>> the commit. So maybe this should have a Cherry-picked-from: line
>> indicating it came from Linux?
> We don't use Cherry-picked-from (does anything?), we just mention what
> the upstream commit was.
There are several commits where something similar were used:

86a720aafce5b2 ("mtd: Introduce mtd_block_isreserved()")
[scottwood: Cherry-picked from Linux 8471bb73ba10ed67]
Signed-off-by: Scott Wood <scottwood at freescale.com>

88f95bbadda89b ("libfdt: Add fdt_next_subnode() to permit easy subnode
iteration")
(Cherry-picked from dtc commit 4e76ec79)
Acked-by: Gerald Van Baren <vanbaren at cideas.com>

c9fbe861a2fc1c ("arm64: dts: allwinner: h616: Add r_i2c pinctrl nodes")
(cherry-picked from commit 1665557aa57c2140d014d68dfe1a1f92f9baac82)
Reviewed-by: Andre Przywara <andre.przywara at arm.com>

13f3b04f61aa6a ("mtd: add mtd_ooblayout_xxx() helper functions")
[Linux commit: 75eb2cec251fda33c9bb716ecc372819abb9278a]
[masahiro: cherry-pick more code from
adbbc3bc827eb1f43a932d783f09ba55c8ec8379]
Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>

1fb87de83dd6e7 ("mtd: nand: Support controllers with custom page")
[Linux commit: 3371d663bb4579f1b2003a92162edd6d90edd089]
Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>

and so on




More information about the U-Boot mailing list