mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-06 05:06:29 +00:00
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: Borislav Petkov <bp@suse.de> Reported-by: Nathan Chancellor <natechancellor@gmail.com> Signed-off-by: Marco Elver <elver@google.com> Signed-off-by: Borislav Petkov <bp@suse.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Will Deacon <will@kernel.org> Tested-by: Nick 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
This commit is contained in:
parent
44b97dccb2
commit
95c094fccb
@ -264,12 +264,12 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
|
||||
*/
|
||||
#define data_race(expr) \
|
||||
({ \
|
||||
__kcsan_disable_current(); \
|
||||
({ \
|
||||
__unqual_scalar_typeof(({ expr; })) __v = ({ expr; }); \
|
||||
__kcsan_enable_current(); \
|
||||
__v; \
|
||||
__unqual_scalar_typeof(({ expr; })) __v = ({ \
|
||||
__kcsan_disable_current(); \
|
||||
expr; \
|
||||
}); \
|
||||
__kcsan_enable_current(); \
|
||||
__v; \
|
||||
})
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user