Messages in this thread | | | From | Miguel Ojeda <> | Date | Fri, 14 Dec 2018 17:06:33 +0100 | Subject | Re: [PATCH v3] Compiler Attributes: don't pollute userspace with macro definitions |
| |
On Fri, Dec 14, 2018 at 3:16 PM Xiaozhou Liu <liuxiaozhou@bytedance.com> 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@google.com> > Signed-off-by: Xiaozhou Liu <liuxiaozhou@bytedance.com>
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.
Cheers, Miguel
| |