[PATCH v2 21/28] Add a 64-bit version of is_power_of_2()

Simon Glass sjg at chromium.org
Sun Feb 16 21:44:06 CET 2025


The existing function only works with ulong which is not enough on
32-bit x86 machines which need to set up MTRRs up to 4GB.

There doesn't seem to be a 64-bit version in Linux, so add one here.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

Changes in v2:
- Add new patch with a 64-bit version of is_power_of_2()

 include/linux/log2.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/include/linux/log2.h b/include/linux/log2.h
index d4e32ecfc64..89097cdc694 100644
--- a/include/linux/log2.h
+++ b/include/linux/log2.h
@@ -52,6 +52,12 @@ bool is_power_of_2(unsigned long n)
 	return (n != 0 && ((n & (n - 1)) == 0));
 }
 
+static inline __attribute__((const))
+bool is_power_of_2_u64(u64 n)
+{
+	return (n != 0 && ((n & (n - 1)) == 0));
+}
+
 /**
  * __roundup_pow_of_two() - round up to nearest power of two
  * @n: value to round up
-- 
2.43.0



More information about the U-Boot mailing list