Re: Bug: arch/x86/kvm/x86.c:3241: Error: bad register name `%dil'

From: David Woodhouse
Date: Fri Nov 19 2021 - 05:43:11 EST


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!

Attachment: smime.p7s
Description: S/MIME cryptographic signature