diff options
author | Marc Zyngier <[email protected]> | 2024-08-20 11:03:38 +0100 |
---|---|---|
committer | Oliver Upton <[email protected]> | 2024-08-22 08:08:37 +0000 |
commit | 3e6245ebe7ef341639e9a7e402b3ade8ad45a19f (patch) | |
tree | 96302ec46dd93c975c20824f8ebe574cd157491a /rust/helpers.c | |
parent | 1d8c3c23a6bc1527e253b305b4b68c03d833b824 (diff) |
KVM: arm64: Make ICC_*SGI*_EL1 undef in the absence of a vGICv3
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 <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
Cc: [email protected]
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Oliver Upton <[email protected]>
Diffstat (limited to 'rust/helpers.c')
0 files changed, 0 insertions, 0 deletions