Re: [PATCH v3] Compiler Attributes: don't pollute userspace with macro definitions

From: Nick Desaulniers
Date: Fri Dec 14 2018 - 12:46:54 EST


On Fri, Dec 14, 2018 at 8:06 AM Miguel Ojeda
<miguel.ojeda.sandonis@xxxxxxxxx> wrote:
>
> On Fri, Dec 14, 2018 at 3:16 PM Xiaozhou Liu <liuxiaozhou@xxxxxxxxxxxxx> wrote:
> >
> > Macros 'inline' and '__gnu_inline' used to be defined in compiler-gcc.h,
> > which was (and is) included entirely in (__KERNEL__ && !__ASSEMBLY__).
> > Commit 815f0ddb346c ("include/linux/compiler*.h: make compiler-*.h mutually
> > exclusive") had those macros exposed to userspace, unintentionally.
> >
> > Then commit a3f8a30f3f00 ("Compiler Attributes: use feature checks
> > instead of version checks") moved '__gnu_inline' back into
> > (__KERNEL__ && !__ASSEMBLY__) and 'inline' was left behind. Since 'inline'
> > depends on '__gnu_inline', compiling error showing "unknown type name
> > â__gnu_inlineâ" will pop up, if userspace somehow includes
> > <linux/compiler.h>.
> >
> > Other macros like __must_check, notrace, etc. are in a similar situation.
> > So just move all these macros back into (__KERNEL__ && !__ASSEMBLY__).
> >
> > Note:
> > 1. This patch only affects what userspace sees.
> > 2. __must_check (when !CONFIG_ENABLE_MUST_CHECK) and noinline_for_stack
> > were once defined in __KERNEL__ only, but we believe that they can
> > be put into !__ASSEMBLY__ too.
> >
> > Acked-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
> > Signed-off-by: Xiaozhou Liu <liuxiaozhou@xxxxxxxxxxxxx>
>
> Thanks Xiaozhou, picked into compiler-attributes with a slightly
> modified title (since it is not about compiler attributes this time),
> and let's see if there is any problem with it in linux-next.
>
> Nick: I kept your Ack, even if it is a different patch. Let me know if
> you don't want to Ack this version.

Doubled-acked-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
(I recognize it's always ambiguous whether to carry forward sign-offs
when a patch set changes)
--
Thanks,
~Nick Desaulniers