KVM: ia64: preserve int status through call to kvm_insert_vmm_mapping
Preserve interrupt status around call to kvm_insert_vmm_mappin() in kvm_vcpu_pre_transition(). Signed-off-by: Jes Sorensen <jes@sgi.com> Acked-by: Xiantao Zhang <xiantao.zhang@intel.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
457459c3c7
commit
4d13c3b04f
|
@ -619,6 +619,8 @@ static void kvm_purge_vmm_mapping(struct kvm_vcpu *vcpu)
|
||||||
|
|
||||||
static int kvm_vcpu_pre_transition(struct kvm_vcpu *vcpu)
|
static int kvm_vcpu_pre_transition(struct kvm_vcpu *vcpu)
|
||||||
{
|
{
|
||||||
|
unsigned long psr;
|
||||||
|
int r;
|
||||||
int cpu = smp_processor_id();
|
int cpu = smp_processor_id();
|
||||||
|
|
||||||
if (vcpu->arch.last_run_cpu != cpu ||
|
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);
|
vcpu->arch.host_rr6 = ia64_get_rr(RR6);
|
||||||
vti_set_rr6(vcpu->arch.vmm_rr);
|
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)
|
static void kvm_vcpu_post_transition(struct kvm_vcpu *vcpu)
|
||||||
|
|
Loading…
Reference in New Issue