]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
compiler.h: simplify data_race() macro
authorAlexey Dobriyan <adobriyan@gmail.com>
Mon, 24 Jun 2024 15:39:49 +0000 (18:39 +0300)
committerAndrew Morton <akpm@linux-foundation.org>
Sat, 29 Jun 2024 02:36:30 +0000 (19:36 -0700)
-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@p183
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Reviewed-by: Marco Elver <elver@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/compiler.h

index 8c252e073bd8103c8b13f39d90a965370b16d37d..2ea6120f3f7a33d6b8053788d026bb277db352d6 100644 (file)
@@ -200,10 +200,8 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
  */
 #define data_race(expr)                                                        \
 ({                                                                     \
-       __unqual_scalar_typeof(({ expr; })) __v = ({                    \
-               __kcsan_disable_current();                              \
-               expr;                                                   \
-       });                                                             \
+       __kcsan_disable_current();                                      \
+       __auto_type __v = (expr);                                       \
        __kcsan_enable_current();                                       \
        __v;                                                            \
 })