mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
KVM: e500: always restore irqs
[ Upstream commit 87ecfdbc699cc95fac73291b52650283ddcf929d ] If find_linux_pte fails, IRQs will not be restored. This is unlikely to happen in practice since it would have been reported as hanging hosts, but it should of course be fixed anyway. Cc: stable@vger.kernel.org Reported-by: Sean Christopherson <seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
deead14da7
commit
bce6adebc9
@@ -479,7 +479,6 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
|
|||||||
if (pte_present(pte)) {
|
if (pte_present(pte)) {
|
||||||
wimg = (pte_val(pte) >> PTE_WIMGE_SHIFT) &
|
wimg = (pte_val(pte) >> PTE_WIMGE_SHIFT) &
|
||||||
MAS2_WIMGE_MASK;
|
MAS2_WIMGE_MASK;
|
||||||
local_irq_restore(flags);
|
|
||||||
} else {
|
} else {
|
||||||
local_irq_restore(flags);
|
local_irq_restore(flags);
|
||||||
pr_err_ratelimited("%s: pte not present: gfn %lx,pfn %lx\n",
|
pr_err_ratelimited("%s: pte not present: gfn %lx,pfn %lx\n",
|
||||||
@@ -488,8 +487,9 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
writable = kvmppc_e500_ref_setup(ref, gtlbe, pfn, wimg);
|
local_irq_restore(flags);
|
||||||
|
|
||||||
|
writable = kvmppc_e500_ref_setup(ref, gtlbe, pfn, wimg);
|
||||||
kvmppc_e500_setup_stlbe(&vcpu_e500->vcpu, gtlbe, tsize,
|
kvmppc_e500_setup_stlbe(&vcpu_e500->vcpu, gtlbe, tsize,
|
||||||
ref, gvaddr, stlbe);
|
ref, gvaddr, stlbe);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user