[RFC PATCH v2 01/21] linux/log2.h: enclose macro arg in parens
From: Jonathan Lemon <hidden>
Date: 2020-07-27 22:45:31
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Jonathan Lemon <hidden>
Date: 2020-07-27 22:45:31
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Jonathan Lemon <redacted>
roundup_pow_of_two uses its arg without enclosing it in parens.
A call of the form:
roundup_pow_of_two(boolval ? PAGE_SIZE : frag_size)
resulted in an compile warning:
warning: ?: using integer constants in boolean context [-Wint-in-bool-context]
PAGE_SIZE :
../include/linux/log2.h:176:4: note: in definition of macro ‘roundup_pow_of_two’
(n == 1) ? 1 : \
^
And the resulting code used '1' as the result of the operation.
Fixes: 312a0c170945 ("[PATCH] LOG2: Alter roundup_pow_of_two() so that it can use a ilog2() on a constant")
Signed-off-by: Jonathan Lemon <redacted>
---
include/linux/log2.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/log2.h b/include/linux/log2.h
index 83a4a3ca3e8a..c619ec6eff4a 100644
--- a/include/linux/log2.h
+++ b/include/linux/log2.h@@ -173,7 +173,7 @@ unsigned long __rounddown_pow_of_two(unsigned long n) #define roundup_pow_of_two(n) \ ( \ __builtin_constant_p(n) ? ( \ - (n == 1) ? 1 : \ + ((n) == 1) ? 1 : \ (1UL << (ilog2((n) - 1) + 1)) \ ) : \ __roundup_pow_of_two(n) \
--
2.24.1