From: Quentin Perret Date: Wed, 16 Apr 2025 15:26:43 +0000 (+0000) Subject: KVM: arm64: Use 0b11 for encoding PKVM_NOPAGE X-Git-Tag: v6.16-rc1~129^2~2^2~6^2~11^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cd4b039165a5e709d0d599e207709d73141a8bed;p=thirdparty%2Flinux.git KVM: arm64: Use 0b11 for encoding PKVM_NOPAGE The page ownership state encoded as 0b11 is currently considered reserved for future use, and PKVM_NOPAGE uses bit 2. In order to simplify the relocation of the hyp ownership state into the vmemmap in later patches, let's use the 'reserved' encoding for the PKVM_NOPAGE state. The struct hyp_page layout isn't guaranteed stable at all, so there is no real reason to have 'reserved' encodings. No functional changes intended. Reviewed-by: Marc Zyngier Signed-off-by: Quentin Perret Link: https://lore.kernel.org/r/20250416152648.2982950-4-qperret@google.com Signed-off-by: Marc Zyngier --- diff --git a/arch/arm64/kvm/hyp/include/nvhe/memory.h b/arch/arm64/kvm/hyp/include/nvhe/memory.h index 178028172c0b3..bf28f9f9de653 100644 --- a/arch/arm64/kvm/hyp/include/nvhe/memory.h +++ b/arch/arm64/kvm/hyp/include/nvhe/memory.h @@ -23,7 +23,6 @@ enum pkvm_page_state { PKVM_PAGE_OWNED = 0ULL, PKVM_PAGE_SHARED_OWNED = BIT(0), PKVM_PAGE_SHARED_BORROWED = BIT(1), - __PKVM_PAGE_RESERVED = BIT(0) | BIT(1), /* * 'Meta-states' are not stored directly in PTE SW bits for hyp and @@ -31,9 +30,8 @@ enum pkvm_page_state { * entries). For the host, meta-states are stored directly in the * struct hyp_page. */ - PKVM_NOPAGE = BIT(2), + PKVM_NOPAGE = BIT(0) | BIT(1), }; -#define PKVM_PAGE_META_STATES_MASK (~__PKVM_PAGE_RESERVED) #define PKVM_PAGE_STATE_PROT_MASK (KVM_PGTABLE_PROT_SW0 | KVM_PGTABLE_PROT_SW1) static inline enum kvm_pgtable_prot pkvm_mkstate(enum kvm_pgtable_prot prot,