Commit 6b2b8adc65 for qemu.org

commit 6b2b8adc65ccd0904b958ece4dc99b85156718f8
Author: Jaehoon Kim <jhkim@linux.ibm.com>
Date:   Wed May 20 13:33:58 2026 -0500

    hw/s390x/ccw: Mark virtio-pci disable-legacy property as optional

    The s390-ccw-virtio-11.0 compatibility property for TYPE_VIRTIO_PCI
    "disable-legacy" causes QEMU to abort when instantiating
    vhost-user-fs-pci devices:

      Unexpected error in object_property_find_err() at
      ../qom/object.c:1284:
      qemu-system-s390x: -device vhost-user-fs-pci: can't apply
      global virtio-pci.disable-legacy=off: Property
      'vhost-user-fs-pci.disable-legacy' not found

    The issue occurs because some vhost-user devices like
    vhost-user-fs-pci only implement the non-transitional variant
    and do not define a generic device type. Non-transitional
    devices have disable-legacy hardcoded to "on" and do not
    expose it as a property, while only generic device types have
    the "disable-legacy" property. This affects users running
    older machine versions (11.0 and earlier) even when using the
    latest QEMU version.

    Mark the global property as optional so it only applies to
    devices that actually have the property, allowing vhost-user
    devices without a generic variant to be instantiated
    successfully on older machine versions.

    Fixes: 26103c13cff0 ("hw/s390x/ccw: Disable legacy virtio-pci by default (v11.1+)")
    Signed-off-by: Jaehoon Kim <jhkim@linux.ibm.com>
    Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com>
    Message-ID: <20260520183403.223983-1-jhkim@linux.ibm.com>
    Signed-off-by: Cornelia Huck <cohuck@redhat.com>

diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 4d35f9b10b..25a9fa4955 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -946,7 +946,7 @@ static void ccw_machine_11_0_class_options(MachineClass *mc)
      * keep legacy virtio-pci enabled.
      */
     static GlobalProperty compat[] = {
-        { TYPE_VIRTIO_PCI, "disable-legacy", "off" },
+        { TYPE_VIRTIO_PCI, "disable-legacy", "off", .optional = true },
     };
     ccw_machine_11_1_class_options(mc);
     compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));