[PATCH] linux/kernel.h: Update upper_NN_bits() and lower_NN_bits() macros

Marek Vasut marek.vasut+renesas at mailbox.org
Mon Sep 22 14:29:22 CEST 2025


Synchronize upper_NN_bits() and lower_NN_bits() macros with Linux 6.16.7
commit 118d777c4cb4 ("wordpart.h: Add REPEAT_BYTE_U32()"). This fixes the
lower_32_bits() macros and assures it works with 64bit systems correctly.
This also adds 16bit variants of these macros, which will be used by the
Airoha PHY driver.

Signed-off-by: Marek Vasut <marek.vasut+renesas at mailbox.org>
---
Cc: "Lucien.Jheng" <lucienzx159 at gmail.com>
Cc: Rasmus Villemoes <ravi at prevas.dk>
Cc: Raymond Mao <raymond.mao at linaro.org>
Cc: Tom Rini <trini at konsulko.com>
Cc: u-boot at lists.denx.de
---
 include/linux/kernel.h | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index e0443ecac84..44a639a5e4e 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -111,7 +111,19 @@
  * lower_32_bits - return bits 0-31 of a number
  * @n: the number we're accessing
  */
-#define lower_32_bits(n) ((u32)(n))
+#define lower_32_bits(n) ((u32)((n) & 0xffffffff))
+
+/**
+ * upper_16_bits - return bits 16-31 of a number
+ * @n: the number we're accessing
+ */
+#define upper_16_bits(n) ((u16)((n) >> 16))
+
+/**
+ * lower_16_bits - return bits 0-15 of a number
+ * @n: the number we're accessing
+ */
+#define lower_16_bits(n) ((u16)((n) & 0xffff))
 
 /*
  * abs() handles unsigned and signed longs, ints, shorts and chars.  For all
-- 
2.51.0



More information about the U-Boot mailing list