You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
KVM: PPC: Book3S HV: Context tracking exit guest context before enabling irqs
[ Upstream commit112665286d] Interrupts that occur in kernel mode expect that context tracking is set to kernel. Enabling local irqs before context tracking switches from guest to host means interrupts can come in and trigger warnings about wrong context, and possibly worse. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20210130130852.2952424-3-npiggin@gmail.com Stable-dep-of:235cee1624("KVM: PPC: Tick accounting should defer vtime accounting 'til after IRQ handling") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
99c2dfe47a
commit
6bae475481
@@ -3399,8 +3399,9 @@ static noinline void kvmppc_run_core(struct kvmppc_vcore *vc)
|
||||
|
||||
kvmppc_set_host_core(pcpu);
|
||||
|
||||
guest_exit_irqoff();
|
||||
|
||||
local_irq_enable();
|
||||
guest_exit();
|
||||
|
||||
/* Let secondaries go back to the offline loop */
|
||||
for (i = 0; i < controlled_threads; ++i) {
|
||||
@@ -4235,8 +4236,9 @@ int kvmhv_run_single_vcpu(struct kvm_vcpu *vcpu, u64 time_limit,
|
||||
|
||||
kvmppc_set_host_core(pcpu);
|
||||
|
||||
guest_exit_irqoff();
|
||||
|
||||
local_irq_enable();
|
||||
guest_exit();
|
||||
|
||||
cpumask_clear_cpu(pcpu, &kvm->arch.cpu_in_guest);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user