On Fri, 2021-11-19 at 11:33 +0100, H. Nikolaus Schaller wrote:
Hi Paolo and David, I have a strange compile error which appeared in v5.15.3:
CALL scripts/checksyscalls.sh - due to target missing CALL scripts/atomic/check-atomics.sh - due to target missing CHK include/generated/compile.h - due to compile.h not in $(targets) CC arch/x86/kvm/x86.o - due to target missing arch/x86/kvm/x86.c: Assembler messages: arch/x86/kvm/x86.c:3241: Error: bad register name `%dil' scripts/Makefile.build:277: recipe for target 'arch/x86/kvm/x86.o' failed make[3]: *** [arch/x86/kvm/x86.o] Error 1 scripts/Makefile.build:540: recipe for target 'arch/x86/kvm' failed make[2]: *** [arch/x86/kvm] Error 2 Makefile:1868: recipe for target 'arch/x86' failed make[1]: *** [arch/x86] Error 2 Makefile:350: recipe for target '__build_one_by_one' failed make: *** [__build_one_by_one] Error 2
My (cross-)compiler is a gcc 6.3.0 for 32 bit x86.
It is neither with v5.15.2 nor v5.16-rc1 nor v5.14.20.
The code line 3241 is:
asm volatile("1: xchgb %0, %2\n" "xor %1, %1\n" "2:\n" _ASM_EXTABLE_UA(1b, 2b) : "+r" (st_preempted), "+&r" (err) : "m" (st->preempted));
This seems to have been introduced by:
9d12bf19b278 KVM: x86: Fix recording of guest steal time / preempted status
but it is a backport of commit 7e2175ebd695f17860c5bd4ad7616cce12ed4591 which was also merged to 5.14.20.
Hi Nikolaus, thanks for the report, and sorry for the inconvenience.
Please could you confirm that it's fixed by https://git.kernel.org/pub/scm/virt/kvm/kvm.git/commit/?id=964b7aa0b040
Thanks!