kvm_arch_vm_ioctl_check_extension() is only called from
kvm_vm_ioctl_check_extension(), so we can inline it and remove the extra
function.

Cc: Marc Zyngier <[email protected]>
Signed-off-by: Will Deacon <[email protected]>
---
 arch/arm64/include/asm/cpufeature.h |  5 +++
 arch/arm64/include/asm/kvm_host.h   |  1 -
 arch/arm64/kvm/arm.c                | 31 +++++++++++++++--
 arch/arm64/kvm/reset.c              | 52 -----------------------------
 4 files changed, 34 insertions(+), 55 deletions(-)

diff --git a/arch/arm64/include/asm/cpufeature.h 
b/arch/arm64/include/asm/cpufeature.h
index da250e4741bd..461277ae7a48 100644
--- a/arch/arm64/include/asm/cpufeature.h
+++ b/arch/arm64/include/asm/cpufeature.h
@@ -699,6 +699,11 @@ static inline bool system_supports_generic_auth(void)
                cpus_have_const_cap(ARM64_HAS_GENERIC_AUTH);
 }
 
+static inline bool system_has_full_ptr_auth(void)
+{
+       return system_supports_address_auth() && system_supports_generic_auth();
+}
+
 static __always_inline bool system_uses_irq_prio_masking(void)
 {
        return IS_ENABLED(CONFIG_ARM64_PSEUDO_NMI) &&
diff --git a/arch/arm64/include/asm/kvm_host.h 
b/arch/arm64/include/asm/kvm_host.h
index 24cb00ce30dd..eee58fdee705 100644
--- a/arch/arm64/include/asm/kvm_host.h
+++ b/arch/arm64/include/asm/kvm_host.h
@@ -58,7 +58,6 @@ int kvm_arm_init_sve(void);
 int __attribute_const__ kvm_target_cpu(void);
 int kvm_reset_vcpu(struct kvm_vcpu *vcpu);
 void kvm_arm_vcpu_destroy(struct kvm_vcpu *vcpu);
-int kvm_arch_vm_ioctl_check_extension(struct kvm *kvm, long ext);
 void __extended_idmap_trampoline(phys_addr_t boot_pgd, phys_addr_t 
idmap_start);
 
 struct kvm_vmid {
diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c
index c0ffb019ca8b..68c0cd320a7b 100644
--- a/arch/arm64/kvm/arm.c
+++ b/arch/arm64/kvm/arm.c
@@ -198,6 +198,8 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
        case KVM_CAP_ARM_IRQ_LINE_LAYOUT_2:
        case KVM_CAP_ARM_NISV_TO_USER:
        case KVM_CAP_ARM_INJECT_EXT_DABT:
+       case KVM_CAP_SET_GUEST_DEBUG:
+       case KVM_CAP_VCPU_ATTRIBUTES:
                r = 1;
                break;
        case KVM_CAP_ARM_SET_DEVICE_ADDR:
@@ -229,10 +231,35 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long 
ext)
        case KVM_CAP_STEAL_TIME:
                r = kvm_arm_pvtime_supported();
                break;
-       default:
-               r = kvm_arch_vm_ioctl_check_extension(kvm, ext);
+       case KVM_CAP_ARM_EL1_32BIT:
+               r = cpus_have_const_cap(ARM64_HAS_32BIT_EL1);
+               break;
+       case KVM_CAP_GUEST_DEBUG_HW_BPS:
+               r = get_num_brps();
+               break;
+       case KVM_CAP_GUEST_DEBUG_HW_WPS:
+               r = get_num_wrps();
+               break;
+       case KVM_CAP_ARM_PMU_V3:
+               r = kvm_arm_support_pmu_v3();
+               break;
+       case KVM_CAP_ARM_INJECT_SERROR_ESR:
+               r = cpus_have_const_cap(ARM64_HAS_RAS_EXTN);
+               break;
+       case KVM_CAP_ARM_VM_IPA_SIZE:
+               r = get_kvm_ipa_limit();
                break;
+       case KVM_CAP_ARM_SVE:
+               r = system_supports_sve();
+               break;
+       case KVM_CAP_ARM_PTRAUTH_ADDRESS:
+       case KVM_CAP_ARM_PTRAUTH_GENERIC:
+               r = system_has_full_ptr_auth();
+               break;
+       default:
+               r = 0;
        }
+
        return r;
 }
 
diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c
index f32490229a4c..c7985f4607a9 100644
--- a/arch/arm64/kvm/reset.c
+++ b/arch/arm64/kvm/reset.c
@@ -42,58 +42,6 @@ static u32 kvm_ipa_limit;
 #define VCPU_RESET_PSTATE_SVC  (PSR_AA32_MODE_SVC | PSR_AA32_A_BIT | \
                                 PSR_AA32_I_BIT | PSR_AA32_F_BIT)
 
-static bool system_has_full_ptr_auth(void)
-{
-       return system_supports_address_auth() && system_supports_generic_auth();
-}
-
-/**
- * kvm_arch_vm_ioctl_check_extension
- *
- * We currently assume that the number of HW registers is uniform
- * across all CPUs (see cpuinfo_sanity_check).
- */
-int kvm_arch_vm_ioctl_check_extension(struct kvm *kvm, long ext)
-{
-       int r;
-
-       switch (ext) {
-       case KVM_CAP_ARM_EL1_32BIT:
-               r = cpus_have_const_cap(ARM64_HAS_32BIT_EL1);
-               break;
-       case KVM_CAP_GUEST_DEBUG_HW_BPS:
-               r = get_num_brps();
-               break;
-       case KVM_CAP_GUEST_DEBUG_HW_WPS:
-               r = get_num_wrps();
-               break;
-       case KVM_CAP_ARM_PMU_V3:
-               r = kvm_arm_support_pmu_v3();
-               break;
-       case KVM_CAP_ARM_INJECT_SERROR_ESR:
-               r = cpus_have_const_cap(ARM64_HAS_RAS_EXTN);
-               break;
-       case KVM_CAP_SET_GUEST_DEBUG:
-       case KVM_CAP_VCPU_ATTRIBUTES:
-               r = 1;
-               break;
-       case KVM_CAP_ARM_VM_IPA_SIZE:
-               r = kvm_ipa_limit;
-               break;
-       case KVM_CAP_ARM_SVE:
-               r = system_supports_sve();
-               break;
-       case KVM_CAP_ARM_PTRAUTH_ADDRESS:
-       case KVM_CAP_ARM_PTRAUTH_GENERIC:
-               r = system_has_full_ptr_auth();
-               break;
-       default:
-               r = 0;
-       }
-
-       return r;
-}
-
 unsigned int kvm_sve_max_vl;
 
 int kvm_arm_init_sve(void)
-- 
2.29.2.299.gdc1121823c-goog

_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

Reply via email to