• Wanpeng Li's avatar
    kvm: x86: fix x86 eflags fixed bit · 35fd68a3
    Wanpeng Li authored
    Guest can't be booted w/ ept=0, there is a message dumped as below:
    
    If you're running a guest on an Intel machine without unrestricted mode
    support, the failure can be most likely due to the guest entering an invalid
    state for Intel VT. For example, the guest maybe running in big real mode
    which is not supported on less recent Intel processors.
    
    EAX=00000011 EBX=f000d2f6 ECX=00006cac EDX=000f8956
    ESI=bffbdf62 EDI=00000000 EBP=00006c68 ESP=00006c68
    EIP=0000d187 EFL=00000004 [-----P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
    ES =e000 000e0000 ffffffff 00809300 DPL=0 DS16 [-WA]
    CS =f000 000f0000 ffffffff 00809b00 DPL=0 CS16 [-RA]
    SS =0000 00000000 ffffffff 00809300 DPL=0 DS16 [-WA]
    DS =0000 00000000 ffffffff 00809300 DPL=0 DS16 [-WA]
    FS =0000 00000000 ffffffff 00809300 DPL=0 DS16 [-WA]
    GS =0000 00000000 ffffffff 00809300 DPL=0 DS16 [-WA]
    LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
    TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
    GDT=     000f6a80 00000037
    IDT=     000f6abe 00000000
    CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
    DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
    DR6=00000000ffff0ff0 DR7=0000000000000400
    EFER=0000000000000000
    Code=01 1e b8 6a 2e 0f 01 16 74 6a 0f 20 c0 66 83 c8 01 0f 22 c0 <66> ea 8f d1 0f 00 08 00 b8 10 00 00 00 8e d8 8e c0 8e d0 8e e0 8e e8 89 c8 ff e2 89 c1 b8X
    
    X86 eflags bit 1 is fixed set, which means that 1 << 1 is set instead of 1,
    this patch fix it.
    Signed-off-by: default avatarWanpeng Li <wanpeng.li@linux.intel.com>
    Message-Id: <1428473294-6633-1-git-send-email-wanpeng.li@linux.intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    35fd68a3
emulate.c 133 KB