Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qemu for openSUSE:Factory checked in 
at 2021-03-08 15:14:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qemu (Old)
 and      /work/SRC/openSUSE:Factory/.qemu.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qemu"

Mon Mar  8 15:14:56 2021 rev:198 rq:876626 version:5.2.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/qemu/qemu.changes        2021-03-02 
12:31:03.187606946 +0100
+++ /work/SRC/openSUSE:Factory/.qemu.new.2378/qemu.changes      2021-03-08 
15:15:50.853875227 +0100
@@ -1,0 +2,21 @@
+Wed Mar  3 17:18:39 UTC 2021 - Bruce Rogers <[email protected]>
+
+- 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
+
+-------------------------------------------------------------------
+Fri Feb 26 15:31:46 UTC 2021 - Bruce Rogers <[email protected]>
+
+- Added a few more usability improvements for our git packaging
+  workflow
+
+-------------------------------------------------------------------

New:
----
  hw-s390x-modularize-virtio-gpu-ccw.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qemu.spec ++++++
--- /var/tmp/diff_new_pack.r0n0Z5/_old  2021-03-08 15:15:55.245878610 +0100
+++ /var/tmp/diff_new_pack.r0n0Z5/_new  2021-03-08 15:15:55.249878612 +0100
@@ -157,51 +157,52 @@
 Patch00024:     monitor-Fix-assertion-failure-on-shutdow.patch
 Patch00025:     spice-app-avoid-crash-when-core-spice-mo.patch
 Patch00026:     hw-s390x-fix-build-for-virtio-9p-ccw.patch
-Patch00027:     XXX-dont-dump-core-on-sigabort.patch
-Patch00028:     qemu-binfmt-conf-Modify-default-path.patch
-Patch00029:     qemu-cvs-gettimeofday.patch
-Patch00030:     qemu-cvs-ioctl_debug.patch
-Patch00031:     qemu-cvs-ioctl_nodirection.patch
-Patch00032:     linux-user-add-binfmt-wrapper-for-argv-0.patch
-Patch00033:     PPC-KVM-Disable-mmu-notifier-check.patch
-Patch00034:     linux-user-binfmt-support-host-binaries.patch
-Patch00035:     linux-user-Fake-proc-cpuinfo.patch
-Patch00036:     linux-user-use-target_ulong.patch
-Patch00037:     Make-char-muxer-more-robust-wrt-small-FI.patch
-Patch00038:     linux-user-lseek-explicitly-cast-non-set.patch
-Patch00039:     AIO-Reduce-number-of-threads-for-32bit-h.patch
-Patch00040:     xen_disk-Add-suse-specific-flush-disable.patch
-Patch00041:     qemu-bridge-helper-reduce-security-profi.patch
-Patch00042:     qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch
-Patch00043:     roms-Makefile-pass-a-packaging-timestamp.patch
-Patch00044:     Raise-soft-address-space-limit-to-hard-l.patch
-Patch00045:     increase-x86_64-physical-bits-to-42.patch
-Patch00046:     i8254-Fix-migration-from-SLE11-SP2.patch
-Patch00047:     acpi_piix4-Fix-migration-from-SLE11-SP2.patch
-Patch00048:     Make-installed-scripts-explicitly-python.patch
-Patch00049:     hw-smbios-handle-both-file-formats-regar.patch
-Patch00050:     xen-add-block-resize-support-for-xen-dis.patch
-Patch00051:     tests-qemu-iotests-Triple-timeout-of-i-o.patch
-Patch00052:     tests-Fix-block-tests-to-be-compatible-w.patch
-Patch00053:     xen-ignore-live-parameter-from-xen-save-.patch
-Patch00054:     tests-change-error-message-in-test-162.patch
-Patch00055:     hw-intc-exynos4210_gic-provide-more-room.patch
-Patch00056:     configure-only-populate-roms-if-softmmu.patch
-Patch00057:     pc-bios-s390-ccw-net-avoid-warning-about.patch
-Patch00058:     roms-change-cross-compiler-naming-to-be-.patch
-Patch00059:     test-add-mapping-from-arch-of-i686-to-qe.patch
-Patch00060:     configure-remove-pkgversion-from-CONFIG_.patch
-Patch00061:     docs-add-SUSE-support-statements-to-html.patch
-Patch00062:     s390x-Fix-stringop-truncation-issue-repo.patch
-Patch00063:     Revert-qht-constify-qht_statistics_init.patch
-Patch00064:     qht-Revert-some-constification-in-qht.c.patch
-Patch00065:     meson-install-ivshmem-client-and-ivshmem.patch
-Patch00066:     Revert-roms-efirom-tests-uefi-test-tools.patch
-Patch00067:     Makefile-Don-t-check-pc-bios-as-pre-requ.patch
-Patch00068:     roms-Makefile-add-cross-file-to-qboot-me.patch
-Patch00069:     usb-Help-compiler-out-to-avoid-a-warning.patch
-Patch00070:     module-for-virtio-gpu-pre-load-module-to.patch
-Patch00071:     qom-handle-case-of-chardev-spice-module-.patch
+Patch00027:     hw-s390x-modularize-virtio-gpu-ccw.patch
+Patch00028:     XXX-dont-dump-core-on-sigabort.patch
+Patch00029:     qemu-binfmt-conf-Modify-default-path.patch
+Patch00030:     qemu-cvs-gettimeofday.patch
+Patch00031:     qemu-cvs-ioctl_debug.patch
+Patch00032:     qemu-cvs-ioctl_nodirection.patch
+Patch00033:     linux-user-add-binfmt-wrapper-for-argv-0.patch
+Patch00034:     PPC-KVM-Disable-mmu-notifier-check.patch
+Patch00035:     linux-user-binfmt-support-host-binaries.patch
+Patch00036:     linux-user-Fake-proc-cpuinfo.patch
+Patch00037:     linux-user-use-target_ulong.patch
+Patch00038:     Make-char-muxer-more-robust-wrt-small-FI.patch
+Patch00039:     linux-user-lseek-explicitly-cast-non-set.patch
+Patch00040:     AIO-Reduce-number-of-threads-for-32bit-h.patch
+Patch00041:     xen_disk-Add-suse-specific-flush-disable.patch
+Patch00042:     qemu-bridge-helper-reduce-security-profi.patch
+Patch00043:     qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch
+Patch00044:     roms-Makefile-pass-a-packaging-timestamp.patch
+Patch00045:     Raise-soft-address-space-limit-to-hard-l.patch
+Patch00046:     increase-x86_64-physical-bits-to-42.patch
+Patch00047:     i8254-Fix-migration-from-SLE11-SP2.patch
+Patch00048:     acpi_piix4-Fix-migration-from-SLE11-SP2.patch
+Patch00049:     Make-installed-scripts-explicitly-python.patch
+Patch00050:     hw-smbios-handle-both-file-formats-regar.patch
+Patch00051:     xen-add-block-resize-support-for-xen-dis.patch
+Patch00052:     tests-qemu-iotests-Triple-timeout-of-i-o.patch
+Patch00053:     tests-Fix-block-tests-to-be-compatible-w.patch
+Patch00054:     xen-ignore-live-parameter-from-xen-save-.patch
+Patch00055:     tests-change-error-message-in-test-162.patch
+Patch00056:     hw-intc-exynos4210_gic-provide-more-room.patch
+Patch00057:     configure-only-populate-roms-if-softmmu.patch
+Patch00058:     pc-bios-s390-ccw-net-avoid-warning-about.patch
+Patch00059:     roms-change-cross-compiler-naming-to-be-.patch
+Patch00060:     test-add-mapping-from-arch-of-i686-to-qe.patch
+Patch00061:     configure-remove-pkgversion-from-CONFIG_.patch
+Patch00062:     docs-add-SUSE-support-statements-to-html.patch
+Patch00063:     s390x-Fix-stringop-truncation-issue-repo.patch
+Patch00064:     Revert-qht-constify-qht_statistics_init.patch
+Patch00065:     qht-Revert-some-constification-in-qht.c.patch
+Patch00066:     meson-install-ivshmem-client-and-ivshmem.patch
+Patch00067:     Revert-roms-efirom-tests-uefi-test-tools.patch
+Patch00068:     Makefile-Don-t-check-pc-bios-as-pre-requ.patch
+Patch00069:     roms-Makefile-add-cross-file-to-qboot-me.patch
+Patch00070:     usb-Help-compiler-out-to-avoid-a-warning.patch
+Patch00071:     module-for-virtio-gpu-pre-load-module-to.patch
+Patch00072:     qom-handle-case-of-chardev-spice-module-.patch
 # Patches applied in roms/seabios/:
 Patch01000:     seabios-use-python2-explicitly-as-needed.patch
 Patch01001:     seabios-switch-to-python3-as-needed.patch
@@ -364,7 +365,9 @@
 Recommends:     qemu-ksm = %{qemuver}
 Recommends:     qemu-tools
 Recommends:     qemu-ui-curses
-%ifnarch s390x
+%ifarch s390x
+Recommends:     qemu-hw-s390x-virtio-gpu-ccw
+%else
 Recommends:     qemu-hw-display-qxl
 Recommends:     qemu-hw-display-virtio-gpu
 Recommends:     qemu-hw-display-virtio-gpu-pci
@@ -709,6 +712,7 @@
 Group:          System/Emulators/PC
 Version:        %{qemuver}
 Release:        0
+Requires:       qemu-hw-display-virtio-gpu
 Provides:       %name:%_datadir/%name/forsplits/11
 %{qemu_module_conflicts}
 
@@ -726,6 +730,18 @@
 %description hw-display-virtio-vga
 This package contains a virtio vga driver for QEMU
 
+%package hw-s390x-virtio-gpu-ccw
+Summary:        S390x virtio-gpu driver for QEMU
+Group:          System/Emulators/PC
+Version:        %{qemuver}
+Release:        0
+Requires:       qemu-hw-display-virtio-gpu
+Provides:       %name:%_datadir/%name/forsplits/13
+%{qemu_module_conflicts}
+
+%description hw-s390x-virtio-gpu-ccw
+This package contains an s390x virtio gpu driver for QEMU
+
 %package hw-usb-redirect
 Summary:        USB redirection support for QEMU
 Group:          System/Emulators/PC
@@ -1070,23 +1086,24 @@
 %patch00058 -p1
 %patch00059 -p1
 %patch00060 -p1
-%if %{legacy_qemu_kvm}
 %patch00061 -p1
-%endif
+%if %{legacy_qemu_kvm}
 %patch00062 -p1
+%endif
 %patch00063 -p1
 %patch00064 -p1
 %patch00065 -p1
 %patch00066 -p1
 %patch00067 -p1
-%ifarch aarch64
 %patch00068 -p1
-%endif
-%ifarch %arm %ix86 ppc
+%ifarch aarch64
 %patch00069 -p1
 %endif
+%ifarch %arm %ix86 ppc
 %patch00070 -p1
+%endif
 %patch00071 -p1
+%patch00072 -p1
 %patch01000 -p1
 %patch01001 -p1
 %patch01002 -p1
@@ -1750,7 +1767,7 @@
 ln -s -f %{_sysconfdir}/alternatives/skiboot.lid 
%{buildroot}%{_datadir}/%name/skiboot.lid
 
 install -D -m 0644 %{SOURCE201} 
%{buildroot}%_datadir/%name/forsplits/pkg-split.txt
-for X in 00 01 02 03 04 05 06 07 08 09 10 11 12 13
+for X in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
 do
   ln -s pkg-split.txt %{buildroot}%_datadir/%name/forsplits/$X
 done
@@ -1855,7 +1872,9 @@
 %dir %_datadir/%name
 %dir %_datadir/%name/firmware
 %dir %_datadir/%name/forsplits
-%_datadir/%name/forsplits/13
+%_datadir/%name/forsplits/14
+%_datadir/%name/forsplits/15
+%_datadir/%name/forsplits/16
 %_datadir/%name/forsplits/pkg-split.txt
 %_datadir/%name/keymaps
 %_datadir/%name/qemu-ifup
@@ -2214,6 +2233,14 @@
 %dir %_libdir/%name
 %_libdir/%name/hw-display-virtio-vga.so
 
+%files hw-s390x-virtio-gpu-ccw
+%defattr(-, root, root)
+%dir %_datadir/%name
+%dir %_datadir/%name/forsplits
+%_datadir/%name/forsplits/13
+%dir %_libdir/%name
+%_libdir/%name/hw-s390x-virtio-gpu-ccw.so
+
 %files hw-usb-redirect
 %defattr(-, root, root)
 %dir %_datadir/%name

++++++ bundles.tar.xz ++++++
Binary files old/553032db17440f8de011390e5a1cfddd13751b0b.bundle and 
new/553032db17440f8de011390e5a1cfddd13751b0b.bundle differ

++++++ config.sh ++++++
--- /var/tmp/diff_new_pack.r0n0Z5/_old  2021-03-08 15:15:55.785879025 +0100
+++ /var/tmp/diff_new_pack.r0n0Z5/_new  2021-03-08 15:15:55.789879029 +0100
@@ -4,6 +4,14 @@
 
 # The next few VARIABLES are to be edited as required:
 
+# Here is the git repo which tracks a separate upstream git based project
+# We take this approach so we can have our own tags and branches, and store
+# the patches in git for others to access outside of the bundle.
+PACKAGE_MAIN_GIT_REPO=https://github.com/openSUSE/qemu.git
+
+# This is the upstream for the PACKAGE_MAIN_GIT_REPO
+UPSTREAM_GIT_REPO=https://gitlab.com/qemu-project/qemu.git
+
 # The following specifies the upstream tag or commit upon which our patchqueue
 # gets rebased. The special value LATEST may be used to "automatically" track
 # the upstream development tree in the master branch
@@ -28,9 +36,8 @@
 NUMBERED_PATCHES=0
 
 PATCH_RANGE=1000
-REPO_COUNT=36
 
-# This tracks the git submodule path within the superproject (1st entry)
+# This array tracks all git submodule paths within the superproject (1st entry)
 PATCH_PATH_MAP=(
     ""
     "roms/seabios/"
@@ -70,11 +77,7 @@
     
"roms/edk2/MdeModulePkg/Library/BrotliCompress/brotli/research/libdivsufsort/"
 )
 
-# Perhaps we need to instead use the terminal local dirname as the index
-# and store the ~/git/ as a separate VARIABLE
-# This way, we only have one big array instead of two
-# BUT STILL WE NEED TO START WITH THE DATA STORED SOMEWHERE!!!!!!
-# (order must correspond to PATCH_PATH_MAP)
+# (order and count must correspond to PATCH_PATH_MAP)
 LOCAL_REPO_MAP=(
     ~/git/qemu-opensuse
     ~/git/qemu-seabios
@@ -113,8 +116,3 @@
     ~/git/qemu-edk2-BrotliCompress-brotli-research-esaxx
     ~/git/qemu-edk2-BrotliCompress-brotli-research-libdivsufsort
 )
-
-# TEMPORARY! FOR NOW WE REQUIRE THESE LOCALLY TO DO WORK ON PACKAGE
-REQUIRED_LOCAL_REPO_MAP=(
-    ~/git/qemu-opensuse
-)

++++++ hw-s390x-modularize-virtio-gpu-ccw.patch ++++++
From: Halil Pasic <[email protected]>
Date: Tue, 2 Mar 2021 18:35:44 +0100
Subject: hw/s390x: modularize virtio-gpu-ccw

Git-commit: 0000000000000000000000000000000000000000
References: bsc#1181103

Since the virtio-gpu-ccw device depends on the hw-display-virtio-gpu
module, which provides the type virtio-gpu-device, packaging the
hw-display-virtio-gpu module as a separate package that may or may not
be installed along with the qemu package leads to problems. Namely if
the hw-display-virtio-gpu is absent, qemu continues to advertise
virtio-gpu-ccw, but it aborts not only when one attempts using
virtio-gpu-ccw, but also when libvirtd's capability probing tries
to instantiate the type to introspect it.

Let us thus introduce a module named hw-s390x-virtio-gpu-ccw that
is going to provide the virtio-gpu-ccw device. The hw-s390x prefix
was chosen because it is not a portable device. Because registering
virtio-gpu-ccw would make non-s390x emulator fail due to a missing
parent type, if built as a module, before registering it, we check
if the ancestor types are already registered.

With virtio-gpu-ccw built as a module, the correct way to package a
modularized qemu is to require that hw-display-virtio-gpu must be
installed whenever the module hw-s390x-virtio-gpu-ccw.

The definition S390_ADAPTER_SUPPRESSIBLE was moved to "cpu.h", per
suggestion of Thomas Huth. From interface design perspective, IMHO, not
a good thing as it belongs to the public interface of
css_register_io_adapters(). We did this because CONFIG_KVM requeires
NEED_CPU_H and Thomas, and other commenters did not like the
consequences of that.

Moving the interrupt related declarations to s390_flic.h was suggested
by Cornelia Huck.

Signed-off-by: Halil Pasic <[email protected]>
Signed-off-by: Bruce Rogers <[email protected]>
---
 hw/s390x/meson.build         |  7 ++++-
 hw/s390x/virtio-ccw-gpu.c    |  5 ++++
 include/hw/s390x/css.h       |  7 -----
 include/hw/s390x/s390_flic.h |  3 +++
 include/qom/object.h         | 10 ++++++++
 qom/object.c                 | 50 ++++++++++++++++++++++++++++++++++++
 target/s390x/cpu.h           |  9 ++++---
 util/module.c                |  1 +
 8 files changed, 81 insertions(+), 11 deletions(-)

diff --git a/hw/s390x/meson.build b/hw/s390x/meson.build
index e53b7a69930a27dd030994ab6a54..1c7baa629cd71f3b62b69dc0cf7c 100644
--- a/hw/s390x/meson.build
+++ b/hw/s390x/meson.build
@@ -34,7 +34,6 @@ virtio_ss.add(files('virtio-ccw.c'))
 virtio_ss.add(when: 'CONFIG_VIRTIO_BALLOON', if_true: 
files('virtio-ccw-balloon.c'))
 virtio_ss.add(when: 'CONFIG_VIRTIO_BLK', if_true: files('virtio-ccw-blk.c'))
 virtio_ss.add(when: 'CONFIG_VIRTIO_CRYPTO', if_true: 
files('virtio-ccw-crypto.c'))
-virtio_ss.add(when: 'CONFIG_VIRTIO_GPU', if_true: files('virtio-ccw-gpu.c'))
 virtio_ss.add(when: 'CONFIG_VIRTIO_INPUT', if_true: 
files('virtio-ccw-input.c'))
 virtio_ss.add(when: 'CONFIG_VIRTIO_NET', if_true: files('virtio-ccw-net.c'))
 virtio_ss.add(when: 'CONFIG_VIRTIO_RNG', if_true: files('virtio-ccw-rng.c'))
@@ -46,3 +45,9 @@ virtio_ss.add(when: 'CONFIG_VHOST_USER_FS', if_true: 
files('vhost-user-fs-ccw.c'
 s390x_ss.add_all(when: 'CONFIG_VIRTIO_CCW', if_true: virtio_ss)
 
 hw_arch += {'s390x': s390x_ss}
+
+hw_s390x_modules = {}
+virtio_gpu_ccw_ss = ss.source_set()
+virtio_gpu_ccw_ss.add(when: 'CONFIG_VIRTIO_GPU', if_true: 
[files('virtio-ccw-gpu.c'), pixman])
+hw_s390x_modules += {'virtio-gpu-ccw': virtio_gpu_ccw_ss}
+modules += {'hw-s390x': hw_s390x_modules}
diff --git a/hw/s390x/virtio-ccw-gpu.c b/hw/s390x/virtio-ccw-gpu.c
index c301e2586bde8aff7333ea029c02..ccdf6ac20f3946e9480b8aae4d99 100644
--- a/hw/s390x/virtio-ccw-gpu.c
+++ b/hw/s390x/virtio-ccw-gpu.c
@@ -62,6 +62,11 @@ static const TypeInfo virtio_ccw_gpu = {
 
 static void virtio_ccw_gpu_register(void)
 {
+#ifdef CONFIG_MODULES
+    if (!type_ancestors_registered(&virtio_ccw_gpu)) {
+        return;
+    }
+#endif
     type_register_static(&virtio_ccw_gpu);
 }
 
diff --git a/include/hw/s390x/css.h b/include/hw/s390x/css.h
index 08c869ab0afc18f34fb28056ce29..7858666307a1baaf2586dce56c07 100644
--- a/include/hw/s390x/css.h
+++ b/include/hw/s390x/css.h
@@ -12,7 +12,6 @@
 #ifndef CSS_H
 #define CSS_H
 
-#include "cpu.h"
 #include "hw/s390x/adapter.h"
 #include "hw/s390x/s390_flic.h"
 #include "hw/s390x/ioinst.h"
@@ -233,12 +232,6 @@ uint32_t css_get_adapter_id(CssIoAdapterType type, uint8_t 
isc);
 void css_register_io_adapters(CssIoAdapterType type, bool swap, bool maskable,
                               uint8_t flags, Error **errp);
 
-#ifndef CONFIG_KVM
-#define S390_ADAPTER_SUPPRESSIBLE 0x01
-#else
-#define S390_ADAPTER_SUPPRESSIBLE KVM_S390_ADAPTER_SUPPRESSIBLE
-#endif
-
 #ifndef CONFIG_USER_ONLY
 SubchDev *css_find_subch(uint8_t m, uint8_t cssid, uint8_t ssid,
                          uint16_t schid);
diff --git a/include/hw/s390x/s390_flic.h b/include/hw/s390x/s390_flic.h
index e91b15d2d6af5feb2e7e7284bfbd..3907a13d07664bad96d466b3d20a 100644
--- a/include/hw/s390x/s390_flic.h
+++ b/include/hw/s390x/s390_flic.h
@@ -134,6 +134,9 @@ void s390_flic_init(void);
 S390FLICState *s390_get_flic(void);
 QEMUS390FLICState *s390_get_qemu_flic(S390FLICState *fs);
 S390FLICStateClass *s390_get_flic_class(S390FLICState *fs);
+void s390_crw_mchk(void);
+void s390_io_interrupt(uint16_t subchannel_id, uint16_t subchannel_nr,
+                       uint32_t io_int_parm, uint32_t io_int_word);
 bool ais_needed(void *opaque);
 
 #endif /* HW_S390_FLIC_H */
diff --git a/include/qom/object.h b/include/qom/object.h
index d378f13a116a6845966489e7436e..990bdb601b2a5c7caeba5340c880 100644
--- a/include/qom/object.h
+++ b/include/qom/object.h
@@ -814,6 +814,16 @@ ObjectClass *object_get_class(Object *obj);
  */
 const char *object_get_typename(const Object *obj);
 
+/**
+ * type_ancestors_registered:
+ * @info: The #TypeInfo of the type
+ *
+ * Returns: true if all the ancestor types, that is classes and interfaces this
+ * type inherits form are all already registered, false if there is an ancestor
+ * that ain't registered yet
+ */
+bool type_ancestors_registered(const TypeInfo *info);
+
 /**
  * type_register_static:
  * @info: The #TypeInfo of the new type.
diff --git a/qom/object.c b/qom/object.c
index 10653552334549241cd5672d7a02..8b8cd1bdc9d176af921315b9cc2f 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -281,6 +281,56 @@ static void object_property_free(gpointer data)
     g_free(prop);
 }
 
+static TypeImpl *type_get_parent_const(const TypeImpl *ti)
+{
+    return ti->parent_type ? ti->parent_type : type_get_by_name(ti->parent);
+}
+
+
+static bool __type_ancestors_registered(const TypeImpl *ti)
+{
+    TypeImpl *parent;
+    int i;
+
+    if (!ti) {
+        return false;
+    }
+
+    if (ti->class) {
+        /* fully initialized */
+        return true;
+    }
+
+    for (i = 0; i < ti->num_interfaces; i++) {
+        if (!type_get_by_name(ti->interfaces[i].typename)) {
+            return false;
+        }
+    }
+    if (ti->parent) {
+        parent = type_get_parent_const(ti);
+        if (!parent) {
+            return false;
+        }
+        return __type_ancestors_registered(parent);
+    }
+    return true;
+}
+
+bool type_ancestors_registered(const TypeInfo *info)
+{
+    int i;
+
+    for (i = 0; info->interfaces && info->interfaces[i].type; i++) {
+        if (!type_get_by_name(info->interfaces[i].type)) {
+            return false;
+        }
+    }
+    if (info->parent) {
+        return __type_ancestors_registered(type_get_by_name(info->parent));
+    }
+    return true;
+}
+
 static void type_initialize(TypeImpl *ti)
 {
     TypeImpl *parent;
diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
index 60d434d5edd55c59cfe7e345967c..b434b905c0ae337c62ddcc9d7e34 100644
--- a/target/s390x/cpu.h
+++ b/target/s390x/cpu.h
@@ -40,6 +40,12 @@
 
 #define S390_MAX_CPUS 248
 
+#ifndef CONFIG_KVM
+#define S390_ADAPTER_SUPPRESSIBLE 0x01
+#else
+#define S390_ADAPTER_SUPPRESSIBLE KVM_S390_ADAPTER_SUPPRESSIBLE
+#endif
+
 typedef struct PSW {
     uint64_t mask;
     uint64_t addr;
@@ -806,9 +812,6 @@ int cpu_s390x_signal_handler(int host_signum, void *pinfo, 
void *puc);
 
 
 /* interrupt.c */
-void s390_crw_mchk(void);
-void s390_io_interrupt(uint16_t subchannel_id, uint16_t subchannel_nr,
-                       uint32_t io_int_parm, uint32_t io_int_word);
 #define RA_IGNORED                  0
 void s390_program_interrupt(CPUS390XState *env, uint32_t code, uintptr_t ra);
 /* service interrupts are floating therefore we must not pass an cpustate */
diff --git a/util/module.c b/util/module.c
index c65060c167df236d6e2163472708..cbe89fede628c3674e49194ee688 100644
--- a/util/module.c
+++ b/util/module.c
@@ -304,6 +304,7 @@ static struct {
     { "virtio-gpu-pci-base",   "hw-", "display-virtio-gpu-pci" },
     { "virtio-gpu-pci",        "hw-", "display-virtio-gpu-pci" },
     { "vhost-user-gpu-pci",    "hw-", "display-virtio-gpu-pci" },
+    { "virtio-gpu-ccw",        "hw-", "s390x-virtio-gpu-ccw"   },
     { "virtio-vga-base",       "hw-", "display-virtio-vga"    },
     { "virtio-vga",            "hw-", "display-virtio-vga"    },
     { "vhost-user-vga",        "hw-", "display-virtio-vga"    },
++++++ module-for-virtio-gpu-pre-load-module-to.patch ++++++
--- /var/tmp/diff_new_pack.r0n0Z5/_old  2021-03-08 15:15:55.937879143 +0100
+++ /var/tmp/diff_new_pack.r0n0Z5/_new  2021-03-08 15:15:55.941879145 +0100
@@ -28,10 +28,10 @@
  
  #endif
 diff --git a/qom/object.c b/qom/object.c
-index 10653552334549241cd5672d7a02..6f301fec34d103b0b07bc41d107c 100644
+index 8b8cd1bdc9d176af921315b9cc2f..588f09ae22ba33bd6c3298995fc6 100644
 --- a/qom/object.c
 +++ b/qom/object.c
-@@ -516,6 +516,18 @@ static void object_initialize_with_type(Object *obj, 
size_t size, TypeImpl *type
+@@ -566,6 +566,18 @@ static void object_initialize_with_type(Object *obj, 
size_t size, TypeImpl *type
      object_post_init_with_type(obj, type);
  }
  




++++++ qemu.spec.in ++++++
--- /var/tmp/diff_new_pack.r0n0Z5/_old  2021-03-08 15:15:56.193879339 +0100
+++ /var/tmp/diff_new_pack.r0n0Z5/_new  2021-03-08 15:15:56.197879343 +0100
@@ -272,7 +272,9 @@
 Recommends:     qemu-ksm = %{qemuver}
 Recommends:     qemu-tools
 Recommends:     qemu-ui-curses
-%ifnarch s390x
+%ifarch s390x
+Recommends:     qemu-hw-s390x-virtio-gpu-ccw
+%else
 Recommends:     qemu-hw-display-qxl
 Recommends:     qemu-hw-display-virtio-gpu
 Recommends:     qemu-hw-display-virtio-gpu-pci
@@ -617,6 +619,7 @@
 Group:          System/Emulators/PC
 Version:        %{qemuver}
 Release:        0
+Requires:       qemu-hw-display-virtio-gpu
 Provides:       %name:%_datadir/%name/forsplits/11
 %{qemu_module_conflicts}
 
@@ -634,6 +637,18 @@
 %description hw-display-virtio-vga
 This package contains a virtio vga driver for QEMU
 
+%package hw-s390x-virtio-gpu-ccw
+Summary:        S390x virtio-gpu driver for QEMU
+Group:          System/Emulators/PC
+Version:        %{qemuver}
+Release:        0
+Requires:       qemu-hw-display-virtio-gpu
+Provides:       %name:%_datadir/%name/forsplits/13
+%{qemu_module_conflicts}
+
+%description hw-s390x-virtio-gpu-ccw
+This package contains an s390x virtio gpu driver for QEMU
+
 %package hw-usb-redirect
 Summary:        USB redirection support for QEMU
 Group:          System/Emulators/PC
@@ -1567,7 +1582,7 @@
 ln -s -f %{_sysconfdir}/alternatives/skiboot.lid 
%{buildroot}%{_datadir}/%name/skiboot.lid
 
 install -D -m 0644 %{SOURCE201} 
%{buildroot}%_datadir/%name/forsplits/pkg-split.txt
-for X in 00 01 02 03 04 05 06 07 08 09 10 11 12 13
+for X in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
 do
   ln -s pkg-split.txt %{buildroot}%_datadir/%name/forsplits/$X
 done
@@ -1672,7 +1687,9 @@
 %dir %_datadir/%name
 %dir %_datadir/%name/firmware
 %dir %_datadir/%name/forsplits
-%_datadir/%name/forsplits/13
+%_datadir/%name/forsplits/14
+%_datadir/%name/forsplits/15
+%_datadir/%name/forsplits/16
 %_datadir/%name/forsplits/pkg-split.txt
 %_datadir/%name/keymaps
 %_datadir/%name/qemu-ifup
@@ -2031,6 +2048,14 @@
 %dir %_libdir/%name
 %_libdir/%name/hw-display-virtio-vga.so
 
+%files hw-s390x-virtio-gpu-ccw
+%defattr(-, root, root)
+%dir %_datadir/%name
+%dir %_datadir/%name/forsplits
+%_datadir/%name/forsplits/13
+%dir %_libdir/%name
+%_libdir/%name/hw-s390x-virtio-gpu-ccw.so
+
 %files hw-usb-redirect
 %defattr(-, root, root)
 %dir %_datadir/%name

++++++ qom-handle-case-of-chardev-spice-module-.patch ++++++
--- /var/tmp/diff_new_pack.r0n0Z5/_old  2021-03-08 15:15:56.221879362 +0100
+++ /var/tmp/diff_new_pack.r0n0Z5/_new  2021-03-08 15:15:56.221879362 +0100
@@ -14,7 +14,7 @@
  1 file changed, 6 insertions(+)
 
 diff --git a/qom/object.c b/qom/object.c
-index 6f301fec34d103b0b07bc41d107c..0dec164192a55d3d9d955d445db9 100644
+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)

++++++ update_git.sh ++++++
++++ 868 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/qemu/update_git.sh
++++ and /work/SRC/openSUSE:Factory/.qemu.new.2378/update_git.sh

Reply via email to