Hi Kees, [auto build test ERROR on kvm/linux-next] [also build test ERROR on v4.11-rc4 next-20170330] [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/Kees-Cook/x86-fpu-move-FPU-state-into-separate-cache/20170331-110507 base: https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next config: i386-randconfig-s0-201713 (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=i386 All error/warnings (new ones prefixed by >>): In file included from arch/x86/include/asm/cpufeature.h:4:0, from arch/x86/include/asm/thread_info.h:52, from include/linux/thread_info.h:25, from arch/x86/include/asm/preempt.h:6, from include/linux/preempt.h:80, from include/linux/spinlock.h:50, from include/linux/rcupdate.h:38, from include/linux/init_task.h:4, from init/init_task.c:1: >> arch/x86/include/asm/processor.h:805:17: error: 'init_fpregs_state' undeclared here (not in a function) .fpu.state = &init_fpregs_state, \ ^ >> include/linux/init_task.h:255:13: note: in expansion of macro 'INIT_THREAD' .thread = INIT_THREAD, \ ^~~~~~~~~~~ >> init/init_task.c:19:32: note: in expansion of macro 'INIT_TASK' struct task_struct init_task = INIT_TASK(init_task); ^~~~~~~~~ -- In file included from arch/x86/math-emu/fpu_entry.c:35:0: arch/x86/math-emu/status_w.h: In function 'setcc': >> arch/x86/math-emu/fpu_system.h:71:30: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define partial_status (I387->soft.swd) ^ -> >> arch/x86/math-emu/status_w.h:53:2: note: in expansion of macro 'partial_status' partial_status &= ~(SW_C0 | SW_C1 | SW_C2 | SW_C3); ^~~~~~~~~~~~~~ >> arch/x86/math-emu/fpu_system.h:71:30: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define partial_status (I387->soft.swd) ^ -> arch/x86/math-emu/status_w.h:54:2: note: in expansion of macro 'partial_status' partial_status |= (cc) & (SW_C0 | SW_C1 | SW_C2 | SW_C3); ^~~~~~~~~~~~~~ arch/x86/math-emu/fpu_entry.c: In function 'math_emulate': arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> >> arch/x86/math-emu/fpu_entry.c:126:2: note: in expansion of macro 'FPU_info' FPU_info = info; ^~~~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> >> arch/x86/math-emu/fpu_system.h:58:24: note: in expansion of macro 'FPU_info' #define FPU_ORIG_EIP (FPU_info->___orig_eip) ^~~~~~~~ >> arch/x86/math-emu/fpu_entry.c:128:2: note: in expansion of macro 'FPU_ORIG_EIP' FPU_ORIG_EIP = FPU_EIP; ^~~~~~~~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:57:20: note: in expansion of macro 'FPU_info' #define FPU_EIP (FPU_info->regs->ip) ^~~~~~~~ >> arch/x86/math-emu/fpu_entry.c:128:17: note: in expansion of macro 'FPU_EIP' FPU_ORIG_EIP = FPU_EIP; ^~~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:56:22: note: in expansion of macro 'FPU_info' #define FPU_EFLAGS (FPU_info->regs->flags) ^~~~~~~~ >> arch/x86/math-emu/fpu_entry.c:130:7: note: in expansion of macro 'FPU_EFLAGS' if ((FPU_EFLAGS & 0x00020000) != 0) { ^~~~~~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:57:20: note: in expansion of macro 'FPU_info' #define FPU_EIP (FPU_info->regs->ip) ^~~~~~~~ arch/x86/math-emu/fpu_entry.c:133:3: note: in expansion of macro 'FPU_EIP' FPU_EIP += code_base = FPU_CS << 4; ^~~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:52:41: note: in expansion of macro 'FPU_info' #define FPU_CS (*(unsigned short *) &(FPU_info->regs->cs)) ^~~~~~~~ >> arch/x86/math-emu/fpu_entry.c:133:26: note: in expansion of macro 'FPU_CS' FPU_EIP += code_base = FPU_CS << 4; ^~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:52:41: note: in expansion of macro 'FPU_info' #define FPU_CS (*(unsigned short *) &(FPU_info->regs->cs)) ^~~~~~~~ arch/x86/math-emu/fpu_entry.c:135:13: note: in expansion of macro 'FPU_CS' } else if (FPU_CS == __USER_CS && FPU_DS == __USER_DS) { ^~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:54:41: note: in expansion of macro 'FPU_info' #define FPU_DS (*(unsigned short *) &(FPU_info->regs->ds)) ^~~~~~~~ >> arch/x86/math-emu/fpu_entry.c:135:36: note: in expansion of macro 'FPU_DS' } else if (FPU_CS == __USER_CS && FPU_DS == __USER_DS) { ^~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:52:41: note: in expansion of macro 'FPU_info' #define FPU_CS (*(unsigned short *) &(FPU_info->regs->cs)) ^~~~~~~~ arch/x86/math-emu/fpu_entry.c:137:13: note: in expansion of macro 'FPU_CS' } else if (FPU_CS == __KERNEL_CS) { ^~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:52:41: note: in expansion of macro 'FPU_info' #define FPU_CS (*(unsigned short *) &(FPU_info->regs->cs)) ^~~~~~~~ arch/x86/math-emu/fpu_entry.c:138:40: note: in expansion of macro 'FPU_CS' printk("math_emulate: %04x:%08lx\n", FPU_CS, FPU_EIP); ^~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:57:20: note: in expansion of macro 'FPU_info' #define FPU_EIP (FPU_info->regs->ip) ^~~~~~~~ arch/x86/math-emu/fpu_entry.c:138:48: note: in expansion of macro 'FPU_EIP' printk("math_emulate: %04x:%08lx\n", FPU_CS, FPU_EIP); ^~~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:52:41: note: in expansion of macro 'FPU_info' #define FPU_CS (*(unsigned short *) &(FPU_info->regs->cs)) ^~~~~~~~ arch/x86/math-emu/fpu_entry.c:142:8: note: in expansion of macro 'FPU_CS' if ((FPU_CS & 4) != 4) { /* Must be in the LDT */ ^~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_entry.c:146:15: note: in expansion of macro 'FPU_info' math_abort(FPU_info, SIGILL); ^~~~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:52:41: note: in expansion of macro 'FPU_info' #define FPU_CS (*(unsigned short *) &(FPU_info->regs->cs)) ^~~~~~~~ arch/x86/math-emu/fpu_entry.c:149:44: note: in expansion of macro 'FPU_CS' code_descriptor = FPU_get_ldt_descriptor(FPU_CS); ^~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:57:20: note: in expansion of macro 'FPU_info' #define FPU_EIP (FPU_info->regs->ip) ^~~~~~~~ arch/x86/math-emu/fpu_entry.c:158:3: note: in expansion of macro 'FPU_EIP' FPU_EIP += code_base = SEG_BASE_ADDR(code_descriptor); ^~~~~~~ arch/x86/math-emu/fpu_system.h:60:38: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_lookahead (I387->soft.lookahead) ^ -> >> arch/x86/math-emu/fpu_entry.c:167:2: note: in expansion of macro 'FPU_lookahead' FPU_lookahead = !(FPU_EFLAGS & X86_EFLAGS_TF); ^~~~~~~~~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:56:22: note: in expansion of macro 'FPU_info' #define FPU_EFLAGS (FPU_info->regs->flags) ^~~~~~~~ arch/x86/math-emu/fpu_entry.c:167:20: note: in expansion of macro 'FPU_EFLAGS' FPU_lookahead = !(FPU_EFLAGS & X86_EFLAGS_TF); ^~~~~~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:57:20: note: in expansion of macro 'FPU_info' #define FPU_EIP (FPU_info->regs->ip) ^~~~~~~~ arch/x86/math-emu/fpu_entry.c:169:49: note: in expansion of macro 'FPU_EIP' if (!valid_prefix(&byte1, (u_char __user **) & FPU_EIP, ^~~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_entry.c:178:14: note: in expansion of macro 'FPU_info' math_abort(FPU_info, SIGILL); ^~~~~~~~ arch/x86/math-emu/fpu_system.h:64:41: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define no_ip_update (*(u_char *)&(I387->soft.no_update)) ^ -> >> arch/x86/math-emu/fpu_entry.c:183:2: note: in expansion of macro 'no_ip_update' no_ip_update = 0; ^~~~~~~~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:57:20: note: in expansion of macro 'FPU_info' #define FPU_EIP (FPU_info->regs->ip) ^~~~~~~~ arch/x86/math-emu/fpu_entry.c:185:2: note: in expansion of macro 'FPU_EIP' FPU_EIP++; /* We have fetched the prefix and first code bytes. */ ^~~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:57:20: note: in expansion of macro 'FPU_info' #define FPU_EIP (FPU_info->regs->ip) ^~~~~~~~ arch/x86/math-emu/fpu_entry.c:190:7: note: in expansion of macro 'FPU_EIP' if (FPU_EIP > code_limit) ^~~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_entry.c:191:15: note: in expansion of macro 'FPU_info' math_abort(FPU_info, SIGSEGV); ^~~~~~~~ >> arch/x86/math-emu/fpu_system.h:71:30: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define partial_status (I387->soft.swd) ^ -> >> arch/x86/math-emu/fpu_entry.c:196:8: note: in expansion of macro 'partial_status' if (partial_status & SW_Summary) ^~~~~~~~~~~~~~ arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_entry.c:203:14: note: in expansion of macro 'FPU_info' math_abort(FPU_info, SIGILL); ^~~~~~~~ In file included from include/asm-generic/bug.h:4:0, from arch/x86/include/asm/bug.h:35, from include/linux/bug.h:4, from include/linux/signal.h:4, from arch/x86/math-emu/fpu_entry.c:27: arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> include/linux/compiler.h:178:40: note: in definition of macro 'likely' # define likely(x) __builtin_expect(!!(x), 1) ^ >> arch/x86/include/asm/uaccess.h:100:10: note: in expansion of macro '__range_not_ok' likely(!__range_not_ok(addr, size, user_addr_max())); \ ^~~~~~~~~~~~~~ >> arch/x86/math-emu/fpu_system.h:80:36: note: in expansion of macro 'access_ok' #define FPU_access_ok(x,y,z) if ( !access_ok(x,y,z) ) \ ^~~~~~~~~ >> arch/x86/math-emu/fpu_system.h:95:31: note: in expansion of macro 'FPU_access_ok' #define FPU_code_access_ok(z) FPU_access_ok(VERIFY_READ,(void __user *)FPU_EIP,z) ^~~~~~~~~~~~~ arch/x86/math-emu/fpu_system.h:57:20: note: in expansion of macro 'FPU_info' #define FPU_EIP (FPU_info->regs->ip) ^~~~~~~~ >> arch/x86/math-emu/fpu_system.h:95:72: note: in expansion of macro 'FPU_EIP' #define FPU_code_access_ok(z) FPU_access_ok(VERIFY_READ,(void __user *)FPU_EIP,z) ^~~~~~~ >> arch/x86/math-emu/fpu_entry.c:208:2: note: in expansion of macro 'FPU_code_access_ok' FPU_code_access_ok(1); ^~~~~~~~~~~~~~~~~~ In file included from arch/x86/math-emu/fpu_entry.c:35:0: arch/x86/math-emu/fpu_system.h:50:24: error: 'get_current()->thread.fpu.state' is a pointer; did you mean to use '->'? #define FPU_info (I387->soft.info) ^ -> arch/x86/math-emu/fpu_system.h:81:16: note: in expansion of macro 'FPU_info' math_abort(FPU_info,SIGSEGV) ^~~~~~~~ >> arch/x86/math-emu/fpu_system.h:95:31: note: in expansion of macro 'FPU_access_ok' #define FPU_code_access_ok(z) FPU_access_ok(VERIFY_READ,(void __user *)FPU_EIP,z) ^~~~~~~~~~~~~ .. vim +/init_fpregs_state +805 arch/x86/include/asm/processor.h 799 800 #define INIT_THREAD { \ 801 .sp0 = TOP_OF_INIT_STACK, \ 802 .sysenter_cs = __KERNEL_CS, \ 803 .io_bitmap_ptr = NULL, \ 804 .addr_limit = KERNEL_DS, \ > 805 .fpu.state = &init_fpregs_state, \ 806 } 807 808 /* --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip