On 6/19/2026 8:31 AM, Ackerley Tng via B4 Relay wrote:
@@ -4969,6 +4973,11 @@ static int kvm_vm_ioctl_check_extension_generic(struct 
kvm *kvm, long arg)
                return 1;
        case KVM_CAP_GUEST_MEMFD_FLAGS:
                return kvm_gmem_get_supported_flags(kvm);
+       case KVM_CAP_GUEST_MEMFD_MEMORY_ATTRIBUTES:
+               if (!gmem_in_place_conversion || !kvm_supports_private_mem(kvm))
+                       return 0;
+
+               return KVM_MEMORY_ATTRIBUTE_PRIVATE;
  #endif
        default:
                break;

this looks inconsistent with the

        case KVM_SET_MEMORY_ATTRIBUTES2:
                if (!gmem_in_place_conversion)
                        return -ENOTTY;

Well, the check of

        if (!kvm_arch_has_private_mem(f->kvm))
                return -EINVAL;

is buried in the following kvm_gmem_set_attributes(). How about moving of kvm_arch_has_private_mem() check to put it along with gmem_in_place_conversion check in kvm_gmem_ioctl() in Patch 13?

Reply via email to