Commit 7c812814 authored by Alexey Dobriyan's avatar Alexey Dobriyan Committed by Andrew Morton

compiler.h: simplify data_race() macro

-Wdeclaration-after-statement used since forever required statement
expressions to inject __kcsan_disable_current(), __kcsan_enable_current()
to mark data race. Now that it is gone, make macro expansion simpler.

__unqual_scalar_typeof() is wordy macro by itself.
"expr" is expanded twice.

Link: https://lkml.kernel.org/r/fb62163f-ba21-4661-be5b-bb5124abc87d@p183Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
Reviewed-by: default avatarMarco Elver <elver@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 961a2851
...@@ -200,10 +200,8 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val, ...@@ -200,10 +200,8 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
*/ */
#define data_race(expr) \ #define data_race(expr) \
({ \ ({ \
__unqual_scalar_typeof(({ expr; })) __v = ({ \ __kcsan_disable_current(); \
__kcsan_disable_current(); \ __auto_type __v = (expr); \
expr; \
}); \
__kcsan_enable_current(); \ __kcsan_enable_current(); \
__v; \ __v; \
}) })
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment