[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