[RFC PATCH v2 3/7] KVM: arm64: Add interfaces for pinned VMID support
Shameer Kolothum
shameerali.kolothum.thodi at huawei.com
Thu Feb 8 07:18:33 PST 2024
Provide interfaces to get/put pinned VMIDs from KVM VMID allocator.
This will be used by SMMUv3 driver in subsequent patch.
Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi at huawei.com>
---
arch/arm64/kvm/Kconfig | 1 +
arch/arm64/kvm/arm.c | 14 ++++++++++++++
2 files changed, 15 insertions(+)
diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig
index 6c3c8ca73e7f..29ff79f112ba 100644
--- a/arch/arm64/kvm/Kconfig
+++ b/arch/arm64/kvm/Kconfig
@@ -40,6 +40,7 @@ menuconfig KVM
select SCHED_INFO
select GUEST_PERF_EVENTS if PERF_EVENTS
select XARRAY_MULTI
+ select HAVE_KVM_PINNED_VMID
help
Support hosting virtualized guest machines.
diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c
index a25265aca432..ed905da6e9ab 100644
--- a/arch/arm64/kvm/arm.c
+++ b/arch/arm64/kvm/arm.c
@@ -711,6 +711,20 @@ int kvm_arch_vcpu_run_pid_change(struct kvm_vcpu *vcpu)
return ret;
}
+int kvm_arch_pinned_vmid_get(struct kvm *kvm)
+{
+ int vmid;
+
+ vmid = kvm_arm_pinned_vmid_get(&kvm->arch.mmu.vmid);
+
+ return (vmid == 0) ? -EINVAL : vmid;
+}
+
+void kvm_arch_pinned_vmid_put(struct kvm *kvm)
+{
+ kvm_arm_pinned_vmid_put(&kvm->arch.mmu.vmid);
+}
+
bool kvm_arch_intc_initialized(struct kvm *kvm)
{
return vgic_initialized(kvm);
--
2.34.1
More information about the linux-arm-kernel
mailing list