KVM: vmx: DR7 masking on task switch emulation is wrong
authorNadav Amit <namit@cs.technion.ac.il>
Mon, 19 May 2014 06:50:50 +0000 (09:50 +0300)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 22 May 2014 15:47:18 +0000 (17:47 +0200)
The DR7 masking which is done on task switch emulation should be in hex format
(clearing the local breakpoints enable bits 0,2,4 and 6).

Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx.c

index a267108403f527d92f8ac3c2820151efe1680631..248287cefa7a6b95c593985d89cd40f47a3763da 100644 (file)
@@ -5401,7 +5401,7 @@ static int handle_task_switch(struct kvm_vcpu *vcpu)
        }
 
        /* clear all local breakpoint enable flags */
-       vmcs_writel(GUEST_DR7, vmcs_readl(GUEST_DR7) & ~55);
+       vmcs_writel(GUEST_DR7, vmcs_readl(GUEST_DR7) & ~0x55);
 
        /*
         * TODO: What about debug traps on tss switch?