Commit 95c094fc authored by Marco Elver's avatar Marco Elver Committed by Thomas Gleixner
Browse files

compiler.h: Avoid nested statement expression in data_race()



It appears that compilers have trouble with nested statement
expressions. Therefore, remove one level of statement expression nesting
from the data_race() macro. This will help avoiding potential problems
in the future as its usage increases.

Reported-by: default avatarBorislav Petkov <bp@suse.de>
Reported-by: default avatarNathan Chancellor <natechancellor@gmail.com>
Signed-off-by: default avatarMarco Elver <elver@google.com>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: default avatarWill Deacon <will@kernel.org>
Tested-by: default avatarNick Desaulniers <ndesaulniers@google.com>
Link: https://lkml.kernel.org/r/20200520221712.GA21166@zn.tnic
Link: https://lkml.kernel.org/r/20200521142047.169334-10-elver@google.com

parent 44b97dcc
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -264,12 +264,12 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
 */
#define data_race(expr)							\
({									\
	__unqual_scalar_typeof(({ expr; })) __v = ({			\
		__kcsan_disable_current();				\
	({								\
		__unqual_scalar_typeof(({ expr; })) __v = ({ expr; });	\
		expr;							\
	});								\
	__kcsan_enable_current();					\
	__v;								\
	});								\
})

/*