[PATCH 0/5] Backport ARM64 VHE boot fixes to 6.6.y
Colton Lewis
coltonlewis at google.com
Mon Jul 6 14:31:22 PDT 2026
Hi Oliver, thanks for reviewing.
Oliver Upton <oupton at kernel.org> writes:
> The subject prefix should be "[PATCH 6.6 0/5]" so people know right up
> front where this is going.
I'll make sure to include that in the subject.
> On Wed, Jul 01, 2026 at 08:43:37PM +0000, Colton Lewis wrote:
>> This series backports VHE CPU boot fixes to the 6.6.y stable branch.
>> These fixes are already present in the 6.12.y stable branch (and
>> newer), but are missing in 6.6.y. They are required to enable booting
>> L1 guests with nested virtualization enabled (kvm-arm.mode=nested).
> It's a bit worse than this. The architecture retroactively made
> FEAT_E2H0 an optional feature, there are now implementations in the wild
> that do not support the feature.
Good to know. I'll include that context in my next cover letter.
>> Without these patches, a 6.6.y guest boots with HCR_EL2.E2H
>> incorrectly configured (because it misses VHE-only detection or early
>> initialization), causing early boot hangs/trap loops.
>> Conflict resolutions:
>> - Patch 4 (KVM: arm64: Initialize HCR_EL2.E2H early) had conflicts in
>> arch/arm64/kvm/hyp/nvhe/hyp-init.S due to differences in state
>> initialization. Resolved by extracting EL2 state initialization into
>> __kvm_init_el2_state.
>> - Patch 5 (arm64: Revamp HCR_EL2.E2H RES1 detection) had conflicts in
>> arch/arm64/include/asm/el2_setup.h. Resolved by using raw msr hcr_el2
>> instead of the missing msr_hcr_el2 macro.
>> Marc Zyngier (4):
>> arm64: sysreg: Add layout for ID_AA64MMFR4_EL1
>> arm64: Treat HCR_EL2.E2H as RES1 when ID_AA64MMFR4_EL1.E2H0 is
>> negative
>> arm64: Fix early handling of FEAT_E2H0 not being implemented
>> arm64: Revamp HCR_EL2.E2H RES1 detection
>> Mark Rutland (1):
>> KVM: arm64: Initialize HCR_EL2.E2H early
>> arch/arm64/include/asm/el2_setup.h | 52 ++++++++++++++++++++++++++++++
>> arch/arm64/kernel/head.S | 17 +++-------
>> arch/arm64/kvm/hyp/nvhe/hyp-init.S | 16 +++++++--
>> arch/arm64/tools/sysreg | 37 +++++++++++++++++++++
>> 4 files changed, 107 insertions(+), 15 deletions(-)
>> base-commit: d1cfde2d5d15be14123bdd1689162bd27f995a90
>> --
>> 2.55.0.rc2.803.g1fd1e6609c-goog
More information about the linux-arm-kernel
mailing list