@samitouri / QOSamiQemu / commits / 6b2b8adc65

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>

Jaehoon Kim committed May 20, 2026 at 13:33 UTC 6b2b8adc65ccd0904b958ece4dc99b85156718f8
1 file changed +1 -1
hw/s390x/s390-virtio-ccw.c
+1 -1
@@ -946,7 +946,7 @@ static void ccw_machine_11_0_class_options(MachineClass *mc)
946 * keep legacy virtio-pci enabled.
947 */
948 static GlobalProperty compat[] = {
949 - { TYPE_VIRTIO_PCI, "disable-legacy", "off" },
949 + { TYPE_VIRTIO_PCI, "disable-legacy", "off", .optional = true },
950 };
951 ccw_machine_11_1_class_options(mc);
952 compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));