Re: [PATCH 6/7] Compiler Attributes: remove unneeded sparse (__CHECKER__) tests

From: Nick Desaulniers
Date: Fri Aug 31 2018 - 17:38:42 EST


On Fri, Aug 31, 2018 at 10:05 AM Miguel Ojeda
<miguel.ojeda.sandonis@xxxxxxxxx> wrote:
>
> Sparse knows about a few more attributes now, so we can remove
> the __CHECKER__ conditions from them (which, in turn, allow us
> to move some of them later on to compiler_attributes.h).
>
> * assume_aligned: since sparse's commit ffc860b ("sparse:
> ignore __assume_aligned__ attribute"), included in 0.5.1
>
> * error: since sparse's commit 0a04210 ("sparse: Add 'error'
> to ignored attributes"), included in 0.5.0
>
> * hotpatch: since sparse's commit 6043210 ("sparse/parse.c:
> ignore hotpatch attribute"), included in 0.5.1
>
> * warning: since sparse's commit 977365d ("Avoid "attribute
> 'warning': unknown attribute" warning"), included in 0.4.2
>
> Cc: Eli Friedman <efriedma@xxxxxxxxxxxxxx>
> Cc: Christopher Li <sparse@xxxxxxxxxxx>
> Cc: Kees Cook <keescook@xxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Cc: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
> Cc: Joe Perches <joe@xxxxxxxxxxx>
> Cc: Dominique Martinet <asmadeus@xxxxxxxxxxxxx>
> Cc: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
> Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@xxxxxxxxx>
> ---
> include/linux/compiler-gcc.h | 6 ++----
> include/linux/compiler_types.h | 2 +-
> 2 files changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
> index fdf2fbe6d544..32e6ce06163f 100644
> --- a/include/linux/compiler-gcc.h
> +++ b/include/linux/compiler-gcc.h
> @@ -84,14 +84,12 @@
>
> #define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
>
> -#ifndef __CHECKER__
> #define __compiletime_warning(message) __attribute__((warning(message)))
> #define __compiletime_error(message) __attribute__((error(message)))
>
> -#ifdef LATENT_ENTROPY_PLUGIN
> +#if defined(LATENT_ENTROPY_PLUGIN) && !defined(__CHECKER__)
> #define __latent_entropy __attribute__((latent_entropy))
> #endif
> -#endif /* __CHECKER__ */
>
> /*
> * calling noreturn functions, __builtin_unreachable() and __builtin_trap()
> @@ -139,7 +137,7 @@
>
> /* gcc version specific checks */
>
> -#if GCC_VERSION >= 40900 && !defined(__CHECKER__)
> +#if GCC_VERSION >= 40900
> /*
> * __assume_aligned(n, k): Tell the optimizer that the returned
> * pointer can be assumed to be k modulo n. The second argument is
> diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
> index 3662b19599fc..5dddc7e0c607 100644
> --- a/include/linux/compiler_types.h
> +++ b/include/linux/compiler_types.h
> @@ -216,7 +216,7 @@ struct ftrace_likely_data {
> #define __must_check
> #endif
>
> -#if defined(CC_USING_HOTPATCH) && !defined(__CHECKER__)
> +#if defined(CC_USING_HOTPATCH)
> #define notrace __attribute__((hotpatch(0, 0)))
> #else
> #define notrace __attribute__((no_instrument_function))
> --
> 2.17.1
>

Everything looks correct here. It would be good for the sparse
maintainer to triple check the commit sha's (as those are for sparse's
code base, not the kernel's) and have their blessing. If Chris is
happy with it, then you can add my signoff:

Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>

Also, do you need to put the cc list in the commit message? Some
people do (hopefully in an automated fashion, because I'd imagine
manually to be difficult) but don't this it's required. Doesn't
matter, just curious.

--
Thanks,
~Nick Desaulniers