]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
KVM: arm64: Simplify PAGE_S2_MEMATTR
authorMarc Zyngier <maz@kernel.org>
Fri, 23 Jan 2026 19:16:37 +0000 (19:16 +0000)
committerMarc Zyngier <maz@kernel.org>
Sun, 25 Jan 2026 16:17:21 +0000 (16:17 +0000)
Restore PAGE_S2_MEMATTR() to its former glory, keeping the use of
FWB as an implementation detail.

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

index 161e8660edddc390ef415a49cff8a0b6a884181c..d27e8872fe3c8c30a3e98fdcce82a60c6a0f168e 100644 (file)
@@ -109,10 +109,10 @@ static inline bool __pure lpa2_is_enabled(void)
 #define PAGE_KERNEL_EXEC       __pgprot(_PAGE_KERNEL_EXEC)
 #define PAGE_KERNEL_EXEC_CONT  __pgprot(_PAGE_KERNEL_EXEC_CONT)
 
-#define PAGE_S2_MEMATTR(attr, has_fwb)                                 \
+#define PAGE_S2_MEMATTR(attr)                                          \
        ({                                                              \
                u64 __val;                                              \
-               if (has_fwb)                                            \
+               if (cpus_have_final_cap(ARM64_HAS_STAGE2_FWB))          \
                        __val = PTE_S2_MEMATTR(MT_S2_FWB_ ## attr);     \
                else                                                    \
                        __val = PTE_S2_MEMATTR(MT_S2_ ## attr);         \
index 00e33a16494bd0d7f32eac97314c44e6d44bc3c1..a6f7533ce497433de923df5e465650f6914009e9 100644 (file)
@@ -653,13 +653,12 @@ void kvm_tlb_flush_vmid_range(struct kvm_s2_mmu *mmu,
 
 #define KVM_S2_MEMATTR(pgt, attr)                                      \
        ({                                                              \
-               bool __fwb = cpus_have_final_cap(ARM64_HAS_STAGE2_FWB); \
                kvm_pte_t __attr;                                       \
                                                                        \
                if ((pgt)->flags & KVM_PGTABLE_S2_AS_S1)                \
-                       __attr = PAGE_S2_MEMATTR(AS_S1, __fwb);         \
+                       __attr = PAGE_S2_MEMATTR(AS_S1);                \
                else                                                    \
-                       __attr = PAGE_S2_MEMATTR(attr, __fwb);          \
+                       __attr = PAGE_S2_MEMATTR(attr);                 \
                                                                        \
                __attr;                                                 \
        })