|
@@ -619,6 +619,8 @@ static void kvm_purge_vmm_mapping(struct kvm_vcpu *vcpu)
|
|
|
|
|
|
static int kvm_vcpu_pre_transition(struct kvm_vcpu *vcpu)
|
|
|
{
|
|
|
+ unsigned long psr;
|
|
|
+ int r;
|
|
|
int cpu = smp_processor_id();
|
|
|
|
|
|
if (vcpu->arch.last_run_cpu != cpu ||
|
|
@@ -630,7 +632,10 @@ static int kvm_vcpu_pre_transition(struct kvm_vcpu *vcpu)
|
|
|
|
|
|
vcpu->arch.host_rr6 = ia64_get_rr(RR6);
|
|
|
vti_set_rr6(vcpu->arch.vmm_rr);
|
|
|
- return kvm_insert_vmm_mapping(vcpu);
|
|
|
+ local_irq_save(psr);
|
|
|
+ r = kvm_insert_vmm_mapping(vcpu);
|
|
|
+ local_irq_restore(psr);
|
|
|
+ return r;
|
|
|
}
|
|
|
|
|
|
static void kvm_vcpu_post_transition(struct kvm_vcpu *vcpu)
|