Commit 4962156e66 for qemu.org

commit 4962156e66dbb6b7e3e5a231ed660acae2d271d3
Author: Peter Xu <peterx@redhat.com>
Date:   Tue Sep 29 18:50:09 2026 -0500

    kvm: Provide explicit error for kvm_create_guest_memfd()

    So that there will be a verbal string returned when kvm not enabled, or
    kvm not compiled.

    Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
    Reviewed-by: Fabiano Rosas <farosas@suse.de>
    Reviewed-by: Michael Roth <michael.roth@amd.com>
    Reviewed-by: David Hildenbrand <david@kernel.org>
    Signed-off-by: Michael Roth <michael.roth@amd.com>
    Link: https://lore.kernel.org/r/20260929235109.1398509-4-michael.roth@amd.com
    Signed-off-by: Peter Xu <peterx@redhat.com>

diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index 120cab1e22..0b1407e4ea 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -4758,6 +4758,17 @@ int kvm_create_guest_memfd(uint64_t size, uint64_t flags, Error **errp)
         .flags = flags,
     };

+    /*
+     * kvm_create_guest_memfd() can be invoked from generic hostmem code
+     * where KVM might be compiled but not necessarily enabled. Because
+     * of this, check for KVM support explicitly before continuing with
+     * any KVM-specific checks.
+     */
+    if (!kvm_enabled()) {
+        error_setg(errp, "guest-memfd requires KVM accelerator");
+        return -1;
+    }
+
     if (!kvm_guest_memfd_supported) {
         error_setg(errp, "KVM does not support guest_memfd");
         return -1;
diff --git a/accel/stubs/kvm-stub.c b/accel/stubs/kvm-stub.c
index 3d34e3b99d..acbd0785e0 100644
--- a/accel/stubs/kvm-stub.c
+++ b/accel/stubs/kvm-stub.c
@@ -141,6 +141,7 @@ bool kvm_hwpoisoned_mem(void)

 int kvm_create_guest_memfd(uint64_t size, uint64_t flags, Error **errp)
 {
+    error_setg(errp, "KVM is not enabled");
     return -ENOSYS;
 }