Re: [v2 6/7] x86/traps: Fixup general protection faults caused by UMIP

From: kbuild test robot
Date: Fri Dec 23 2016 - 23:23:33 EST


Hi Ricardo,

[auto build test ERROR on tip/auto-latest]
[also build test ERROR on next-20161223]
[cannot apply to tip/x86/core v4.9]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Ricardo-Neri/x86-enable-User-Mode-Instruction-Prevention/20161224-094338
config: x86_64-rhel (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

All errors (new ones prefixed by >>):

In file included from arch/x86/tools/test_get_len.c:27:0:
>> arch/x86/include/asm/insn.h:26:23: fatal error: linux/bug.h: No such file or directory
#include <linux/bug.h>
^
compilation terminated.
--
In file included from tools/include/linux/compiler.h:55:0,
from arch/x86/include/asm/insn.h:25,
from arch/x86/tools/insn_sanity.c:34:
>> tools/include/linux/types.h:28:18: error: conflicting types for 'u64'
typedef uint64_t u64;
^~~
In file included from /usr/include/asm-generic/types.h:6:0,
from /usr/include/x86_64-linux-gnu/asm/types.h:4,
from tools/include/linux/types.h:9,
from tools/include/linux/compiler.h:55,
from arch/x86/include/asm/insn.h:25,
from arch/x86/tools/insn_sanity.c:34:
include/asm-generic/int-ll64.h:25:28: note: previous declaration of 'u64' was here
typedef unsigned long long u64;
^~~
In file included from tools/include/linux/compiler.h:55:0,
from arch/x86/include/asm/insn.h:25,
from arch/x86/tools/insn_sanity.c:34:
>> tools/include/linux/types.h:29:17: error: conflicting types for 's64'
typedef int64_t s64;
^~~
In file included from /usr/include/asm-generic/types.h:6:0,
from /usr/include/x86_64-linux-gnu/asm/types.h:4,
from tools/include/linux/types.h:9,
from tools/include/linux/compiler.h:55,
from arch/x86/include/asm/insn.h:25,
from arch/x86/tools/insn_sanity.c:34:
include/asm-generic/int-ll64.h:24:26: note: previous declaration of 's64' was here
typedef signed long long s64;
^~~
In file included from tools/include/linux/types.h:4:0,
from tools/include/linux/compiler.h:55,
from arch/x86/include/asm/insn.h:25,
from arch/x86/tools/insn_sanity.c:34:
>> include/linux/stddef.h:10:2: error: expected identifier before numeric constant
false = 0,
^
In file included from arch/x86/include/asm/ptrace.h:5:0,
from arch/x86/include/asm/insn.h:28,
from arch/x86/tools/insn_sanity.c:34:
>> arch/x86/include/asm/page_types.h:61:15: error: unknown type name 'phys_addr_t'
static inline phys_addr_t get_max_mapped(void)
^~~~~~~~~~~
arch/x86/include/asm/page_types.h: In function 'get_max_mapped':
>> arch/x86/include/asm/page_types.h:63:10: error: 'phys_addr_t' undeclared (first use in this function)
return (phys_addr_t)max_pfn_mapped << PAGE_SHIFT;
^~~~~~~~~~~
arch/x86/include/asm/page_types.h:63:10: note: each undeclared identifier is reported only once for each function it appears in
>> arch/x86/include/asm/page_types.h:63:22: error: expected ';' before 'max_pfn_mapped'
return (phys_addr_t)max_pfn_mapped << PAGE_SHIFT;
^~~~~~~~~~~~~~
In file included from arch/x86/include/asm/insn.h:28:0,
from arch/x86/tools/insn_sanity.c:34:
arch/x86/include/asm/ptrace.h: At top level:
>> arch/x86/include/asm/ptrace.h:33:8: error: redefinition of 'struct pt_regs'
struct pt_regs {
^~~~~~~
In file included from arch/x86/include/asm/insn.h:26:0,
from arch/x86/tools/insn_sanity.c:34:
include/linux/bug.h:13:8: note: originally defined here
struct pt_regs;
^~~~~~~

vim +33 arch/x86/include/asm/ptrace.h

92bc2056 include/asm-x86/ptrace.h Harvey Harrison 2008-02-08 27 unsigned long sp;
92bc2056 include/asm-x86/ptrace.h Harvey Harrison 2008-02-08 28 unsigned long ss;
65ea5b03 include/asm-x86/ptrace.h H. Peter Anvin 2008-01-30 29 };
8fc37f2c include/asm-x86/ptrace.h Thomas Gleixner 2007-10-23 30
8fc37f2c include/asm-x86/ptrace.h Thomas Gleixner 2007-10-23 31 #else /* __i386__ */
8fc37f2c include/asm-x86/ptrace.h Thomas Gleixner 2007-10-23 32
65ea5b03 include/asm-x86/ptrace.h H. Peter Anvin 2008-01-30 @33 struct pt_regs {
e90e147c arch/x86/include/asm/ptrace.h Denys Vlasenko 2015-02-26 34 /*
e90e147c arch/x86/include/asm/ptrace.h Denys Vlasenko 2015-02-26 35 * C ABI says these regs are callee-preserved. They aren't saved on kernel entry
e90e147c arch/x86/include/asm/ptrace.h Denys Vlasenko 2015-02-26 36 * unless syscall needs a complete, fully filled "struct pt_regs".

:::::: The code at line 33 was first introduced by commit
:::::: 65ea5b0349903585bfed9720fa06f5edb4f1cd25 x86: rename the struct pt_regs members for 32/64-bit consistency

:::::: TO: H. Peter Anvin <hpa@xxxxxxxxx>
:::::: CC: Ingo Molnar <mingo@xxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip