diff options
| author | Marc Zyngier <maz@kernel.org> | 2026-02-02 18:43:23 +0000 |
|---|---|---|
| committer | Marc Zyngier <maz@kernel.org> | 2026-02-05 09:02:13 +0000 |
| commit | f01e3429cf0e4b1ab20c9d51ebfa0d8514d8fe4d (patch) | |
| tree | 2d714d276db684d9c3d6687edc6b4e9a31fa19ad | |
| parent | d2f629aa75bef1c346f17ca195271582dafc6f3b (diff) | |
KVM: arm64: Simplify handling of HCR_EL2.E2H RESx
Now that we can link the RESx behaviour with the value of HCR_EL2.E2H,
we can trivially express the tautological constraint that makes E2H
a reserved value at all times.
Fun, isn't it?
Reviewed-by: Fuad Tabba <tabba@google.com>
Tested-by: Fuad Tabba <tabba@google.com>
Link: https://patch.msgid.link/20260202184329.2724080-15-maz@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
| -rw-r--r-- | arch/arm64/kvm/config.c | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/arch/arm64/kvm/config.c b/arch/arm64/kvm/config.c index 474d5c8038c2..ae72f3b8e50b 100644 --- a/arch/arm64/kvm/config.c +++ b/arch/arm64/kvm/config.c @@ -388,16 +388,6 @@ static bool feat_vmid16(struct kvm *kvm) return kvm_has_feat_enum(kvm, ID_AA64MMFR1_EL1, VMIDBits, 16); } -static bool compute_hcr_e2h(struct kvm *kvm, struct resx *bits) -{ - if (kvm_has_feat(kvm, FEAT_E2H0)) - bits->res0 |= HCR_EL2_E2H; - else - bits->res1 |= HCR_EL2_E2H; - - return true; -} - static const struct reg_bits_to_feat_map hfgrtr_feat_map[] = { NEEDS_FEAT(HFGRTR_EL2_nAMAIR2_EL1 | HFGRTR_EL2_nMAIR2_EL1, @@ -1017,7 +1007,7 @@ static const struct reg_bits_to_feat_map hcr_feat_map[] = { NEEDS_FEAT(HCR_EL2_TWEDEL | HCR_EL2_TWEDEn, FEAT_TWED), - NEEDS_FEAT_FIXED(HCR_EL2_E2H, compute_hcr_e2h), + NEEDS_FEAT_FLAG(HCR_EL2_E2H, RES1_WHEN_E2H1 | FORCE_RESx), FORCE_RES0(HCR_EL2_RES0), FORCE_RES1(HCR_EL2_RES1), }; |
