The macro parameter 'p' is used as an expression and needs to be enclosed in parentheses.
Signed-off-by: Xenia Ragiadakou <[email protected]> --- Changes in v2: - remove parentheses in the cases that p is not used as an expression that is when it is used as a function argument xen/arch/arm/include/asm/atomic.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/xen/arch/arm/include/asm/atomic.h b/xen/arch/arm/include/asm/atomic.h index ac2798d095..1f60c28b1b 100644 --- a/xen/arch/arm/include/asm/atomic.h +++ b/xen/arch/arm/include/asm/atomic.h @@ -123,15 +123,15 @@ static always_inline void write_atomic_size(volatile void *p, } #define read_atomic(p) ({ \ - union { typeof(*p) val; char c[0]; } x_; \ - read_atomic_size(p, x_.c, sizeof(*p)); \ + union { typeof(*(p)) val; char c[0]; } x_; \ + read_atomic_size(p, x_.c, sizeof(*(p))); \ x_.val; \ }) #define write_atomic(p, x) \ do { \ - typeof(*p) x_ = (x); \ - write_atomic_size(p, &x_, sizeof(*p)); \ + typeof(*(p)) x_ = (x); \ + write_atomic_size(p, &x_, sizeof(*(p))); \ } while ( false ) #define add_sized(p, x) ({ \ -- 2.34.1
