Skip to content

Commit 349fbfe

Browse files
farosasmpe
authored andcommitted
KVM: PPC: mmio: Return to guest after emulation failure
If MMIO emulation fails we don't want to crash the whole guest by returning to userspace. The original commit bbf45ba ("KVM: ppc: PowerPC 440 KVM implementation") added a todo: /* XXX Deliver Program interrupt to guest. */ and later the commit d69614a ("KVM: PPC: Separate loadstore emulation from priv emulation") added the Program interrupt injection but in another file, so I'm assuming it was missed that this block needed to be altered. Also change the message to a ratelimited one since we're letting the guest run and it could flood the host logs. Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com> Reviewed-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20220125215655.1026224-5-farosas@linux.ibm.com
1 parent 3f83150 commit 349fbfe

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

arch/powerpc/kvm/powerpc.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -307,9 +307,9 @@ int kvmppc_emulate_mmio(struct kvm_vcpu *vcpu)
307307
u32 last_inst;
308308

309309
kvmppc_get_last_inst(vcpu, INST_GENERIC, &last_inst);
310-
/* XXX Deliver Program interrupt to guest. */
311-
pr_emerg("%s: emulation failed (%08x)\n", __func__, last_inst);
312-
r = RESUME_HOST;
310+
kvm_debug_ratelimited("Guest access to device memory using unsupported instruction (opcode: %#08x)\n",
311+
last_inst);
312+
r = RESUME_GUEST;
313313
break;
314314
}
315315
default:

0 commit comments

Comments
 (0)