qemu/qom-handle-case-of-chardev-spice-module-.patch
Bruce Rogers 93b0d48713 Accepting request 876625 from home:bfrogers:branches:Virtualization
- Add patch from IBM to improve modularization situation on s390
  where a new qemu module, hw-s390x-virtio-gpu-ccw.so, and a
  corresponding new qemu-hw-s390x-virtio-gpu-ccw subpackage, is
  split out (this parallels the hw-display-virtio-gpu-pci.so module).
  Split-provides file is also used to track this functionality
  splitout. Both the packages supplying the above mentioned modules
  now have a Requires on the qemu-hw-display-virtio-gpu package. It
  is anticipated that this change is going in upstream as well, and
  if done differently the plan is to update to the upstream
  implementation if possible (bsc#1181103)
  hw-s390x-modularize-virtio-gpu-ccw.patch

OBS-URL: https://build.opensuse.org/request/show/876625
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=624
2021-03-03 23:00:51 +00:00

33 lines
1.1 KiB
Diff

From: Bruce Rogers <brogers@suse.com>
Date: Mon, 25 Jan 2021 22:09:27 -0700
Subject: qom: handle case of chardev-spice module unavailability
When qemu is built with modules, but a given module doesn't load
qemu should handle that gracefully. When chardev-spice.so isn't
able to be loaded and qemu is invoked with -display spice-app,
qemu will reach an abort call. Explicitly detect these conditions
and error out in a normal way before we reach the abort.
Signed-off-by: Bruce Rogers <brogers@suse.com>
---
qom/object.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/qom/object.c b/qom/object.c
index 588f09ae22ba33bd6c3298995fc6..97880a0495a95de0adcfedaa4f69 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -236,6 +236,12 @@ static bool type_is_ancestor(TypeImpl *type, TypeImpl *target_type)
return true;
}
+
+ if (type->parent && !strcmp(type->parent, "chardev-spiceport")) {
+ if (!type->parent_type && !type_get_by_name(type->parent)) {
+ return false;
+ }
+ }
type = type_get_parent(type);
}