Re: [PATCH v4 03/17] x86/mpx, x86/insn: Relocate insn util functions to a new insn-kernel
Hi Ricardo, [auto build test ERROR on tip/auto-latest] [also build test ERROR on v4.10 next-20170223] [cannot apply to tip/x86/core] [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/20170223-145356 config: x86_64-randconfig-ne0-02231751 (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 Note: the linux-review/Ricardo-Neri/x86-Enable-User-Mode-Instruction-Prevention/20170223-145356 HEAD 34056233e7c134c8c4c6d8308592d2e0aed67f1b builds fine. It only hurts bisectibility. All errors (new ones prefixed by >>): >> arch/x86/lib/insn-eval.c:106:21: error: static declaration of >> 'insn_get_addr_ref' follows non-static declaration static void __user *insn_get_addr_ref(struct insn *insn, struct pt_regs *regs) ^ In file included from arch/x86/lib/insn-eval.c:10:0: arch/x86/include/asm/insn-eval.h:14:14: note: previous declaration of 'insn_get_addr_ref' was here void __user *insn_get_addr_ref(struct insn *insn, struct pt_regs *regs); ^ arch/x86/lib/insn-eval.c:106:21: warning: 'insn_get_addr_ref' defined but not used [-Wunused-function] static void __user *insn_get_addr_ref(struct insn *insn, struct pt_regs *regs) ^ vim +/insn_get_addr_ref +106 arch/x86/lib/insn-eval.c 100 101 /* 102 * return the address being referenced be instruction 103 * for rm=3 returning the content of the rm reg 104 * for rm!=3 calculates the address using SIB and Disp 105 */ > 106 static void __user *insn_get_addr_ref(struct insn *insn, struct pt_regs > *regs) 107 { 108 unsigned long addr, base, indx; 109 int addr_offset, base_offset, indx_offset; --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: application/gzip
Re: [v2 6/7] x86/traps: Fixup general protection faults caused by UMIP
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 ^ 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
Re: [v2 7/7] x86: Enable User-Mode Instruction Prevention
Hi Ricardo, [auto build test WARNING on tip/auto-latest] [also build test WARNING 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-acpi-redef (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 warnings (new ones prefixed by >>): arch/x86/kernel/umip.c: In function '__identify_insn': >> arch/x86/kernel/umip.c:65:1: warning: control reaches end of non-void >> function [-Wreturn-type] } ^ vim +65 arch/x86/kernel/umip.c 78301541 Ricardo Neri 2016-12-23 49return UMIP_SGDT; 78301541 Ricardo Neri 2016-12-23 50case 1: 78301541 Ricardo Neri 2016-12-23 51return UMIP_SIDT; 78301541 Ricardo Neri 2016-12-23 52case 4: 78301541 Ricardo Neri 2016-12-23 53return UMIP_SMSW; 78301541 Ricardo Neri 2016-12-23 54default: 78301541 Ricardo Neri 2016-12-23 55return -EINVAL; 78301541 Ricardo Neri 2016-12-23 56} 78301541 Ricardo Neri 2016-12-23 57} else if (insn->opcode.bytes[1] == 0x0) { 78301541 Ricardo Neri 2016-12-23 58if (X86_MODRM_REG(insn->modrm.value) == 0) 78301541 Ricardo Neri 2016-12-23 59return UMIP_SLDT; 78301541 Ricardo Neri 2016-12-23 60else if (X86_MODRM_REG(insn->modrm.value) == 1) 78301541 Ricardo Neri 2016-12-23 61return UMIP_STR; 78301541 Ricardo Neri 2016-12-23 62else 78301541 Ricardo Neri 2016-12-23 63return -EINVAL; 78301541 Ricardo Neri 2016-12-23 64} 78301541 Ricardo Neri 2016-12-23 @65 } 78301541 Ricardo Neri 2016-12-23 66 78301541 Ricardo Neri 2016-12-23 67 static int __emulate_umip_insn(struct insn *insn, enum umip_insn umip_inst, 78301541 Ricardo Neri 2016-12-23 68 unsigned char *data, int *data_size) 78301541 Ricardo Neri 2016-12-23 69 { 78301541 Ricardo Neri 2016-12-23 70unsigned long const *dummy_base_addr; 78301541 Ricardo Neri 2016-12-23 71unsigned short dummy_limit = 0; 78301541 Ricardo Neri 2016-12-23 72unsigned short dummy_value = 0; 78301541 Ricardo Neri 2016-12-23 73 :: The code at line 65 was first introduced by commit :: 7830154191c35fde49ef59c2b9328f6b32203be4 x86: Add emulation code for UMIP instructions :: TO: Ricardo Neri:: CC: 0day robot --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: application/gzip