diff options
| author | Marc Zyngier <maz@kernel.org> | 2026-07-30 08:10:16 +0100 |
|---|---|---|
| committer | Oliver Upton <oupton@kernel.org> | 2026-07-31 00:17:04 -0700 |
| commit | 62ed180231f419e2367e243fbfbc4ce83eb59d56 (patch) | |
| tree | b458c64cc628cbee9fde39e6df2831692910b047 /include | |
| parent | d6debf95f1aa8100d5d5a4feacee244f9b230087 (diff) | |
KVM: arm64: Add NVHCR_EL2 context switching
Since NVHCR_EL2 represents the HCR_EL2 state of the EL1 guest, it
must be dealt with in some particular way:
- for a guest in hyp context (an L1 by definition), NVHCR_EL2 directly
reflects HCR_EL2 as read and written by the guest itself. It must
therefore be eagerly synced back with the emulation code which only
knows about HCR_EL2. This is unconditional if NV3 is available on
the host.
- For an L2 guest, NVHCR_EL2 is controlled by the L1 guest, and we
just context switch it like any other EL1 register. Yes, EL1, as
that's where this thing runs from the PoV of L1. This is conditioned
on the guest using NV3.
Reviewed-by: Joey Gouly <joey.gouly@arm.com>
Reviewed-by: Yuan Yao <yaoyuan@linux.alibaba.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://patch.msgid.link/20260730071022.296811-24-maz@kernel.org
Signed-off-by: Oliver Upton <oupton@kernel.org>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions
