Messages in this thread Patch in this message | | | From | Jonathan Lemon <> | Subject | [PATCH] linux/log2.h: enclose macro arg in parens | Date | Tue, 23 Jun 2020 10:07:39 -0700 |
| |
From: Jonathan Lemon <bsd@fb.com>
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 <jonathan.lemon@gmail.com> --- 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
| |