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-r0-201713 (attached as .config) compiler: gcc-5 (Debian 5.4.1-2) 5.4.1 20160904 reproduce: # save the attached .config to linux build tree make ARCH=i386 All error/warnings (new ones prefixed by >>): arch/x86/math-emu/fpu_entry.c: In function 'valid_prefix': arch/x86/math-emu/fpu_system.h:50:24: error: request for member 'soft' in something not a structure or union #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:558: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: request for member 'soft' in something not a structure or union #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) ^ arch/x86/math-emu/fpu_entry.c:558:2: note: in expansion of macro 'FPU_code_access_ok' FPU_code_access_ok(1); ^ 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: request for member 'soft' in something not a structure or union #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:602:4: 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: request for member 'soft' in something not a structure or union #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) ^ arch/x86/math-emu/fpu_entry.c:602:4: note: in expansion of macro 'FPU_code_access_ok' FPU_code_access_ok(1); ^ arch/x86/math-emu/fpu_entry.c: In function 'math_abort': arch/x86/math-emu/fpu_system.h:50:24: error: request for member 'soft' in something not a structure or union #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:626:2: note: in expansion of macro 'FPU_EIP' FPU_EIP = FPU_ORIG_EIP; ^ arch/x86/math-emu/fpu_system.h:50:24: error: request for member 'soft' in something not a structure or union #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:626:12: note: in expansion of macro 'FPU_ORIG_EIP' FPU_EIP = FPU_ORIG_EIP; ^ arch/x86/math-emu/fpu_entry.c: In function 'fpregs_soft_set': >> arch/x86/math-emu/fpu_entry.c:646:55: error: request for member 'soft' in something not a structure or union struct swregs_state *s387 = &target->thread.fpu.state.soft; ^ arch/x86/math-emu/fpu_entry.c: In function 'fpregs_soft_get': arch/x86/math-emu/fpu_entry.c:698:55: error: request for member 'soft' in something not a structure or union struct swregs_state *s387 = &target->thread.fpu.state.soft; ^ -- ^ arch/x86/math-emu/errors.c: In function 'set_precision_flag_down': arch/x86/math-emu/fpu_system.h:72:28: error: request for member 'soft' in something not a structure or union #define control_word (I387->soft.cwd) ^ arch/x86/math-emu/errors.c:553:6: note: in expansion of macro 'control_word' if (control_word & CW_Precision) { /* The masked response */ ^ arch/x86/math-emu/fpu_system.h:71:30: error: request for member 'soft' in something not a structure or union #define partial_status (I387->soft.swd) ^ arch/x86/math-emu/errors.c:554:3: note: in expansion of macro 'partial_status' partial_status &= ~SW_C1; ^ arch/x86/math-emu/fpu_system.h:71:30: error: request for member 'soft' in something not a structure or union #define partial_status (I387->soft.swd) ^ arch/x86/math-emu/errors.c:555:3: note: in expansion of macro 'partial_status' partial_status |= SW_Precision; ^ arch/x86/math-emu/errors.c: In function 'denormal_operand': arch/x86/math-emu/fpu_system.h:72:28: error: request for member 'soft' in something not a structure or union #define control_word (I387->soft.cwd) ^ arch/x86/math-emu/errors.c:562:6: note: in expansion of macro 'control_word' if (control_word & CW_Denormal) { /* The masked response */ ^ arch/x86/math-emu/fpu_system.h:71:30: error: request for member 'soft' in something not a structure or union #define partial_status (I387->soft.swd) ^ arch/x86/math-emu/errors.c:563:3: note: in expansion of macro 'partial_status' partial_status |= SW_Denorm_Op; ^ arch/x86/math-emu/errors.c: In function 'arith_overflow': arch/x86/math-emu/fpu_system.h:72:28: error: request for member 'soft' in something not a structure or union #define control_word (I387->soft.cwd) ^ arch/x86/math-emu/errors.c:575:6: note: in expansion of macro 'control_word' if (control_word & CW_Overflow) { ^ arch/x86/math-emu/fpu_system.h:72:28: error: request for member 'soft' in something not a structure or union #define control_word (I387->soft.cwd) ^ arch/x86/math-emu/errors.c:586:6: note: in expansion of macro 'control_word' if (control_word & CW_Overflow) { ^ arch/x86/math-emu/errors.c: In function 'arith_underflow': arch/x86/math-emu/fpu_system.h:72:28: error: request for member 'soft' in something not a structure or union #define control_word (I387->soft.cwd) ^ arch/x86/math-emu/errors.c:603:6: note: in expansion of macro 'control_word' if (control_word & CW_Underflow) { ^ arch/x86/math-emu/fpu_system.h:71:30: error: request for member 'soft' in something not a structure or union #define partial_status (I387->soft.swd) ^ arch/x86/math-emu/errors.c:607:4: note: in expansion of macro 'partial_status' partial_status &= ~SW_C1; /* Round down. */ ^ arch/x86/math-emu/fpu_system.h:72:28: error: request for member 'soft' in something not a structure or union #define control_word (I387->soft.cwd) ^ arch/x86/math-emu/errors.c:618:6: note: in expansion of macro 'control_word' if (control_word & CW_Underflow) { ^ arch/x86/math-emu/errors.c: In function 'FPU_stack_overflow': arch/x86/math-emu/fpu_system.h:72:28: error: request for member 'soft' in something not a structure or union #define control_word (I387->soft.cwd) ^ arch/x86/math-emu/errors.c:631:6: note: in expansion of macro 'control_word' if (control_word & CW_Invalid) { ^ arch/x86/math-emu/fpu_system.h:75:20: error: request for member 'soft' in something not a structure or union #define top (I387->soft.ftop) ^ arch/x86/math-emu/errors.c:633:3: note: in expansion of macro 'top' top--; ^ arch/x86/math-emu/errors.c: In function 'FPU_stack_underflow': arch/x86/math-emu/fpu_system.h:72:28: error: request for member 'soft' in something not a structure or union #define control_word (I387->soft.cwd) ^ arch/x86/math-emu/errors.c:646:6: note: in expansion of macro 'control_word' if (control_word & CW_Invalid) { ^ arch/x86/math-emu/errors.c: In function 'FPU_stack_underflow_i': arch/x86/math-emu/fpu_system.h:72:28: error: request for member 'soft' in something not a structure or union #define control_word (I387->soft.cwd) ^ arch/x86/math-emu/errors.c:660:6: note: in expansion of macro 'control_word' if (control_word & CW_Invalid) { ^ arch/x86/math-emu/errors.c: In function 'FPU_stack_underflow_pop': arch/x86/math-emu/fpu_system.h:72:28: error: request for member 'soft' in something not a structure or union #define control_word (I387->soft.cwd) ^ arch/x86/math-emu/errors.c:674:6: note: in expansion of macro 'control_word' if (control_word & CW_Invalid) { ^ arch/x86/math-emu/errors.c: In function 'real_1op_NaN': >> arch/x86/math-emu/errors.c:407:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ arch/x86/math-emu/errors.c: In function 'real_2op_NaN': arch/x86/math-emu/errors.c:491:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ arch/x86/math-emu/errors.c: In function 'arith_invalid': arch/x86/math-emu/errors.c:507:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ arch/x86/math-emu/errors.c: In function 'FPU_divide_by_zero': arch/x86/math-emu/errors.c:526:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ arch/x86/math-emu/errors.c: In function 'set_precision_flag': arch/x86/math-emu/errors.c:539:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ arch/x86/math-emu/errors.c: In function 'denormal_operand': arch/x86/math-emu/errors.c:569:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ -- In file included from arch/x86/math-emu/fpu_aux.c:13:0: arch/x86/math-emu/status_w.h: In function 'setcc': arch/x86/math-emu/fpu_system.h:71:30: error: request for member 'soft' in something not a structure or union #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: request for member 'soft' in something not a structure or union #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_aux.c: In function 'fclex': arch/x86/math-emu/fpu_system.h:71:30: error: request for member 'soft' in something not a structure or union #define partial_status (I387->soft.swd) ^ arch/x86/math-emu/fpu_aux.c:25:2: note: in expansion of macro 'partial_status' partial_status &= ^ arch/x86/math-emu/fpu_system.h:64:41: error: request for member 'soft' in something not a structure or union #define no_ip_update (*(u_char *)&(I387->soft.no_update)) ^ arch/x86/math-emu/fpu_aux.c:29:2: note: in expansion of macro 'no_ip_update' no_ip_update = 1; ^ arch/x86/math-emu/fpu_aux.c: In function 'finit': >> arch/x86/math-emu/fpu_aux.c:55:46: error: request for member 'soft' in something not a structure or union fpstate_init_soft(¤t->thread.fpu.state.soft); ^ In file included from arch/x86/math-emu/fpu_aux.c:13:0: arch/x86/math-emu/fpu_aux.c: In function 'finit_': arch/x86/math-emu/fpu_system.h:65:36: error: request for member 'soft' in something not a structure or union #define FPU_rm (*(u_char *)&(I387->soft.rm)) ^ arch/x86/math-emu/fpu_aux.c:72:15: note: in expansion of macro 'FPU_rm' (finit_table[FPU_rm]) (); ^ arch/x86/math-emu/fpu_aux.c: In function 'fstsw_ax': arch/x86/math-emu/fpu_system.h:50:24: error: request for member 'soft' in something not a structure or union #define FPU_info (I387->soft.info) ^ arch/x86/math-emu/fpu_system.h:55:20: note: in expansion of macro 'FPU_info' #define FPU_EAX (FPU_info->regs->ax) ^ arch/x86/math-emu/fpu_aux.c:77:13: note: in expansion of macro 'FPU_EAX' *(short *)&FPU_EAX = status_word(); ^ arch/x86/math-emu/fpu_system.h:71:30: error: request for member 'soft' in something not a structure or union #define partial_status (I387->soft.swd) ^ arch/x86/math-emu/status_w.h:50:5: note: in expansion of macro 'partial_status' ((partial_status & ~SW_Top & 0xffff) | ((top << SW_Top_Shift) & SW_Top)) ^ arch/x86/math-emu/fpu_aux.c:77:23: note: in expansion of macro 'status_word' *(short *)&FPU_EAX = status_word(); ^ arch/x86/math-emu/fpu_system.h:75:20: error: request for member 'soft' in something not a structure or union #define top (I387->soft.ftop) ^ arch/x86/math-emu/status_w.h:50:44: note: in expansion of macro 'top' ((partial_status & ~SW_Top & 0xffff) | ((top << SW_Top_Shift) & SW_Top)) ^ arch/x86/math-emu/fpu_aux.c:77:23: note: in expansion of macro 'status_word' *(short *)&FPU_EAX = status_word(); ^ arch/x86/math-emu/fpu_system.h:64:41: error: request for member 'soft' in something not a structure or union #define no_ip_update (*(u_char *)&(I387->soft.no_update)) ^ arch/x86/math-emu/fpu_aux.c:78:2: note: in expansion of macro 'no_ip_update' no_ip_update = 1; ^ arch/x86/math-emu/fpu_aux.c: In function 'fstsw_': arch/x86/math-emu/fpu_system.h:65:36: error: request for member 'soft' in something not a structure or union #define FPU_rm (*(u_char *)&(I387->soft.rm)) ^ arch/x86/math-emu/fpu_aux.c:88:15: note: in expansion of macro 'FPU_rm' (fstsw_table[FPU_rm]) (); ^ arch/x86/math-emu/fpu_aux.c: In function 'fp_nop': arch/x86/math-emu/fpu_system.h:65:36: error: request for member 'soft' in something not a structure or union #define FPU_rm (*(u_char *)&(I387->soft.rm)) ^ arch/x86/math-emu/fpu_aux.c:98:16: note: in expansion of macro 'FPU_rm' (fp_nop_table[FPU_rm]) (); ^ arch/x86/math-emu/fpu_aux.c: In function 'fld_i_': arch/x86/math-emu/fpu_system.h:65:36: error: request for member 'soft' in something not a structure or union #define FPU_rm (*(u_char *)&(I387->soft.rm)) ^ arch/x86/math-emu/fpu_aux.c:113:6: note: in expansion of macro 'FPU_rm' i = FPU_rm; ^ arch/x86/math-emu/fpu_system.h:74:25: error: request for member 'soft' in something not a structure or union #define registers (I387->soft.st_space) ^ arch/x86/math-emu/fpu_emu.h:144:35: note: in expansion of macro 'registers' #define register_base ((u_char *) registers ) ^ arch/x86/math-emu/fpu_emu.h:146:38: note: in expansion of macro 'register_base' #define st(x) ( * ((FPU_REG *)( register_base + 10 * ((top+x) & 7) )) ) ^ arch/x86/math-emu/fpu_aux.c:115:13: note: in expansion of macro 'st' reg_copy(&st(i), st_new_ptr); ^ arch/x86/math-emu/fpu_system.h:75:20: error: request for member 'soft' in something not a structure or union #define top (I387->soft.ftop) ^ arch/x86/math-emu/fpu_emu.h:146:61: note: in expansion of macro 'top' #define st(x) ( * ((FPU_REG *)( register_base + 10 * ((top+x) & 7) )) ) ^ arch/x86/math-emu/fpu_aux.c:115:13: note: in expansion of macro 'st' reg_copy(&st(i), st_new_ptr); ^ arch/x86/math-emu/fpu_system.h:75:20: error: request for member 'soft' in something not a structure or union #define top (I387->soft.ftop) ^ arch/x86/math-emu/fpu_emu.h:156:18: note: in expansion of macro 'top' #define push() { top--; } ^ arch/x86/math-emu/fpu_aux.c:117:3: note: in expansion of macro 'push' push(); ^ arch/x86/math-emu/fpu_system.h:72:28: error: request for member 'soft' in something not a structure or union #define control_word (I387->soft.cwd) ^ arch/x86/math-emu/fpu_aux.c:120:7: note: in expansion of macro 'control_word' if (control_word & CW_Invalid) { .. vim +/soft +646 arch/x86/math-emu/fpu_entry.c ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 620 } ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 621 } ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 622 } ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 623 ae6af41f arch/x86/math-emu/fpu_entry.c Tejun Heo 2009-02-09 624 void math_abort(struct math_emu_info *info, unsigned int signal) ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 625 { ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 @626 FPU_EIP = FPU_ORIG_EIP; 51e7dc70 arch/x86/math-emu/fpu_entry.c Srikar Dronamraju 2012-03-12 627 current->thread.trap_nr = X86_TRAP_MF; ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 628 current->thread.error_code = 0; ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 629 send_sig(signal, current, 1); ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 630 RE_ENTRANT_CHECK_OFF; ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 631 __asm__("movl %0,%%esp ; ret": :"g"(((long)info) - 4)); ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 632 #ifdef PARANOID ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 633 printk("ERROR: wm-FPU-emu math_abort failed!\n"); ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 634 #endif /* PARANOID */ ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 635 } ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 636 c47ada30 arch/x86/math-emu/fpu_entry.c Ingo Molnar 2015-04-30 637 #define S387 ((struct swregs_state *)s387) ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 638 #define sstatus_word() \ ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 639 ((S387->swd & ~SW_Top & 0xffff) | ((S387->ftop << SW_Top_Shift) & SW_Top)) ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 640 ff0ebb23 arch/x86/math-emu/fpu_entry.c Roland McGrath 2008-01-30 641 int fpregs_soft_set(struct task_struct *target, ff0ebb23 arch/x86/math-emu/fpu_entry.c Roland McGrath 2008-01-30 642 const struct user_regset *regset, ff0ebb23 arch/x86/math-emu/fpu_entry.c Roland McGrath 2008-01-30 643 unsigned int pos, unsigned int count, ff0ebb23 arch/x86/math-emu/fpu_entry.c Roland McGrath 2008-01-30 644 const void *kbuf, const void __user *ubuf) ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 645 { c47ada30 arch/x86/math-emu/fpu_entry.c Ingo Molnar 2015-04-30 @646 struct swregs_state *s387 = &target->thread.fpu.state.soft; ff0ebb23 arch/x86/math-emu/fpu_entry.c Roland McGrath 2008-01-30 647 void *space = s387->st_space; ff0ebb23 arch/x86/math-emu/fpu_entry.c Roland McGrath 2008-01-30 648 int ret; ^1da177e arch/i386/math-emu/fpu_entry.c Linus Torvalds 2005-04-16 649 int offset, other, i, tags, regnr, tag, newtop; :::::: The code at line 646 was first introduced by commit :::::: c47ada305de3803517ae64aa50686f644c5456fa x86/fpu: Harmonize FPU register state types :::::: TO: Ingo Molnar <mingo@xxxxxxxxxx> :::::: CC: Ingo Molnar <mingo@xxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip