tree: https://git.kernel.org/pub/scm/linux/kernel/git/luto/linux.git x86/no_sce head: bfaecaf0dad8f61e80285125f4895c9737e3d6d8 commit: bf85057ed696c8996a5f5b924a3fd58698450511 [1/2] x86/syscall: Remove the IA32_EMULATION=n compat syscall code config: x86_64-randconfig-c001-20210929 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://git.kernel.org/pub/scm/linux/kernel/git/luto/linux.git/commit/?id=bf85057ed696c8996a5f5b924a3fd58698450511 git remote add luto https://git.kernel.org/pub/scm/linux/kernel/git/luto/linux.git git fetch --no-tags luto x86/no_sce git checkout bf85057ed696c8996a5f5b924a3fd58698450511 # save the attached .config to linux build tree mkdir build_dir make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash arch/x86/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): arch/x86/entry/common.c: In function 'do_fast_syscall_32': >> arch/x86/entry/common.c:157:6: error: 'vdso_image_32' undeclared (first use in this function); did you mean 'vdso_image_64'? 157 | vdso_image_32.sym_int80_landing_pad; | ^~~~~~~~~~~~~ | vdso_image_64 arch/x86/entry/common.c:157:6: note: each undeclared identifier is reported only once for each function it appears in arch/x86/entry/common.c: At top level: arch/x86/entry/common.c:202:24: warning: no previous prototype for 'do_SYSENTER_32' [-Wmissing-prototypes] 202 | __visible noinstr long do_SYSENTER_32(struct pt_regs *regs) | ^~~~~~~~~~~~~~ -- arch/x86/kernel/cpu/common.c: In function 'syscall_init': >> arch/x86/kernel/cpu/common.c:1753:35: error: 'entry_SYSCALL_compat' undeclared (first use in this function); did you mean 'entry_SYSCALL_64'? 1753 | wrmsrl(MSR_CSTAR, (unsigned long)entry_SYSCALL_compat); | ^~~~~~~~~~~~~~~~~~~~ | entry_SYSCALL_64 arch/x86/kernel/cpu/common.c:1753:35: note: each undeclared identifier is reported only once for each function it appears in vim +157 arch/x86/entry/common.c 8b13c2552ffc8e Andy Lutomirski 2015-10-05 148 5f310f739b4cc3 Andy Lutomirski 2015-10-05 149 /* Returns 0 to return using IRET or 1 to return using SYSEXIT/SYSRETL. */ 8f159f1dfa1ea2 Thomas Gleixner 2020-03-10 150 __visible noinstr long do_fast_syscall_32(struct pt_regs *regs) 710246df580411 Andy Lutomirski 2015-10-05 151 { 710246df580411 Andy Lutomirski 2015-10-05 152 /* 710246df580411 Andy Lutomirski 2015-10-05 153 * Called using the internal vDSO SYSENTER/SYSCALL32 calling 710246df580411 Andy Lutomirski 2015-10-05 154 * convention. Adjust regs so it looks like we entered using int80. 710246df580411 Andy Lutomirski 2015-10-05 155 */ 710246df580411 Andy Lutomirski 2015-10-05 156 unsigned long landing_pad = (unsigned long)current->mm->context.vdso + 710246df580411 Andy Lutomirski 2015-10-05 @157 vdso_image_32.sym_int80_landing_pad; 710246df580411 Andy Lutomirski 2015-10-05 158 710246df580411 Andy Lutomirski 2015-10-05 159 /* 710246df580411 Andy Lutomirski 2015-10-05 160 * SYSENTER loses EIP, and even SYSCALL32 needs us to skip forward 710246df580411 Andy Lutomirski 2015-10-05 161 * so that 'regs->ip -= 2' lands back on an int $0x80 instruction. 710246df580411 Andy Lutomirski 2015-10-05 162 * Fix it up. 710246df580411 Andy Lutomirski 2015-10-05 163 */ 710246df580411 Andy Lutomirski 2015-10-05 164 regs->ip = landing_pad; 710246df580411 Andy Lutomirski 2015-10-05 165 0b085e68f40720 Thomas Gleixner 2020-07-23 166 /* Invoke the syscall. If it failed, keep it simple: use IRET. */ 0b085e68f40720 Thomas Gleixner 2020-07-23 167 if (!__do_fast_syscall_32(regs)) 8f159f1dfa1ea2 Thomas Gleixner 2020-03-10 168 return 0; 7841b408717d4c Andy Lutomirski 2015-10-05 169 :::::: The code at line 157 was first introduced by commit :::::: 710246df58041106b7de645f4b45770f8a59a269 x86/entry: Add C code for fast system call entries :::::: TO: Andy Lutomirski :::::: CC: Ingo Molnar --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org