OSDN Git Service

target/i386: do not set LM for 32-bit emulation "-cpu host/max"
authorPaolo Bonzini <pbonzini@redhat.com>
Mon, 25 Jan 2021 22:04:01 +0000 (23:04 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 8 Feb 2021 13:43:54 +0000 (14:43 +0100)
commit5ea9e9e239db83391a39c09f1de63c4099c20df5
tree88c60ad04c9f24c19444f06fa39873ba4b9711b8
parentfff7111fb90e93b148b2196175fd656b2bfea4cd
target/i386: do not set LM for 32-bit emulation "-cpu host/max"

32-bit targets by definition do not support long mode; therefore, the
bit must be masked in the features supported by the accelerator.

As a side effect, this avoids setting up the 0x80000008 CPUID leaf
for

   qemu-system-i386 -cpu host

which since commit 5a140b255d ("x86/cpu: Use max host physical address
if -cpu max option is applied") would have printed this error:

  qemu-system-i386: phys-bits should be between 32 and 36  (but is 48)

Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
target/i386/cpu.c