lkml.org 
[lkml]   [2020]   [May]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH -tip v3 10/11] compiler.h: Move function attributes to compiler_types.h
    From
    Cleanup and move the KASAN and KCSAN related function attributes to
    compiler_types.h, where the rest of the same kind live.

    No functional change intended.

    Acked-by: Will Deacon <will@kernel.org>
    Signed-off-by: Marco Elver <elver@google.com>
    ---
    include/linux/compiler.h | 29 -----------------------------
    include/linux/compiler_types.h | 29 +++++++++++++++++++++++++++++
    2 files changed, 29 insertions(+), 29 deletions(-)

    diff --git a/include/linux/compiler.h b/include/linux/compiler.h
    index 379a5077e9c6..652aee025c89 100644
    --- a/include/linux/compiler.h
    +++ b/include/linux/compiler.h
    @@ -250,35 +250,6 @@ do { \
    __WRITE_ONCE(x, val); \
    } while (0)

    -#ifdef CONFIG_KASAN
    -/*
    - * We can't declare function 'inline' because __no_sanitize_address conflicts
    - * with inlining. Attempt to inline it may cause a build failure.
    - * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368
    - * '__maybe_unused' allows us to avoid defined-but-not-used warnings.
    - */
    -# define __no_kasan_or_inline __no_sanitize_address notrace __maybe_unused
    -# define __no_sanitize_or_inline __no_kasan_or_inline
    -#else
    -# define __no_kasan_or_inline __always_inline
    -#endif
    -
    -#define __no_kcsan __no_sanitize_thread
    -#ifdef __SANITIZE_THREAD__
    -/*
    - * Rely on __SANITIZE_THREAD__ instead of CONFIG_KCSAN, to avoid not inlining in
    - * compilation units where instrumentation is disabled.
    - */
    -# define __no_kcsan_or_inline __no_kcsan notrace __maybe_unused
    -# define __no_sanitize_or_inline __no_kcsan_or_inline
    -#else
    -# define __no_kcsan_or_inline __always_inline
    -#endif
    -
    -#ifndef __no_sanitize_or_inline
    -#define __no_sanitize_or_inline __always_inline
    -#endif
    -
    static __no_sanitize_or_inline
    unsigned long __read_once_word_nocheck(const void *addr)
    {
    diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
    index 6ed0612bc143..b190a12e7089 100644
    --- a/include/linux/compiler_types.h
    +++ b/include/linux/compiler_types.h
    @@ -167,6 +167,35 @@ struct ftrace_likely_data {
    */
    #define noinline_for_stack noinline

    +#ifdef CONFIG_KASAN
    +/*
    + * We can't declare function 'inline' because __no_sanitize_address conflicts
    + * with inlining. Attempt to inline it may cause a build failure.
    + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368
    + * '__maybe_unused' allows us to avoid defined-but-not-used warnings.
    + */
    +# define __no_kasan_or_inline __no_sanitize_address notrace __maybe_unused
    +# define __no_sanitize_or_inline __no_kasan_or_inline
    +#else
    +# define __no_kasan_or_inline __always_inline
    +#endif
    +
    +#define __no_kcsan __no_sanitize_thread
    +#ifdef __SANITIZE_THREAD__
    +/*
    + * Rely on __SANITIZE_THREAD__ instead of CONFIG_KCSAN, to avoid not inlining in
    + * compilation units where instrumentation is disabled.
    + */
    +# define __no_kcsan_or_inline __no_kcsan notrace __maybe_unused
    +# define __no_sanitize_or_inline __no_kcsan_or_inline
    +#else
    +# define __no_kcsan_or_inline __always_inline
    +#endif
    +
    +#ifndef __no_sanitize_or_inline
    +#define __no_sanitize_or_inline __always_inline
    +#endif
    +
    #endif /* __KERNEL__ */

    #endif /* __ASSEMBLY__ */
    --
    2.26.2.761.g0e0b3e54be-goog
    \
     
     \ /
      Last update: 2020-05-21 16:23    [W:6.631 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site