summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGleb Natapov <gleb@redhat.com>2012-12-12 19:10:53 +0200
committerGleb Natapov <gleb@redhat.com>2012-12-23 14:01:37 +0200
commit39dcfb95def4646ecdb76ea7a7491e8420dce7a7 (patch)
tree36d0020b63b2566b71830bf916fe8aa71d6ea51e
parentbeb853ffeccbfa626f30038e816d61187103c455 (diff)
downloadlinux-3.10-39dcfb95def4646ecdb76ea7a7491e8420dce7a7.tar.gz
linux-3.10-39dcfb95def4646ecdb76ea7a7491e8420dce7a7.tar.bz2
linux-3.10-39dcfb95def4646ecdb76ea7a7491e8420dce7a7.zip
KVM: VMX: remove redundant code from vmx_set_segment()
Segment descriptor's base is fixed by call to fix_rmode_seg(). Not need to do it twice. Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Gleb Natapov <gleb@redhat.com>
-rw-r--r--arch/x86/kvm/vmx.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 9e784c2c978..9b8edd2298e 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -3268,7 +3268,7 @@ static void vmx_set_segment(struct kvm_vcpu *vcpu,
{
struct vcpu_vmx *vmx = to_vmx(vcpu);
const struct kvm_vmx_segment_field *sf = &kvm_vmx_segment_fields[seg];
- u32 ar;
+ u32 ar = 0;
vmx_segment_cache_clear(vmx);
@@ -3280,15 +3280,9 @@ static void vmx_set_segment(struct kvm_vcpu *vcpu,
vmcs_writel(sf->base, var->base);
vmcs_write32(sf->limit, var->limit);
vmcs_write16(sf->selector, var->selector);
- if (vmx->rmode.vm86_active && var->s) {
+ if (vmx->rmode.vm86_active && var->s)
vmx->rmode.segs[seg] = *var;
- /*
- * Hack real-mode segments into vm86 compatibility.
- */
- if (var->base == 0xffff0000 && var->selector == 0xf000)
- vmcs_writel(sf->base, 0xf0000);
- ar = 0xf3;
- } else
+ else
ar = vmx_segment_access_rights(var);
/*