lkml.org 
[lkml]   [2020]   [Nov]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3] Compiler Attributes: remove CONFIG_ENABLE_MUST_CHECK
    Date
    Revert commit cebc04ba9aeb ("add CONFIG_ENABLE_MUST_CHECK").

    A lot of warn_unused_result warnings existed in 2006, but until now
    they have been fixed thanks to people doing allmodconfig tests.

    Our goal is to always enable __must_check where appropriate, so this
    CONFIG option is no longer needed.

    I see a lot of defconfig (arch/*/configs/*_defconfig) files having:

    # CONFIG_ENABLE_MUST_CHECK is not set

    I did not touch them for now since it would be a big churn. If arch
    maintainers want to clean them up, please go ahead.

    While I was here, I also moved __must_check to compiler_attributes.h
    from compiler_types.h

    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Acked-by: Jason A. Donenfeld <Jason@zx2c4.com>
    ---

    Changes in v3:
    - Fix a typo

    Changes in v2:
    - Move __must_check to compiler_attributes.h

    include/linux/compiler_attributes.h | 7 +++++++
    include/linux/compiler_types.h | 6 ------
    lib/Kconfig.debug | 8 --------
    tools/testing/selftests/wireguard/qemu/debug.config | 1 -
    4 files changed, 7 insertions(+), 15 deletions(-)

    diff --git a/include/linux/compiler_attributes.h b/include/linux/compiler_attributes.h
    index b2a3f4f641a7..5f3b7edad1a7 100644
    --- a/include/linux/compiler_attributes.h
    +++ b/include/linux/compiler_attributes.h
    @@ -171,6 +171,13 @@
    */
    #define __mode(x) __attribute__((__mode__(x)))

    +/*
    + * gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-warn_005funused_005fresult-function-attribute
    + * clang: https://clang.llvm.org/docs/AttributeReference.html#nodiscard-warn-unused-result
    + *
    + */
    +#define __must_check __attribute__((__warn_unused_result__))
    +
    /*
    * Optional: only supported since gcc >= 7
    *
    diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
    index ac3fa37a84f9..7ef20d1a6c28 100644
    --- a/include/linux/compiler_types.h
    +++ b/include/linux/compiler_types.h
    @@ -110,12 +110,6 @@ struct ftrace_likely_data {
    unsigned long constant;
    };

    -#ifdef CONFIG_ENABLE_MUST_CHECK
    -#define __must_check __attribute__((__warn_unused_result__))
    -#else
    -#define __must_check
    -#endif
    -
    #if defined(CC_USING_HOTPATCH)
    #define notrace __attribute__((hotpatch(0, 0)))
    #elif defined(CC_USING_PATCHABLE_FUNCTION_ENTRY)
    diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
    index c789b39ed527..cb8ef4fd0d02 100644
    --- a/lib/Kconfig.debug
    +++ b/lib/Kconfig.debug
    @@ -286,14 +286,6 @@ config GDB_SCRIPTS

    endif # DEBUG_INFO

    -config ENABLE_MUST_CHECK
    - bool "Enable __must_check logic"
    - default y
    - help
    - Enable the __must_check logic in the kernel build. Disable this to
    - suppress the "warning: ignoring return value of 'foo', declared with
    - attribute warn_unused_result" messages.
    -
    config FRAME_WARN
    int "Warn for stack frames larger than"
    range 0 8192
    diff --git a/tools/testing/selftests/wireguard/qemu/debug.config b/tools/testing/selftests/wireguard/qemu/debug.config
    index b50c2085c1ac..fe07d97df9fa 100644
    --- a/tools/testing/selftests/wireguard/qemu/debug.config
    +++ b/tools/testing/selftests/wireguard/qemu/debug.config
    @@ -1,5 +1,4 @@
    CONFIG_LOCALVERSION="-debug"
    -CONFIG_ENABLE_MUST_CHECK=y
    CONFIG_FRAME_POINTER=y
    CONFIG_STACK_VALIDATION=y
    CONFIG_DEBUG_KERNEL=y
    --
    2.27.0
    \
     
     \ /
      Last update: 2020-11-28 23:39    [W:5.037 / U:0.136 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site