[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CANiq72=2Q1+EoqSzvT3aHGWFAJds4ZHXVq_yT+JCYvUhiHtHGg@mail.gmail.com>
Date: Fri, 31 Aug 2018 23:55:51 +0200
From: Miguel Ojeda <miguel.ojeda.sandonis@...il.com>
To: Nick Desaulniers <ndesaulniers@...gle.com>
Cc: Christopher Li <sparse@...isli.org>,
Linus Torvalds <torvalds@...ux-foundation.org>,
LKML <linux-kernel@...r.kernel.org>,
Eli Friedman <efriedma@...eaurora.org>,
Kees Cook <keescook@...omium.org>,
Ingo Molnar <mingo@...nel.org>,
Geert Uytterhoeven <geert@...ux-m68k.org>,
Arnd Bergmann <arnd@...db.de>,
Greg KH <gregkh@...uxfoundation.org>,
Masahiro Yamada <yamada.masahiro@...ionext.com>,
Joe Perches <joe@...ches.com>,
Dominique Martinet <asmadeus@...ewreck.org>
Subject: Re: [PATCH 6/7] Compiler Attributes: remove unneeded sparse
(__CHECKER__) tests
Hi Nick,
On Fri, Aug 31, 2018 at 11:38 PM, Nick Desaulniers
<ndesaulniers@...gle.com> wrote:
> On Fri, Aug 31, 2018 at 10:05 AM Miguel Ojeda
> <miguel.ojeda.sandonis@...il.com> 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@...eaurora.org>
>> Cc: Christopher Li <sparse@...isli.org>
>> Cc: Kees Cook <keescook@...omium.org>
>> Cc: Ingo Molnar <mingo@...nel.org>
>> Cc: Geert Uytterhoeven <geert@...ux-m68k.org>
>> Cc: Arnd Bergmann <arnd@...db.de>
>> Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
>> Cc: Masahiro Yamada <yamada.masahiro@...ionext.com>
>> Cc: Joe Perches <joe@...ches.com>
>> Cc: Dominique Martinet <asmadeus@...ewreck.org>
>> Cc: Nick Desaulniers <ndesaulniers@...gle.com>
>> Cc: Linus Torvalds <torvalds@...ux-foundation.org>
>> Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@...il.com>
>> ---
>> 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
Actually, nowadays it is very easy to check in sparse's
gcc-attr-list.h file, but since the file was not always there, I tried
to find out when the support for each attribute was added.
But indeed, Chris, please let us know. (Should have CC'd you).
> happy with it, then you can add my signoff:
>
> Reviewed-by: Nick Desaulniers <ndesaulniers@...gle.com>
>
> 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.
Hm... I thought it was supposed to be there for all patches,
considering different patches may have to be targeted to different
people. Also, one has to manage anyway the Acked-by and Reviewed-by
per-patch, so you have to manually go through. On top of that, it is
always handy to have in case you discard a patch into a separate
series or in case you send them through a tool that picks the Cc
individually (instead of something more advanced like git-send-email).
So... I guess? Not sure if it is strictly required, though.
Cheers,
Miguel
Powered by blists - more mailing lists