[peterz-queue:x86/wip.extable 6/22] arch/x86/entry/entry_32.S:989: Error: unknown pseudo-op: `.lasm_iret_error'

From: kernel test robot
Date: Fri Nov 05 2021 - 07:13:55 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git x86/wip.extable
head: a4d149db054a77aa35b04bb088f749cbb9a2edea
commit: f42d7634debdff653b927335ebad9c20fdcc6e87 [6/22] x86,entry_32: Remove .fixup usage
config: i386-randconfig-m021-20211105 (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/peterz/queue.git/commit/?id=f42d7634debdff653b927335ebad9c20fdcc6e87
git remote add peterz-queue https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
git fetch --no-tags peterz-queue x86/wip.extable
git checkout f42d7634debdff653b927335ebad9c20fdcc6e87
# save the attached .config to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

arch/x86/entry/entry_32.S: Assembler messages:
>> arch/x86/entry/entry_32.S:989: Error: unknown pseudo-op: `.lasm_iret_error'


vim +989 arch/x86/entry/entry_32.S

930
931 /*
932 * 32-bit legacy system call entry.
933 *
934 * 32-bit x86 Linux system calls traditionally used the INT $0x80
935 * instruction. INT $0x80 lands here.
936 *
937 * This entry point can be used by any 32-bit perform system calls.
938 * Instances of INT $0x80 can be found inline in various programs and
939 * libraries. It is also used by the vDSO's __kernel_vsyscall
940 * fallback for hardware that doesn't support a faster entry method.
941 * Restarted 32-bit system calls also fall back to INT $0x80
942 * regardless of what instruction was originally used to do the system
943 * call. (64-bit programs can use INT $0x80 as well, but they can
944 * only run on 64-bit kernels and therefore land in
945 * entry_INT80_compat.)
946 *
947 * This is considered a slow path. It is not used by most libc
948 * implementations on modern hardware except during process startup.
949 *
950 * Arguments:
951 * eax system call number
952 * ebx arg1
953 * ecx arg2
954 * edx arg3
955 * esi arg4
956 * edi arg5
957 * ebp arg6
958 */
959 SYM_FUNC_START(entry_INT80_32)
960 ASM_CLAC
961 pushl %eax /* pt_regs->orig_ax */
962
963 SAVE_ALL pt_regs_ax=$-ENOSYS switch_stacks=1 /* save rest */
964
965 movl %esp, %eax
966 call do_int80_syscall_32
967 .Lsyscall_32_done:
968 STACKLEAK_ERASE
969
970 restore_all_switch_stack:
971 SWITCH_TO_ENTRY_STACK
972 CHECK_AND_APPLY_ESPFIX
973
974 /* Switch back to user CR3 */
975 SWITCH_TO_USER_CR3 scratch_reg=%eax
976
977 BUG_IF_WRONG_CR3
978
979 /* Restore user state */
980 RESTORE_REGS pop=4 # skip orig_eax/error_code
981 .Lirq_return:
982 /*
983 * ARCH_HAS_MEMBARRIER_SYNC_CORE rely on IRET core serialization
984 * when returning from IPI handler and when returning from
985 * scheduler to user-space.
986 */
987 iret
988
> 989 .Lasm_iret_error
990 pushl $0 # no error code
991 pushl $iret_error
992

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip