mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 08:46:43 +07:00
KVM: ia64: restore irq state before calling kvm_vcpu_init
Make sure to restore the psr after calling kvm_insert_vmm_mapping() which calls ia64_itr_entry() as it disables local interrupts and kvm_vcpu_init() may sleep. Avoids a warning from the lock debugging code. 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
f9b647adda
commit
457459c3c7
@ -1290,6 +1290,7 @@ static int vti_vcpu_setup(struct kvm_vcpu *vcpu, int id)
|
|||||||
|
|
||||||
local_irq_save(psr);
|
local_irq_save(psr);
|
||||||
r = kvm_insert_vmm_mapping(vcpu);
|
r = kvm_insert_vmm_mapping(vcpu);
|
||||||
|
local_irq_restore(psr);
|
||||||
if (r)
|
if (r)
|
||||||
goto fail;
|
goto fail;
|
||||||
r = kvm_vcpu_init(vcpu, vcpu->kvm, id);
|
r = kvm_vcpu_init(vcpu, vcpu->kvm, id);
|
||||||
@ -1307,13 +1308,11 @@ static int vti_vcpu_setup(struct kvm_vcpu *vcpu, int id)
|
|||||||
goto uninit;
|
goto uninit;
|
||||||
|
|
||||||
kvm_purge_vmm_mapping(vcpu);
|
kvm_purge_vmm_mapping(vcpu);
|
||||||
local_irq_restore(psr);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
uninit:
|
uninit:
|
||||||
kvm_vcpu_uninit(vcpu);
|
kvm_vcpu_uninit(vcpu);
|
||||||
fail:
|
fail:
|
||||||
local_irq_restore(psr);
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user