]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
KVM: arm64: Switch pKVM host S2 over to KVM_PGTABLE_S2_AS_S1
authorMarc Zyngier <maz@kernel.org>
Fri, 23 Jan 2026 19:16:35 +0000 (19:16 +0000)
committerMarc Zyngier <maz@kernel.org>
Sun, 25 Jan 2026 16:17:21 +0000 (16:17 +0000)
Since we have the basics to use the S1 memory attributes as the
final ones with FWB, flip the host over to that when FWB is present.

Reviewed-by: Joey Gouly <joey.gouly@arm.com>
Tested-by: Fuad Tabba <tabba@google.com>
Reviewed-by: Fuad Tabba <tabba@google.com>
Link: https://patch.msgid.link/20260123191637.715429-4-maz@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/hyp/nvhe/mem_protect.c

index 49db32f3ddf7150405943d8e55778b4741bb21c2..38f66a56a76655a21ca3233536bf94bdd90b3d38 100644 (file)
@@ -19,7 +19,7 @@
 #include <nvhe/mem_protect.h>
 #include <nvhe/mm.h>
 
-#define KVM_HOST_S2_FLAGS (KVM_PGTABLE_S2_NOFWB | KVM_PGTABLE_S2_IDMAP)
+#define KVM_HOST_S2_FLAGS (KVM_PGTABLE_S2_AS_S1 | KVM_PGTABLE_S2_IDMAP)
 
 struct host_mmu host_mmu;
 
@@ -324,6 +324,8 @@ int __pkvm_prot_finalize(void)
        params->vttbr = kvm_get_vttbr(mmu);
        params->vtcr = mmu->vtcr;
        params->hcr_el2 |= HCR_VM;
+       if (cpus_have_final_cap(ARM64_HAS_STAGE2_FWB))
+               params->hcr_el2 |= HCR_FWB;
 
        /*
         * The CMO below not only cleans the updated params to the