提交 1c1a18b0 编写于 作者: V Vincenzo Frascino 提交者: Borislav Petkov

um: Fix header inclusion

User Mode Linux is a flavor of x86 that from the vDSO prospective always
falls back on system calls. This implies that it does not require any
of the unified vDSO definitions and their inclusion causes side effects
like this:

  In file included from include/vdso/processor.h:10:0,
                      from include/vdso/datapage.h:17,
                      from arch/x86/include/asm/vgtod.h:7,
                      from arch/x86/um/../kernel/sys_ia32.c:49:
  >> arch/x86/include/asm/vdso/processor.h:11:29: error: redefinition of 'rep_nop'
      static __always_inline void rep_nop(void)
                                  ^~~~~~~
     In file included from include/linux/rcupdate.h:30:0,
                      from include/linux/rculist.h:11,
                      from include/linux/pid.h:5,
                      from include/linux/sched.h:14,
                      from arch/x86/um/../kernel/sys_ia32.c:25:
     arch/x86/um/asm/processor.h:24:20: note: previous definition of 'rep_nop' was here
      static inline void rep_nop(void)

Make sure that the unnecessary headers are not included when um is built
to address the problem.

Fixes: abc22418 ("x86/vdso: Enable x86 to use common headers")
Reported-by: Nkbuild test robot <lkp@intel.com>
Signed-off-by: NVincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: NBorislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20200323124109.7104-1-vincenzo.frascino@arm.com
上级 a5d442f5
...@@ -2,6 +2,11 @@ ...@@ -2,6 +2,11 @@
#ifndef _ASM_X86_VGTOD_H #ifndef _ASM_X86_VGTOD_H
#define _ASM_X86_VGTOD_H #define _ASM_X86_VGTOD_H
/*
* This check is required to prevent ARCH=um to include
* unwanted headers.
*/
#ifdef CONFIG_GENERIC_GETTIMEOFDAY
#include <linux/compiler.h> #include <linux/compiler.h>
#include <asm/clocksource.h> #include <asm/clocksource.h>
#include <vdso/datapage.h> #include <vdso/datapage.h>
...@@ -14,5 +19,6 @@ typedef u64 gtod_long_t; ...@@ -14,5 +19,6 @@ typedef u64 gtod_long_t;
#else #else
typedef unsigned long gtod_long_t; typedef unsigned long gtod_long_t;
#endif #endif
#endif /* CONFIG_GENERIC_GETTIMEOFDAY */
#endif /* _ASM_X86_VGTOD_H */ #endif /* _ASM_X86_VGTOD_H */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册