From: Yaniv Kamay The x86-64 respects segment bases for fs and gs. Signed-off-by: Yaniv Kamay Signed-off-by: Avi Kivity Signed-off-by: Andrew Morton --- drivers/kvm/kvm_main.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) diff -puN drivers/kvm/kvm_main.c~kvm-define-exit-handlers-pass-fs-gs-segment-bases-to-x86-emulator drivers/kvm/kvm_main.c --- a/drivers/kvm/kvm_main.c~kvm-define-exit-handlers-pass-fs-gs-segment-bases-to-x86-emulator +++ a/drivers/kvm/kvm_main.c @@ -1869,17 +1869,16 @@ static int emulate_instruction(struct kv emulate_ctxt.ds_base = 0; emulate_ctxt.es_base = 0; emulate_ctxt.ss_base = 0; - emulate_ctxt.gs_base = 0; - emulate_ctxt.fs_base = 0; } else { emulate_ctxt.cs_base = vmcs_readl(GUEST_CS_BASE); emulate_ctxt.ds_base = vmcs_readl(GUEST_DS_BASE); emulate_ctxt.es_base = vmcs_readl(GUEST_ES_BASE); emulate_ctxt.ss_base = vmcs_readl(GUEST_SS_BASE); - emulate_ctxt.gs_base = vmcs_readl(GUEST_GS_BASE); - emulate_ctxt.fs_base = vmcs_readl(GUEST_FS_BASE); } + emulate_ctxt.gs_base = vmcs_readl(GUEST_GS_BASE); + emulate_ctxt.fs_base = vmcs_readl(GUEST_FS_BASE); + vcpu->mmio_is_write = 0; r = x86_emulate_memop(&emulate_ctxt, &emulate_ops); _