This patchset fixes several bugs in the emulator and in vmx invalid guest state emulation. They are sufficient to boot several Linux and Windows guests, so the last patch turns vmx invalid guest state emulation on by default. The first patch is a little hacky; we should try to emulate svm here by making cpl a state, not a cache. Changes from v1: - folded addendum patchset (BSWAP..LTR) into this one - fix stack_size() miscalculation for 64-bit, ENTER patch - generate #GP when loading NULL to SS, if CPL!=RPL (noted by Kevin) - fix SS base for ESP/EBP addressing without SIB - more testing Avi Kivity (26): KVM: VMX: Return correct CPL during transition to protected mode KVM: Split cpuid register access from computation KVM: x86 emulator: change ->get_cpuid() accessor to use the x86 semantics KVM: x86 emulator: emulate cpuid KVM: x86 emulator: allow loading null SS in long mode KVM: x86 emulator: fix LIDT/LGDT in long mode KVM: VMX: Relax check on unusable segment KVM: VMX: Limit iterations with emulator_invalid_guest_state KVM: x86 emulator: emulate LEAVE KVM: x86 emulator: initialize memop KVM: Fix SS default ESP/EBP based addressing KVM: x86 emulator: emulate SGDT/SIDT KVM: VMX: Fix interrupt exit condition during emulation KVM: VMX: Continue emulating after batch exhausted KVM: x86 emulator: emulate LAHF KVM: x86 emulator: fix byte-sized MOVZX/MOVSX KVM: x86 emulator: split push logic from push opcode emulation KVM: x86 emulator: implement ENTER KVM: VMX: Stop invalid guest state emulation on pending event KVM: VMX: Improve error reporting during invalid guest state emulation KVM: x86 emulator: emulate BSWAP KVM: x86 emulator: emulate LLDT KVM: x86 emulator: make read_segment_descriptor() return the address KVM: x86 emulator: make loading TR set the busy bit KVM: x86 emulator: implement LTR KVM: VMX: Emulate invalid guest state by default arch/x86/include/asm/kvm_emulate.h | 6 +- arch/x86/kvm/cpuid.c | 38 ++++-- arch/x86/kvm/cpuid.h | 1 + arch/x86/kvm/emulate.c | 273 +++++++++++++++++++++++++++++-------- arch/x86/kvm/vmx.c | 38 ++++-- arch/x86/kvm/x86.c | 20 +-- 6 files changed, 276 insertions(+), 100 deletions(-) -- 1.7.11 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html