]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
KVM: arm64: Change 'pkvm_handle_t' to u16
authorWill Deacon <will@kernel.org>
Mon, 30 Mar 2026 14:48:24 +0000 (15:48 +0100)
committerMarc Zyngier <maz@kernel.org>
Mon, 30 Mar 2026 15:58:08 +0000 (16:58 +0100)
'pkvm_handle_t' doesn't need to be a 32-bit type and subsequent patches
will rely on it being no more than 16 bits so that it can be encoded
into a pte annotation.

Change 'pkvm_handle_t' to a u16 and add a compile-type check that the
maximum handle fits into the reduced type.

Reviewed-by: Fuad Tabba <tabba@google.com>
Tested-by: Fuad Tabba <tabba@google.com>
Tested-by: Mostafa Saleh <smostafa@google.com>
Signed-off-by: Will Deacon <will@kernel.org>
Link: https://patch.msgid.link/20260330144841.26181-24-will@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/include/asm/kvm_host.h
arch/arm64/kvm/hyp/nvhe/pkvm.c

index 31b9454bb74dbe17031f48c4aa7c395825bb38c6..0c5e7ce5f18745d09cfff81f14931c774c6daadb 100644 (file)
@@ -247,7 +247,7 @@ struct kvm_smccc_features {
        unsigned long vendor_hyp_bmap_2; /* Function numbers 64-127 */
 };
 
-typedef unsigned int pkvm_handle_t;
+typedef u16 pkvm_handle_t;
 
 struct kvm_protected_vm {
        pkvm_handle_t handle;
index 092e9d0e55ac14678a606826381e25f77c4ce633..0ba6423cd0d5649603bd86750615b1b9212d6d3e 100644 (file)
@@ -222,6 +222,7 @@ static struct pkvm_hyp_vm **vm_table;
 
 void pkvm_hyp_vm_table_init(void *tbl)
 {
+       BUILD_BUG_ON((u64)HANDLE_OFFSET + KVM_MAX_PVMS > (pkvm_handle_t)-1);
        WARN_ON(vm_table);
        vm_table = tbl;
 }