mirror of https://github.com/torvalds/linux.git
On a system with a GICv3, if a guest hasn't been configured with GICv3 and that the host is not capable of GICv2 emulation, a write to any of the ICC_*SGI*_EL1 registers is trapped to EL2. We therefore try to emulate the SGI access, only to hit a NULL pointer as no private interrupt is allocated (no GIC, remember?). The obvious fix is to give the guest what it deserves, in the shape of a UNDEF exception. Reported-by: Alexander Potapenko <glider@google.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20240820100349.3544850-2-maz@kernel.org Signed-off-by: Oliver Upton <oliver.upton@linux.dev> |
||
|---|---|---|
| .. | ||
| hyp | ||
| vgic | ||
| .gitignore | ||
| Kconfig | ||
| Makefile | ||
| arch_timer.c | ||
| arm.c | ||
| debug.c | ||
| emulate-nested.c | ||
| fpsimd.c | ||
| guest.c | ||
| handle_exit.c | ||
| hypercalls.c | ||
| inject_fault.c | ||
| mmio.c | ||
| mmu.c | ||
| nested.c | ||
| pauth.c | ||
| pkvm.c | ||
| pmu-emul.c | ||
| pmu.c | ||
| psci.c | ||
| pvtime.c | ||
| reset.c | ||
| stacktrace.c | ||
| sys_regs.c | ||
| sys_regs.h | ||
| trace.h | ||
| trace_arm.h | ||
| trace_handle_exit.h | ||
| trng.c | ||
| va_layout.c | ||
| vgic-sys-reg-v3.c | ||
| vmid.c | ||