]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
KVM: Align cr8 threshold when userspace changes cr8
authorMikhail Ershov <arcezed@gmail.com>
Mon, 3 Aug 2009 11:58:25 +0000 (14:58 +0300)
committerAvi Kivity <avi@redhat.com>
Thu, 10 Sep 2009 05:33:17 +0000 (08:33 +0300)
Commit f0a3602c20 ("KVM: Move interrupt injection logic to x86.c") does not
update the cr8 intercept if the lapic is disabled, so when userspace updates
cr8, the cr8 threshold control is not updated and we are left with illegal
control fields.

Fix by explicitly resetting the cr8 threshold.

Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/x86.c

index f4cb1baaa04b5ccd337274e8d620c3999e4eec6c..69de7248083fc0cb361334a72778ea65aaedab18 100644 (file)
@@ -4445,6 +4445,8 @@ int kvm_arch_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu,
        kvm_set_segment(vcpu, &sregs->tr, VCPU_SREG_TR);
        kvm_set_segment(vcpu, &sregs->ldt, VCPU_SREG_LDTR);
 
+       update_cr8_intercept(vcpu);
+
        /* Older userspace won't unhalt the vcpu on reset. */
        if (kvm_vcpu_is_bsp(vcpu) && kvm_rip_read(vcpu) == 0xfff0 &&
            sregs->cs.selector == 0xf000 && sregs->cs.base == 0xffff0000 &&