On Fri, Dec 14, 2018 at 3:16 PM Xiaozhou Liu <[email protected]> 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 <[email protected]> > Signed-off-by: Xiaozhou Liu <[email protected]>
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

