From 444c278ffedc5dc38942172f2dd21fcefe2d75c9 Mon Sep 17 00:00:00 2001 From: Dor Laor Date: Mon, 12 Feb 2007 00:54:39 -0800 Subject: [PATCH] --- yaml --- r: 48037 b: refs/heads/master c: 54810342f1372afdaf6cb9a6aea0c35df187db12 h: refs/heads/master i: 48035: 2aa08d28e1b0cb03da3265d91c63f5a8c2b57bc1 v: v3 --- [refs] | 2 +- trunk/drivers/kvm/kvm_main.c | 3 +++ trunk/include/linux/kvm.h | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 9e22a26dc992..24e9e779bfa7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d92899a0014aa795c21d3cf726ef5ff7684399f4 +refs/heads/master: 54810342f1372afdaf6cb9a6aea0c35df187db12 diff --git a/trunk/drivers/kvm/kvm_main.c b/trunk/drivers/kvm/kvm_main.c index 099f0afd394d..eb3931ca680a 100644 --- a/trunk/drivers/kvm/kvm_main.c +++ b/trunk/drivers/kvm/kvm_main.c @@ -1360,6 +1360,9 @@ static int kvm_dev_ioctl_run(struct kvm *kvm, struct kvm_run *kvm_run) if (!vcpu) return -ENOENT; + /* re-sync apic's tpr */ + vcpu->cr8 = kvm_run->cr8; + if (kvm_run->emulated) { kvm_arch_ops->skip_emulated_instruction(vcpu); kvm_run->emulated = 0; diff --git a/trunk/include/linux/kvm.h b/trunk/include/linux/kvm.h index 1be148f0fce4..6a5f6f49e037 100644 --- a/trunk/include/linux/kvm.h +++ b/trunk/include/linux/kvm.h @@ -65,6 +65,8 @@ struct kvm_run { __u8 ready_for_interrupt_injection; __u8 if_flag; __u16 padding2; + + /* in (pre_kvm_run), out (post_kvm_run) */ __u64 cr8; __u64 apic_base;