>-static bool kvm_is_vm_type_supported(unsigned long type) >+bool __kvm_is_vm_type_supported(unsigned long type) > { > return type == KVM_X86_DEFAULT_VM || > (type == KVM_X86_SW_PROTECTED_VM && > IS_ENABLED(CONFIG_KVM_SW_PROTECTED_VM) && tdp_enabled); maybe just do: switch (type) { case KVM_X86_DEFAULT_VM: return true; case KVM_X86_SW_PROTECTED_VM: return IS_ENABLED(CONFIG_KVM_SW_PROTECTED_VM) && tdp_enabled; default: return static_call(kvm_x86_is_vm_type_supported)(type); } There are two benefits 1) switch/case improves readability a little. 2) no need to expose __kvm_is_vm_type_supported() > } >+EXPORT_SYMBOL_GPL(__kvm_is_vm_type_supported); >+ >+static bool kvm_is_vm_type_supported(unsigned long type) >+{ >+ return static_call(kvm_x86_is_vm_type_supported)(type); >+} > > int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) > { >@@ -4784,6 +4790,10 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) > r = BIT(KVM_X86_DEFAULT_VM); > if (kvm_is_vm_type_supported(KVM_X86_SW_PROTECTED_VM)) > r |= BIT(KVM_X86_SW_PROTECTED_VM); >+ if (kvm_is_vm_type_supported(KVM_X86_TDX_VM)) >+ r |= BIT(KVM_X86_TDX_VM); >+ if (kvm_is_vm_type_supported(KVM_X86_SNP_VM)) >+ r |= BIT(KVM_X86_SNP_VM); maybe use a for-loop?