All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] hw/s390x/ccw: Mark virtio-pci disable-legacy property as optional
@ 2026-05-20 18:33 Jaehoon Kim
  2026-05-22 18:24 ` Matthew Rosato
  2026-05-29 14:02 ` Cornelia Huck
  0 siblings, 2 replies; 3+ messages in thread
From: Jaehoon Kim @ 2026-05-20 18:33 UTC (permalink / raw)
  To: qemu-devel, qemu-s390x
  Cc: richard.henderson, iii, david, pasic, borntraeger, farman,
	mjrosato, cohuck, Jaehoon Kim

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>
---
 hw/s390x/s390-virtio-ccw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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));
-- 
2.54.0



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v1] hw/s390x/ccw: Mark virtio-pci disable-legacy property as optional
  2026-05-20 18:33 [PATCH v1] hw/s390x/ccw: Mark virtio-pci disable-legacy property as optional Jaehoon Kim
@ 2026-05-22 18:24 ` Matthew Rosato
  2026-05-29 14:02 ` Cornelia Huck
  1 sibling, 0 replies; 3+ messages in thread
From: Matthew Rosato @ 2026-05-22 18:24 UTC (permalink / raw)
  To: Jaehoon Kim, qemu-devel, qemu-s390x
  Cc: richard.henderson, iii, david, pasic, borntraeger, farman, cohuck

On 5/20/26 2:33 PM, Jaehoon Kim wrote:
> 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>

Thanks Jaehoon.  I was able to reproduce as well and confirmed that
this patch resolves the issue.

Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com>




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v1] hw/s390x/ccw: Mark virtio-pci disable-legacy property as optional
  2026-05-20 18:33 [PATCH v1] hw/s390x/ccw: Mark virtio-pci disable-legacy property as optional Jaehoon Kim
  2026-05-22 18:24 ` Matthew Rosato
@ 2026-05-29 14:02 ` Cornelia Huck
  1 sibling, 0 replies; 3+ messages in thread
From: Cornelia Huck @ 2026-05-29 14:02 UTC (permalink / raw)
  To: Jaehoon Kim, qemu-devel, qemu-s390x
  Cc: richard.henderson, iii, david, pasic, borntraeger, farman,
	mjrosato, Jaehoon Kim

On Wed, May 20 2026, Jaehoon Kim <jhkim@linux.ibm.com> wrote:

> 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>
> ---
>  hw/s390x/s390-virtio-ccw.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> 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));

Thanks, queued to s390-next.



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-05-29 14:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-20 18:33 [PATCH v1] hw/s390x/ccw: Mark virtio-pci disable-legacy property as optional Jaehoon Kim
2026-05-22 18:24 ` Matthew Rosato
2026-05-29 14:02 ` Cornelia Huck

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.