include/linux/bit_spinlock.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Surround the bitnum argument with parentheses because it could be an
expression that includes an operator with a lower priority than the
addition operator, e.g. the exclusive or operator.
Fixes: eb7d96a13bf4 ("bit_spinlock: Support Clang's context analysis")
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
include/linux/bit_spinlock.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/bit_spinlock.h b/include/linux/bit_spinlock.h
index 7869a6e59b6a..bcae36b9a739 100644
--- a/include/linux/bit_spinlock.h
+++ b/include/linux/bit_spinlock.h
@@ -17,7 +17,7 @@
* static analysis can use.
*/
context_lock_struct(__context_bitlock) { };
-#define __bitlock(bitnum, addr) (struct __context_bitlock *)(bitnum + (addr))
+#define __bitlock(bitnum, addr) (struct __context_bitlock *)((bitnum) + (addr))
/*
* bit-based spin_lock()
On Sat, 2 May 2026 at 03:55, Bart Van Assche <bvanassche@acm.org> wrote:
>
> Surround the bitnum argument with parentheses because it could be an
> expression that includes an operator with a lower priority than the
> addition operator, e.g. the exclusive or operator.
>
> Fixes: eb7d96a13bf4 ("bit_spinlock: Support Clang's context analysis")
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Marco Elver <elver@google.com>
> ---
> include/linux/bit_spinlock.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/bit_spinlock.h b/include/linux/bit_spinlock.h
> index 7869a6e59b6a..bcae36b9a739 100644
> --- a/include/linux/bit_spinlock.h
> +++ b/include/linux/bit_spinlock.h
> @@ -17,7 +17,7 @@
> * static analysis can use.
> */
> context_lock_struct(__context_bitlock) { };
> -#define __bitlock(bitnum, addr) (struct __context_bitlock *)(bitnum + (addr))
> +#define __bitlock(bitnum, addr) (struct __context_bitlock *)((bitnum) + (addr))
>
> /*
> * bit-based spin_lock()
© 2016 - 2026 Red Hat, Inc.