Hello community,
here is the log from the commit of package qemu for openSUSE:Factory checked in at 2017-01-19 10:36:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qemu (Old)
and /work/SRC/openSUSE:Factory/.qemu.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qemu"
Changes:
--------
--- /work/SRC/openSUSE:Factory/qemu/qemu-linux-user.changes 2016-08-22 10:49:07.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/qemu-linux-user.changes 2017-01-19 10:36:40.405820711 +0100
@@ -1,0 +2,151 @@
+Sat Nov 19 15:24:08 UTC 2016 - brogers@suse.com
+
+- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+* Patches added:
+ 0069-roms-Makefile-pass-a-packaging-time.patch
+
+-------------------------------------------------------------------
+Thu Nov 10 21:49:18 UTC 2016 - brogers@suse.com
+
+- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+* Patches added:
+ 0041-vmsvga-correct-bitmap-and-pixmap-si.patch
+ 0042-scsi-mptconfig-fix-an-assert-expres.patch
+ 0043-scsi-mptconfig-fix-misuse-of-MPTSAS.patch
+ 0044-scsi-pvscsi-limit-loop-to-fetch-SG-.patch
+ 0045-usb-xhci-fix-memory-leak-in-usb_xhc.patch
+ 0046-scsi-mptsas-use-g_new0-to-allocate-.patch
+ 0047-scsi-pvscsi-limit-process-IO-loop-t.patch
+ 0048-virtio-add-check-for-descriptor-s-m.patch
+ 0049-net-mcf-limit-buffer-descriptor-cou.patch
+ 0050-usb-ehci-fix-memory-leak-in-ehci_pr.patch
+ 0051-xhci-limit-the-number-of-link-trbs-.patch
+ 0052-9pfs-allocate-space-for-guest-origi.patch
+ 0053-9pfs-fix-memory-leak-in-v9fs_link.patch
+ 0054-9pfs-fix-potential-host-memory-leak.patch
+ 0055-9pfs-fix-information-leak-in-xattr-.patch
+ 0056-9pfs-fix-memory-leak-in-v9fs_xattrc.patch
+ 0057-9pfs-fix-memory-leak-in-v9fs_write.patch
+ 0058-char-serial-check-divider-value-aga.patch
+ 0059-net-pcnet-check-rx-tx-descriptor-ri.patch
+ 0060-net-eepro100-fix-memory-leak-in-dev.patch
+ 0061-net-rocker-set-limit-to-DMA-buffer-.patch
+ 0062-net-vmxnet-initialise-local-tx-desc.patch
+ 0063-net-rtl8139-limit-processing-of-rin.patch
+ 0064-audio-intel-hda-check-stream-entry-.patch
+ 0065-virtio-gpu-fix-memory-leak-in-virti.patch
+ 0066-9pfs-fix-integer-overflow-issue-in-.patch
+ 0067-dma-rc4030-limit-interval-timer-rel.patch
+ 0068-net-imx-limit-buffer-descriptor-cou.patch
+
+-------------------------------------------------------------------
+Mon Nov 7 16:14:20 UTC 2016 - afaerber@suse.de
+
+- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+* Patch updated:
+ 0040-linux-user-skip-0-flag-from-proc-se.patch -> 0040-linux-user-remove-all-traces-of-qem.patch
+
+-------------------------------------------------------------------
+Tue Sep 27 16:18:35 UTC 2016 - afaerber@suse.de
+
+- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+* Fix issue with diffutils under qemu-ARCH-binfmt (schwab)
+ 0040-linux-user-skip-0-flag-from-proc-se.patch
+
+-------------------------------------------------------------------
+Thu Sep 22 15:04:48 UTC 2016 - afaerber@suse.de
+
+- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+* Fix ppc test failure
+ 0039-Fix-tlb_vaddr_to_host-with-CONFIG_U.patch
+
+-------------------------------------------------------------------
+Wed Sep 21 13:55:35 UTC 2016 - afaerber@suse.de
+
+- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+* Patches dropped:
+ 0034-build-link-with-libatomic-on-powerp.patch
+* Patches renamed:
+ 0035-xen-SUSE-xenlinux-unplug-for-emulat.patch -> 0034-xen-SUSE-xenlinux-unplug-for-emulat.patch
+ 0036-qemu-bridge-helper-reduce-security-.patch -> 0035-qemu-bridge-helper-reduce-security-.patch
+ 0037-qemu-binfmt-conf-use-qemu-ARCH-binf.patch -> 0036-qemu-binfmt-conf-use-qemu-ARCH-binf.patch
+ 0038-configure-Fix-detection-of-seccomp-.patch -> 0037-configure-Fix-detection-of-seccomp-.patch
+ 0039-linux-user-properly-test-for-infini.patch -> 0038-linux-user-properly-test-for-infini.patch
+
+-------------------------------------------------------------------
+Sat Sep 10 09:27:57 UTC 2016 - afaerber@suse.de
+
+- Updated to v2.7.0: See http://wiki.qemu-project.org/ChangeLog/2.7
+- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+- Properly test for infinite timeout in poll (schwab)
+ 0039-linux-user-properly-test-for-infini.patch
+
+-------------------------------------------------------------------
+Wed Aug 31 13:40:20 UTC 2016 - afaerber@suse.de
+
+- Update to v2.7.0-rc5: See http://wiki.qemu-project.org/ChangeLog/2.7
+
+-------------------------------------------------------------------
+Tue Aug 23 16:04:11 UTC 2016 - afaerber@suse.de
+
+- Updated to v2.7.0-rc2: See http://wiki.qemu-project.org/ChangeLog/2.7
+* Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+* Patches dropped:
+ 0002-qemu-0.9.0.cvs-binfmt.patch (script rewritten upstream)
+ 0009-block-vmdk-Support-creation-of-SCSI.patch (deprecated)
+ 0014-linux-user-Ignore-broken-loop-ioctl.patch (implemented upstream)
+ 0024-linux-user-add-more-blk-ioctls.patch (more implemented upstream)
+ 0034-qtest-Increase-socket-timeout.patch (increased further upstream)
+ 0036-configure-Enable-libseccomp-for-ppc.patch (enabled upstream)
+ 0038-block-split-large-discard-requests-.patch
+ 0041-xen-introduce-dummy-system-device.patch
+ 0042-xen-write-information-about-support.patch
+ 0043-xen-add-pvUSB-backend.patch
+ 0044-xen-move-xen_sysdev-to-xen_backend..patch
+ 0045-vnc-add-configurable-keyboard-delay.patch
+ 0046-configure-add-echo_version-helper.patch
+ 0047-configure-support-vte-2.91.patch
+ 0048-hw-arm-virt-mark-the-PCIe-host-cont.patch
+ 0050-scsi-esp-fix-migration.patch
+ 0051-xen-when-removing-a-backend-don-t-r.patch
+ 0052-xen-drain-submit-queue-in-xen-usb-b.patch
+ 0053-qcow2-avoid-extra-flushes-in-qcow2.patch
+ 0055-xen-use-a-common-function-for-pv-an.patch
+* Patches renamed:
+ 0010-linux-user-add-binfmt-wrapper-for-a.patch -> 0009-linux-user-add-binfmt-wrapper-for-a.patch
+ 0011-PPC-KVM-Disable-mmu-notifier-check.patch -> 0010-PPC-KVM-Disable-mmu-notifier-check.patch
+ 0012-linux-user-fix-segfault-deadlock.patch -> 0011-linux-user-fix-segfault-deadlock.patch
+ 0013-linux-user-binfmt-support-host-bina.patch -> 0012-linux-user-binfmt-support-host-bina.patch
+ 0015-linux-user-lock-tcg.patch -> 0013-linux-user-lock-tcg.patch
+ 0016-linux-user-Run-multi-threaded-code-.patch -> 0014-linux-user-Run-multi-threaded-code-.patch
+ 0017-linux-user-lock-tb-flushing-too.patch -> 0015-linux-user-lock-tb-flushing-too.patch
+ 0018-linux-user-Fake-proc-cpuinfo.patch -> 0016-linux-user-Fake-proc-cpuinfo.patch
+ 0019-linux-user-implement-FS_IOC_GETFLAG.patch -> 0017-linux-user-implement-FS_IOC_GETFLAG.patch
+ 0020-linux-user-implement-FS_IOC_SETFLAG.patch -> 0018-linux-user-implement-FS_IOC_SETFLAG.patch
+ 0021-linux-user-XXX-disable-fiemap.patch -> 0019-linux-user-XXX-disable-fiemap.patch
+ 0022-slirp-nooutgoing.patch -> 0020-slirp-nooutgoing.patch
+ 0023-vnc-password-file-and-incoming-conn.patch -> 0021-vnc-password-file-and-incoming-conn.patch
+ 0025-linux-user-use-target_ulong.patch -> 0022-linux-user-use-target_ulong.patch
+ 0026-block-Add-support-for-DictZip-enabl.patch -> 0023-block-Add-support-for-DictZip-enabl.patch
+ 0027-block-Add-tar-container-format.patch -> 0024-block-Add-tar-container-format.patch
+ 0028-Legacy-Patch-kvm-qemu-preXX-dictzip.patch -> 0025-Legacy-Patch-kvm-qemu-preXX-dictzip.patch
+ 0029-console-add-question-mark-escape-op.patch -> 0026-console-add-question-mark-escape-op.patch
+ 0030-Make-char-muxer-more-robust-wrt-sma.patch -> 0027-Make-char-muxer-more-robust-wrt-sma.patch
+ 0031-linux-user-lseek-explicitly-cast-no.patch -> 0028-linux-user-lseek-explicitly-cast-no.patch
+ 0032-virtfs-proxy-helper-Provide-__u64-f.patch -> 0029-virtfs-proxy-helper-Provide-__u64-f.patch
+ 0033-configure-Enable-PIE-for-ppc-and-pp.patch -> 0030-configure-Enable-PIE-for-ppc-and-pp.patch
+ 0035-AIO-Reduce-number-of-threads-for-32.patch -> 0031-AIO-Reduce-number-of-threads-for-32.patch
+ 0037-dictzip-Fix-on-big-endian-systems.patch -> 0032-dictzip-Fix-on-big-endian-systems.patch
+ 0039-xen_disk-Add-suse-specific-flush-di.patch -> 0033-xen_disk-Add-suse-specific-flush-di.patch
+ 0040-build-link-with-libatomic-on-powerp.patch -> 0034-build-link-with-libatomic-on-powerp.patch
+ 0049-xen-SUSE-xenlinux-unplug-for-emulat.patch -> 0035-xen-SUSE-xenlinux-unplug-for-emulat.patch
+ 0054-qemu-bridge-helper-reduce-security-.patch -> 0036-qemu-bridge-helper-reduce-security-.patch
+* Patches added:
+ 0002-qemu-binfmt-conf-Modify-default-pat.patch
+* Drop renamed trace-events-all file
+* Use qemu-ARCH-binfmt again with the new qemu-binfmt-conf.sh (schwab)
+ 0037-qemu-binfmt-conf-use-qemu-ARCH-binf.patch
+* Patches added:
+ 0038-configure-Fix-detection-of-seccomp-.patch
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/qemu/qemu-testsuite.changes 2016-08-22 10:49:07.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/qemu-testsuite.changes 2017-01-19 10:36:41.893610861 +0100
@@ -1,0 +2,244 @@
+Fri Jan 13 17:21:25 UTC 2017 - brogers@suse.com
+
+- Despite the previous entry about re-enabling ceph on Nov 19, 2016
+ the change wasn't actually done. Do it now.
+
+-------------------------------------------------------------------
+Wed Jan 11 17:36:17 UTC 2017 - afaerber@suse.de
+
+- sgabios-stable-buildid.patch: Use geeko@buildhost
+
+-------------------------------------------------------------------
+Mon Nov 28 20:21:27 UTC 2016 - afaerber@suse.de
+
+- slof_xhci.patch: XHCI fixes (boo#977027)
+
+-------------------------------------------------------------------
+Mon Nov 28 18:18:56 UTC 2016 - afaerber@suse.de
+
+- Recommend x86 ROMs for emulated PCI cards on ppc, arm, others
+ (bsc#1005869, michals)
+
+-------------------------------------------------------------------
+Tue Nov 22 14:44:51 UTC 2016 - afaerber@suse.de
+
+- Tidy SLOF patch boilerplate (michals)
+
+-------------------------------------------------------------------
+Mon Nov 21 17:26:36 UTC 2016 - afaerber@suse.de
+
+- Build with spice on all archs. (boo#1009438, michals)
+
+-------------------------------------------------------------------
+Sat Nov 19 15:24:03 UTC 2016 - brogers@suse.com
+
+- Refine the approach to producing stable builds in our ROM based
+ packages. All built roms which have hostname or date calls now
+ produce consistent results build to build via patch changes, so
+ remove the hostname and date call workarounds. (bsc#1011213)
+- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+* Patches added:
+ 0069-roms-Makefile-pass-a-packaging-time.patch
+ sgabios-stable-buildid.patch
+
+-------------------------------------------------------------------
+Sat Nov 19 15:15:03 UTC 2016 - brogers@suse.com
+
+- Re-enable ceph (rbd) functionality in OBS builds as we've been told
+ the issues which prompted us to disable it are resolved
+
+- Address various security/stability issues
+* Fix OOB access in VMware SVGA emulation (CVE-2016-7170 bsc#998516)
+ 0041-vmsvga-correct-bitmap-and-pixmap-si.patch
+* Fix DOS in LSI SAS1068 emulation (CVE-2016-7157 bsc#997860)
+ 0042-scsi-mptconfig-fix-an-assert-expres.patch
+ 0043-scsi-mptconfig-fix-misuse-of-MPTSAS.patch
+* Fix DOS in Vmware pv scsi interface (CVE-2016-7156 bsc#997859)
+ 0044-scsi-pvscsi-limit-loop-to-fetch-SG-.patch
+* Fix DOS in USB xHCI emulation (CVE-2016-7466 bsc#1000345)
+ 0045-usb-xhci-fix-memory-leak-in-usb_xhc.patch
+* Fix OOB access in LSI SAS1068 emulation (CVE-2016-7423 bsc#1000397)
+ 0046-scsi-mptsas-use-g_new0-to-allocate-.patch
+* Fix DOS in Vmware pv scsi interface (CVE-2016-7421 bsc#999661)
+ 0047-scsi-pvscsi-limit-process-IO-loop-t.patch
+* Fix NULL pointer dereference in virtio processing
+ (CVE-2016-7422 bsc#1000346)
+ 0048-virtio-add-check-for-descriptor-s-m.patch
+* Fix DOS in ColdFire Fast Ethernet Controller emulation
+ (CVE-2016-7908 bsc#1002550)
+ 0049-net-mcf-limit-buffer-descriptor-cou.patch
+* Fix DOS in USB EHCI emulation (CVE-2016-7995 bsc#1003612)
+ 0050-usb-ehci-fix-memory-leak-in-ehci_pr.patch
+* Fix DOS in USB xHCI emulation (CVE-2016-8576 bsc#1003878)
+ 0051-xhci-limit-the-number-of-link-trbs-.patch
+* Fix DOS in virtio-9pfs (CVE-2016-8578 bsc#1003894)
+ 0052-9pfs-allocate-space-for-guest-origi.patch
+* Fix DOS in virtio-9pfs (CVE-2016-9105 bsc#1007494)
+ 0053-9pfs-fix-memory-leak-in-v9fs_link.patch
+* Fix DOS in virtio-9pfs (CVE-2016-8577 bsc#1003893)
+ 0054-9pfs-fix-potential-host-memory-leak.patch
+* Plug data leak in virtio-9pfs interface (CVE-2016-9103 bsc#1007454)
+ 0055-9pfs-fix-information-leak-in-xattr-.patch
+* Fix DOS in virtio-9pfs interface (CVE-2016-9102 bsc#1007450)
+ 0056-9pfs-fix-memory-leak-in-v9fs_xattrc.patch
+* Fix DOS in virtio-9pfs (CVE-2016-9106 bsc#1007495)
+ 0057-9pfs-fix-memory-leak-in-v9fs_write.patch
+* Fix DOS in 16550A UART emulation (CVE-2016-8669 bsc#1004707)
+ 0058-char-serial-check-divider-value-aga.patch
+* Fix DOS in PC-Net II emulation (CVE-2016-7909 bsc#1002557)
+ 0059-net-pcnet-check-rx-tx-descriptor-ri.patch
+* Fix DOS in PRO100 emulation (CVE-2016-9101 bsc#1007391)
+ 0060-net-eepro100-fix-memory-leak-in-dev.patch
+* Fix OOB access in Rocker switch emulation (CVE-2016-8668 bsc#1004706)
+ 0061-net-rocker-set-limit-to-DMA-buffer-.patch
+* Plug data leak in vmxnet3 emulation (CVE-2016-6836 bsc#994760)
+ 0062-net-vmxnet-initialise-local-tx-desc.patch
+* Fix DOS in RTL8139 emulation (CVE-2016-8910 bsc#1006538)
+ 0063-net-rtl8139-limit-processing-of-rin.patch
+* Fix DOS in Intel HDA controller emulation (CVE-2016-8909 bsc#1006536)
+ 0064-audio-intel-hda-check-stream-entry-.patch
+* Fix DOS in virtio-gpu (CVE-2016-7994 bsc#1003613)
+ 0065-virtio-gpu-fix-memory-leak-in-virti.patch
+* Fix DOS in virtio-9pfs (CVE-2016-9104 bsc#1007493)
+ 0066-9pfs-fix-integer-overflow-issue-in-.patch
+* Fix DOS in JAZZ RC4030 emulation (CVE-2016-8667 bsc#1004702)
+ 0067-dma-rc4030-limit-interval-timer-rel.patch
+* Fix DOS in i.MX NIC emulation (CVE-2016-7907 bsc#1002549)
+ 0068-net-imx-limit-buffer-descriptor-cou.patch
+- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+
+-------------------------------------------------------------------
+Fri Nov 11 11:11:11 UTC 2016 - ohering@suse.de
+
+- Use fixed timestamps and stable build_id in ipxe and other ROMs
+* Patches added:
+ ipxe-stable-buildid.patch
+
+-------------------------------------------------------------------
+Mon Nov 7 16:14:15 UTC 2016 - afaerber@suse.de
+
+- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+* Patch updated:
+ 0040-linux-user-skip-0-flag-from-proc-se.patch -> 0040-linux-user-remove-all-traces-of-qem.patch
+
+-------------------------------------------------------------------
+Tue Sep 27 16:18:31 UTC 2016 - afaerber@suse.de
+
+- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+* Patches added:
+ 0040-linux-user-skip-0-flag-from-proc-se.patch
+
+-------------------------------------------------------------------
+Thu Sep 22 15:04:43 UTC 2016 - afaerber@suse.de
+
+- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+* Patches added:
+ 0039-Fix-tlb_vaddr_to_host-with-CONFIG_U.patch
+
+-------------------------------------------------------------------
+Wed Sep 21 13:24:20 UTC 2016 - afaerber@suse.de
+
+- Document two new options, but leave jemalloc disabled for now
+- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+* Patches dropped:
+ 0034-build-link-with-libatomic-on-powerp.patch
+* Patches renamed:
+ 0035-xen-SUSE-xenlinux-unplug-for-emulat.patch -> 0034-xen-SUSE-xenlinux-unplug-for-emulat.patch
+ 0036-qemu-bridge-helper-reduce-security-.patch -> 0035-qemu-bridge-helper-reduce-security-.patch
+ 0037-qemu-binfmt-conf-use-qemu-ARCH-binf.patch -> 0036-qemu-binfmt-conf-use-qemu-ARCH-binf.patch
+ 0038-configure-Fix-detection-of-seccomp-.patch -> 0037-configure-Fix-detection-of-seccomp-.patch
+ 0039-linux-user-properly-test-for-infini.patch -> 0038-linux-user-properly-test-for-infini.patch
+
+-------------------------------------------------------------------
+Sat Sep 10 09:27:57 UTC 2016 - afaerber@suse.de
+
+- Updated to v2.7.0: See http://wiki.qemu-project.org/ChangeLog/2.7
+- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+* Patches added:
+ 0039-linux-user-properly-test-for-infini.patch
+
+-------------------------------------------------------------------
+Tue Sep 6 17:05:06 UTC 2016 - brogers@suse.com
+
+- Use new kvm_stat package where available, else provide updated
+ kvm_stat script.
+
+-------------------------------------------------------------------
+Wed Aug 31 13:40:20 UTC 2016 - afaerber@suse.de
+
+- Update to v2.7.0-rc5: See http://wiki.qemu-project.org/ChangeLog/2.7
+
+-------------------------------------------------------------------
+Tue Aug 23 16:04:11 UTC 2016 - afaerber@suse.de
+
+- Updated to v2.7.0-rc2: See http://wiki.qemu-project.org/ChangeLog/2.7
+* Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.7
+* Patches dropped:
+ 0002-qemu-0.9.0.cvs-binfmt.patch (script rewritten upstream)
+ 0009-block-vmdk-Support-creation-of-SCSI.patch (deprecated)
+ 0014-linux-user-Ignore-broken-loop-ioctl.patch (implemented upstream)
+ 0024-linux-user-add-more-blk-ioctls.patch (more implemented upstream)
+ 0034-qtest-Increase-socket-timeout.patch (increased further upstream)
+ 0036-configure-Enable-libseccomp-for-ppc.patch (enabled upstream)
+ 0038-block-split-large-discard-requests-.patch
+ 0041-xen-introduce-dummy-system-device.patch
+ 0042-xen-write-information-about-support.patch
+ 0043-xen-add-pvUSB-backend.patch
+ 0044-xen-move-xen_sysdev-to-xen_backend..patch
+ 0045-vnc-add-configurable-keyboard-delay.patch
+ 0046-configure-add-echo_version-helper.patch
+ 0047-configure-support-vte-2.91.patch
+ 0048-hw-arm-virt-mark-the-PCIe-host-cont.patch
+ 0050-scsi-esp-fix-migration.patch
+ 0051-xen-when-removing-a-backend-don-t-r.patch
+ 0052-xen-drain-submit-queue-in-xen-usb-b.patch
+ 0053-qcow2-avoid-extra-flushes-in-qcow2.patch
+ 0055-xen-use-a-common-function-for-pv-an.patch
+ ipxe-ath9k-Fix-buffer-overrun-for-ar9287.patch
++++ 47 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/qemu/qemu-testsuite.changes
++++ and /work/SRC/openSUSE:Factory/.qemu.new/qemu-testsuite.changes
qemu.changes: same change
Old:
----
0002-qemu-0.9.0.cvs-binfmt.patch
0009-block-vmdk-Support-creation-of-SCSI.patch
0010-linux-user-add-binfmt-wrapper-for-a.patch
0011-PPC-KVM-Disable-mmu-notifier-check.patch
0012-linux-user-fix-segfault-deadlock.patch
0013-linux-user-binfmt-support-host-bina.patch
0014-linux-user-Ignore-broken-loop-ioctl.patch
0015-linux-user-lock-tcg.patch
0016-linux-user-Run-multi-threaded-code-.patch
0017-linux-user-lock-tb-flushing-too.patch
0018-linux-user-Fake-proc-cpuinfo.patch
0019-linux-user-implement-FS_IOC_GETFLAG.patch
0020-linux-user-implement-FS_IOC_SETFLAG.patch
0021-linux-user-XXX-disable-fiemap.patch
0022-slirp-nooutgoing.patch
0023-vnc-password-file-and-incoming-conn.patch
0024-linux-user-add-more-blk-ioctls.patch
0025-linux-user-use-target_ulong.patch
0026-block-Add-support-for-DictZip-enabl.patch
0027-block-Add-tar-container-format.patch
0028-Legacy-Patch-kvm-qemu-preXX-dictzip.patch
0029-console-add-question-mark-escape-op.patch
0030-Make-char-muxer-more-robust-wrt-sma.patch
0031-linux-user-lseek-explicitly-cast-no.patch
0032-virtfs-proxy-helper-Provide-__u64-f.patch
0033-configure-Enable-PIE-for-ppc-and-pp.patch
0034-qtest-Increase-socket-timeout.patch
0035-AIO-Reduce-number-of-threads-for-32.patch
0036-configure-Enable-libseccomp-for-ppc.patch
0037-dictzip-Fix-on-big-endian-systems.patch
0038-block-split-large-discard-requests-.patch
0039-xen_disk-Add-suse-specific-flush-di.patch
0040-build-link-with-libatomic-on-powerp.patch
0041-xen-introduce-dummy-system-device.patch
0042-xen-write-information-about-support.patch
0043-xen-add-pvUSB-backend.patch
0044-xen-move-xen_sysdev-to-xen_backend..patch
0045-vnc-add-configurable-keyboard-delay.patch
0046-configure-add-echo_version-helper.patch
0047-configure-support-vte-2.91.patch
0048-hw-arm-virt-mark-the-PCIe-host-cont.patch
0049-xen-SUSE-xenlinux-unplug-for-emulat.patch
0050-scsi-esp-fix-migration.patch
0051-xen-when-removing-a-backend-don-t-r.patch
0052-xen-drain-submit-queue-in-xen-usb-b.patch
0053-qcow2-avoid-extra-flushes-in-qcow2.patch
0054-qemu-bridge-helper-reduce-security-.patch
0055-xen-use-a-common-function-for-pv-an.patch
ipxe-ath-Fix-building-with-GCC-6.patch
ipxe-ath9k-Fix-buffer-overrun-for-ar9287.patch
ipxe-efi-fix-garbage-bytes-in-device-path.patch
ipxe-efi-fix-uninitialised-data-in-HII.patch
ipxe-legacy-Fix-building-with-GCC-6.patch
ipxe-mucurses-Fix-GCC-6-nonnull-compare-errors.patch
ipxe-sis190-Fix-building-with-GCC-6.patch
ipxe-skge-Fix-building-with-GCC-6.patch
ipxe-util-v5.24-perl-errors-on-redeclare.patch
qemu-2.6.1.tar.bz2
qemu-2.6.1.tar.bz2.sig
New:
----
0002-qemu-binfmt-conf-Modify-default-pat.patch
0009-linux-user-add-binfmt-wrapper-for-a.patch
0010-PPC-KVM-Disable-mmu-notifier-check.patch
0011-linux-user-fix-segfault-deadlock.patch
0012-linux-user-binfmt-support-host-bina.patch
0013-linux-user-lock-tcg.patch
0014-linux-user-Run-multi-threaded-code-.patch
0015-linux-user-lock-tb-flushing-too.patch
0016-linux-user-Fake-proc-cpuinfo.patch
0017-linux-user-implement-FS_IOC_GETFLAG.patch
0018-linux-user-implement-FS_IOC_SETFLAG.patch
0019-linux-user-XXX-disable-fiemap.patch
0020-slirp-nooutgoing.patch
0021-vnc-password-file-and-incoming-conn.patch
0022-linux-user-use-target_ulong.patch
0023-block-Add-support-for-DictZip-enabl.patch
0024-block-Add-tar-container-format.patch
0025-Legacy-Patch-kvm-qemu-preXX-dictzip.patch
0026-console-add-question-mark-escape-op.patch
0027-Make-char-muxer-more-robust-wrt-sma.patch
0028-linux-user-lseek-explicitly-cast-no.patch
0029-virtfs-proxy-helper-Provide-__u64-f.patch
0030-configure-Enable-PIE-for-ppc-and-pp.patch
0031-AIO-Reduce-number-of-threads-for-32.patch
0032-dictzip-Fix-on-big-endian-systems.patch
0033-xen_disk-Add-suse-specific-flush-di.patch
0034-xen-SUSE-xenlinux-unplug-for-emulat.patch
0035-qemu-bridge-helper-reduce-security-.patch
0036-qemu-binfmt-conf-use-qemu-ARCH-binf.patch
0037-configure-Fix-detection-of-seccomp-.patch
0038-linux-user-properly-test-for-infini.patch
0039-Fix-tlb_vaddr_to_host-with-CONFIG_U.patch
0040-linux-user-remove-all-traces-of-qem.patch
0041-vmsvga-correct-bitmap-and-pixmap-si.patch
0042-scsi-mptconfig-fix-an-assert-expres.patch
0043-scsi-mptconfig-fix-misuse-of-MPTSAS.patch
0044-scsi-pvscsi-limit-loop-to-fetch-SG-.patch
0045-usb-xhci-fix-memory-leak-in-usb_xhc.patch
0046-scsi-mptsas-use-g_new0-to-allocate-.patch
0047-scsi-pvscsi-limit-process-IO-loop-t.patch
0048-virtio-add-check-for-descriptor-s-m.patch
0049-net-mcf-limit-buffer-descriptor-cou.patch
0050-usb-ehci-fix-memory-leak-in-ehci_pr.patch
0051-xhci-limit-the-number-of-link-trbs-.patch
0052-9pfs-allocate-space-for-guest-origi.patch
0053-9pfs-fix-memory-leak-in-v9fs_link.patch
0054-9pfs-fix-potential-host-memory-leak.patch
0055-9pfs-fix-information-leak-in-xattr-.patch
0056-9pfs-fix-memory-leak-in-v9fs_xattrc.patch
0057-9pfs-fix-memory-leak-in-v9fs_write.patch
0058-char-serial-check-divider-value-aga.patch
0059-net-pcnet-check-rx-tx-descriptor-ri.patch
0060-net-eepro100-fix-memory-leak-in-dev.patch
0061-net-rocker-set-limit-to-DMA-buffer-.patch
0062-net-vmxnet-initialise-local-tx-desc.patch
0063-net-rtl8139-limit-processing-of-rin.patch
0064-audio-intel-hda-check-stream-entry-.patch
0065-virtio-gpu-fix-memory-leak-in-virti.patch
0066-9pfs-fix-integer-overflow-issue-in-.patch
0067-dma-rc4030-limit-interval-timer-rel.patch
0068-net-imx-limit-buffer-descriptor-cou.patch
0069-roms-Makefile-pass-a-packaging-time.patch
ipxe-stable-buildid.patch
qemu-2.7.0.tar.bz2
qemu-2.7.0.tar.bz2.sig
sgabios-stable-buildid.patch
slof_xhci.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qemu-linux-user.spec ++++++
--- /var/tmp/diff_new_pack.7N4b5K/_old 2017-01-19 10:36:43.949320906 +0100
+++ /var/tmp/diff_new_pack.7N4b5K/_new 2017-01-19 10:36:43.953320342 +0100
@@ -1,7 +1,7 @@
#
# spec file for package qemu-linux-user
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -21,65 +21,79 @@
Summary: Universal CPU emulator
License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT
Group: System/Emulators/PC
-Version: 2.6.1
+Version: 2.7.0
Release: 0
-Source: http://wiki.qemu.org/download/qemu-2.6.1.tar.bz2
+Source: http://wiki.qemu.org/download/qemu-2.7.0.tar.bz2
# This patch queue is auto-generated from https://github.com/openSUSE/qemu
Patch0001: 0001-XXX-dont-dump-core-on-sigabort.patch
-Patch0002: 0002-qemu-0.9.0.cvs-binfmt.patch
+Patch0002: 0002-qemu-binfmt-conf-Modify-default-pat.patch
Patch0003: 0003-qemu-cvs-alsa_bitfield.patch
Patch0004: 0004-qemu-cvs-alsa_ioctl.patch
Patch0005: 0005-qemu-cvs-alsa_mmap.patch
Patch0006: 0006-qemu-cvs-gettimeofday.patch
Patch0007: 0007-qemu-cvs-ioctl_debug.patch
Patch0008: 0008-qemu-cvs-ioctl_nodirection.patch
-Patch0009: 0009-block-vmdk-Support-creation-of-SCSI.patch
-Patch0010: 0010-linux-user-add-binfmt-wrapper-for-a.patch
-Patch0011: 0011-PPC-KVM-Disable-mmu-notifier-check.patch
-Patch0012: 0012-linux-user-fix-segfault-deadlock.patch
-Patch0013: 0013-linux-user-binfmt-support-host-bina.patch
-Patch0014: 0014-linux-user-Ignore-broken-loop-ioctl.patch
-Patch0015: 0015-linux-user-lock-tcg.patch
-Patch0016: 0016-linux-user-Run-multi-threaded-code-.patch
-Patch0017: 0017-linux-user-lock-tb-flushing-too.patch
-Patch0018: 0018-linux-user-Fake-proc-cpuinfo.patch
-Patch0019: 0019-linux-user-implement-FS_IOC_GETFLAG.patch
-Patch0020: 0020-linux-user-implement-FS_IOC_SETFLAG.patch
-Patch0021: 0021-linux-user-XXX-disable-fiemap.patch
-Patch0022: 0022-slirp-nooutgoing.patch
-Patch0023: 0023-vnc-password-file-and-incoming-conn.patch
-Patch0024: 0024-linux-user-add-more-blk-ioctls.patch
-Patch0025: 0025-linux-user-use-target_ulong.patch
-Patch0026: 0026-block-Add-support-for-DictZip-enabl.patch
-Patch0027: 0027-block-Add-tar-container-format.patch
-Patch0028: 0028-Legacy-Patch-kvm-qemu-preXX-dictzip.patch
-Patch0029: 0029-console-add-question-mark-escape-op.patch
-Patch0030: 0030-Make-char-muxer-more-robust-wrt-sma.patch
-Patch0031: 0031-linux-user-lseek-explicitly-cast-no.patch
-Patch0032: 0032-virtfs-proxy-helper-Provide-__u64-f.patch
-Patch0033: 0033-configure-Enable-PIE-for-ppc-and-pp.patch
-Patch0034: 0034-qtest-Increase-socket-timeout.patch
-Patch0035: 0035-AIO-Reduce-number-of-threads-for-32.patch
-Patch0036: 0036-configure-Enable-libseccomp-for-ppc.patch
-Patch0037: 0037-dictzip-Fix-on-big-endian-systems.patch
-Patch0038: 0038-block-split-large-discard-requests-.patch
-Patch0039: 0039-xen_disk-Add-suse-specific-flush-di.patch
-Patch0040: 0040-build-link-with-libatomic-on-powerp.patch
-Patch0041: 0041-xen-introduce-dummy-system-device.patch
-Patch0042: 0042-xen-write-information-about-support.patch
-Patch0043: 0043-xen-add-pvUSB-backend.patch
-Patch0044: 0044-xen-move-xen_sysdev-to-xen_backend..patch
-Patch0045: 0045-vnc-add-configurable-keyboard-delay.patch
-Patch0046: 0046-configure-add-echo_version-helper.patch
-Patch0047: 0047-configure-support-vte-2.91.patch
-Patch0048: 0048-hw-arm-virt-mark-the-PCIe-host-cont.patch
-Patch0049: 0049-xen-SUSE-xenlinux-unplug-for-emulat.patch
-Patch0050: 0050-scsi-esp-fix-migration.patch
-Patch0051: 0051-xen-when-removing-a-backend-don-t-r.patch
-Patch0052: 0052-xen-drain-submit-queue-in-xen-usb-b.patch
-Patch0053: 0053-qcow2-avoid-extra-flushes-in-qcow2.patch
-Patch0054: 0054-qemu-bridge-helper-reduce-security-.patch
-Patch0055: 0055-xen-use-a-common-function-for-pv-an.patch
+Patch0009: 0009-linux-user-add-binfmt-wrapper-for-a.patch
+Patch0010: 0010-PPC-KVM-Disable-mmu-notifier-check.patch
+Patch0011: 0011-linux-user-fix-segfault-deadlock.patch
+Patch0012: 0012-linux-user-binfmt-support-host-bina.patch
+Patch0013: 0013-linux-user-lock-tcg.patch
+Patch0014: 0014-linux-user-Run-multi-threaded-code-.patch
+Patch0015: 0015-linux-user-lock-tb-flushing-too.patch
+Patch0016: 0016-linux-user-Fake-proc-cpuinfo.patch
+Patch0017: 0017-linux-user-implement-FS_IOC_GETFLAG.patch
+Patch0018: 0018-linux-user-implement-FS_IOC_SETFLAG.patch
+Patch0019: 0019-linux-user-XXX-disable-fiemap.patch
+Patch0020: 0020-slirp-nooutgoing.patch
+Patch0021: 0021-vnc-password-file-and-incoming-conn.patch
+Patch0022: 0022-linux-user-use-target_ulong.patch
+Patch0023: 0023-block-Add-support-for-DictZip-enabl.patch
+Patch0024: 0024-block-Add-tar-container-format.patch
+Patch0025: 0025-Legacy-Patch-kvm-qemu-preXX-dictzip.patch
+Patch0026: 0026-console-add-question-mark-escape-op.patch
+Patch0027: 0027-Make-char-muxer-more-robust-wrt-sma.patch
+Patch0028: 0028-linux-user-lseek-explicitly-cast-no.patch
+Patch0029: 0029-virtfs-proxy-helper-Provide-__u64-f.patch
+Patch0030: 0030-configure-Enable-PIE-for-ppc-and-pp.patch
+Patch0031: 0031-AIO-Reduce-number-of-threads-for-32.patch
+Patch0032: 0032-dictzip-Fix-on-big-endian-systems.patch
+Patch0033: 0033-xen_disk-Add-suse-specific-flush-di.patch
+Patch0034: 0034-xen-SUSE-xenlinux-unplug-for-emulat.patch
+Patch0035: 0035-qemu-bridge-helper-reduce-security-.patch
+Patch0036: 0036-qemu-binfmt-conf-use-qemu-ARCH-binf.patch
+Patch0037: 0037-configure-Fix-detection-of-seccomp-.patch
+Patch0038: 0038-linux-user-properly-test-for-infini.patch
+Patch0039: 0039-Fix-tlb_vaddr_to_host-with-CONFIG_U.patch
+Patch0040: 0040-linux-user-remove-all-traces-of-qem.patch
+Patch0041: 0041-vmsvga-correct-bitmap-and-pixmap-si.patch
+Patch0042: 0042-scsi-mptconfig-fix-an-assert-expres.patch
+Patch0043: 0043-scsi-mptconfig-fix-misuse-of-MPTSAS.patch
+Patch0044: 0044-scsi-pvscsi-limit-loop-to-fetch-SG-.patch
+Patch0045: 0045-usb-xhci-fix-memory-leak-in-usb_xhc.patch
+Patch0046: 0046-scsi-mptsas-use-g_new0-to-allocate-.patch
+Patch0047: 0047-scsi-pvscsi-limit-process-IO-loop-t.patch
+Patch0048: 0048-virtio-add-check-for-descriptor-s-m.patch
+Patch0049: 0049-net-mcf-limit-buffer-descriptor-cou.patch
+Patch0050: 0050-usb-ehci-fix-memory-leak-in-ehci_pr.patch
+Patch0051: 0051-xhci-limit-the-number-of-link-trbs-.patch
+Patch0052: 0052-9pfs-allocate-space-for-guest-origi.patch
+Patch0053: 0053-9pfs-fix-memory-leak-in-v9fs_link.patch
+Patch0054: 0054-9pfs-fix-potential-host-memory-leak.patch
+Patch0055: 0055-9pfs-fix-information-leak-in-xattr-.patch
+Patch0056: 0056-9pfs-fix-memory-leak-in-v9fs_xattrc.patch
+Patch0057: 0057-9pfs-fix-memory-leak-in-v9fs_write.patch
+Patch0058: 0058-char-serial-check-divider-value-aga.patch
+Patch0059: 0059-net-pcnet-check-rx-tx-descriptor-ri.patch
+Patch0060: 0060-net-eepro100-fix-memory-leak-in-dev.patch
+Patch0061: 0061-net-rocker-set-limit-to-DMA-buffer-.patch
+Patch0062: 0062-net-vmxnet-initialise-local-tx-desc.patch
+Patch0063: 0063-net-rtl8139-limit-processing-of-rin.patch
+Patch0064: 0064-audio-intel-hda-check-stream-entry-.patch
+Patch0065: 0065-virtio-gpu-fix-memory-leak-in-virti.patch
+Patch0066: 0066-9pfs-fix-integer-overflow-issue-in-.patch
+Patch0067: 0067-dma-rc4030-limit-interval-timer-rel.patch
+Patch0068: 0068-net-imx-limit-buffer-descriptor-cou.patch
+Patch0069: 0069-roms-Makefile-pass-a-packaging-time.patch
# Please do not add patches manually here, run update_git.sh.
# this is to make lint happy
Source300: qemu-rpmlintrc
@@ -132,7 +146,7 @@
run cross-architecture builds.
%prep
-%setup -q -n qemu-2.6.1
+%setup -q -n qemu-2.7.0
%patch0001 -p1
%patch0002 -p1
%patch0003 -p1
@@ -188,6 +202,20 @@
%patch0053 -p1
%patch0054 -p1
%patch0055 -p1
+%patch0056 -p1
+%patch0057 -p1
+%patch0058 -p1
+%patch0059 -p1
+%patch0060 -p1
+%patch0061 -p1
+%patch0062 -p1
+%patch0063 -p1
+%patch0064 -p1
+%patch0065 -p1
+%patch0066 -p1
+%patch0067 -p1
+%patch0068 -p1
+%patch0069 -p1
%build
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \
@@ -243,13 +271,13 @@
%install
make install DESTDIR=$RPM_BUILD_ROOT
rm -fr $RPM_BUILD_ROOT/%_datadir/doc
-rm -rf $RPM_BUILD_ROOT/%_mandir/man1/qemu.1
-rm -rf $RPM_BUILD_ROOT/%_mandir/man1/qemu-img.1
-rm -rf $RPM_BUILD_ROOT/%_mandir/man8/qemu-nbd.8
+rm -f $RPM_BUILD_ROOT/%_mandir/man1/qemu.1
+rm -f $RPM_BUILD_ROOT/%_mandir/man1/qemu-img.1
+rm -f $RPM_BUILD_ROOT/%_mandir/man8/qemu-nbd.8
rm -rf $RPM_BUILD_ROOT/%_datadir/qemu/keymaps
-rm -rf $RPM_BUILD_ROOT/%_datadir/qemu/trace-events
-rm -rf $RPM_BUILD_ROOT/%_sysconfdir/qemu/target-x86_64.conf
-rm -rf $RPM_BUILD_ROOT/%_libexecdir/qemu-bridge-helper
+rm -f $RPM_BUILD_ROOT/%_datadir/qemu/trace-events-all
+rm -f $RPM_BUILD_ROOT/%_sysconfdir/qemu/target-x86_64.conf
+rm -f $RPM_BUILD_ROOT/%_libexecdir/qemu-bridge-helper
install -d -m 755 $RPM_BUILD_ROOT/%_sbindir
install -m 755 scripts/qemu-binfmt-conf.sh $RPM_BUILD_ROOT/%_sbindir
%ifnarch %ix86 x86_64
++++++ qemu-testsuite.spec ++++++
--- /var/tmp/diff_new_pack.7N4b5K/_old 2017-01-19 10:36:43.985315829 +0100
+++ /var/tmp/diff_new_pack.7N4b5K/_new 2017-01-19 10:36:43.985315829 +0100
@@ -1,7 +1,7 @@
#
# spec file for package qemu-testsuite
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -44,7 +44,6 @@
%endif
%define noarch_supported 1110
-%if 0%{?is_opensuse} == 0
%ifarch x86_64
%if 0%{?suse_version} > 1320 || ( 0%{?suse_version} == 1315 && ( 0%{?is_opensuse} == 0 || 0%{?sle_version} > 120100 ) )
%define with_rbd 1
@@ -56,7 +55,6 @@
%define with_rbd 1
%endif
%endif
-%endif
%if 0%{?suse_version} > 1320
%define with_seccomp 1
@@ -66,15 +64,19 @@
%define with_seccomp 1
%endif
+%if 0%{?suse_version} >= 1140
+%define with_spice 1
+%endif
+
Name: qemu-testsuite
Url: http://www.qemu.org/
Summary: Universal CPU emulator
License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT
Group: System/Emulators/PC
-Version: 2.6.1
+Version: 2.7.0
Release: 0
-Source: http://wiki.qemu.org/download/qemu-2.6.1.tar.bz2
-Source99: http://wiki.qemu.org/download/qemu-2.6.1.tar.bz2.sig
+Source: http://wiki.qemu.org/download/qemu-2.7.0.tar.bz2
+Source99: http://wiki.qemu.org/download/qemu-2.7.0.tar.bz2.sig
Source1: 80-kvm.rules
Source2: qemu-ifup
Source3: kvm_stat
@@ -88,78 +90,95 @@
# Upstream First -- http://wiki.qemu-project.org/Contribute/SubmitAPatch
# This patch queue is auto-generated from https://github.com/openSUSE/qemu
Patch0001: 0001-XXX-dont-dump-core-on-sigabort.patch
-Patch0002: 0002-qemu-0.9.0.cvs-binfmt.patch
+Patch0002: 0002-qemu-binfmt-conf-Modify-default-pat.patch
Patch0003: 0003-qemu-cvs-alsa_bitfield.patch
Patch0004: 0004-qemu-cvs-alsa_ioctl.patch
Patch0005: 0005-qemu-cvs-alsa_mmap.patch
Patch0006: 0006-qemu-cvs-gettimeofday.patch
Patch0007: 0007-qemu-cvs-ioctl_debug.patch
Patch0008: 0008-qemu-cvs-ioctl_nodirection.patch
-Patch0009: 0009-block-vmdk-Support-creation-of-SCSI.patch
-Patch0010: 0010-linux-user-add-binfmt-wrapper-for-a.patch
-Patch0011: 0011-PPC-KVM-Disable-mmu-notifier-check.patch
-Patch0012: 0012-linux-user-fix-segfault-deadlock.patch
-Patch0013: 0013-linux-user-binfmt-support-host-bina.patch
-Patch0014: 0014-linux-user-Ignore-broken-loop-ioctl.patch
-Patch0015: 0015-linux-user-lock-tcg.patch
-Patch0016: 0016-linux-user-Run-multi-threaded-code-.patch
-Patch0017: 0017-linux-user-lock-tb-flushing-too.patch
-Patch0018: 0018-linux-user-Fake-proc-cpuinfo.patch
-Patch0019: 0019-linux-user-implement-FS_IOC_GETFLAG.patch
-Patch0020: 0020-linux-user-implement-FS_IOC_SETFLAG.patch
-Patch0021: 0021-linux-user-XXX-disable-fiemap.patch
-Patch0022: 0022-slirp-nooutgoing.patch
-Patch0023: 0023-vnc-password-file-and-incoming-conn.patch
-Patch0024: 0024-linux-user-add-more-blk-ioctls.patch
-Patch0025: 0025-linux-user-use-target_ulong.patch
-Patch0026: 0026-block-Add-support-for-DictZip-enabl.patch
-Patch0027: 0027-block-Add-tar-container-format.patch
-Patch0028: 0028-Legacy-Patch-kvm-qemu-preXX-dictzip.patch
-Patch0029: 0029-console-add-question-mark-escape-op.patch
-Patch0030: 0030-Make-char-muxer-more-robust-wrt-sma.patch
-Patch0031: 0031-linux-user-lseek-explicitly-cast-no.patch
-Patch0032: 0032-virtfs-proxy-helper-Provide-__u64-f.patch
-Patch0033: 0033-configure-Enable-PIE-for-ppc-and-pp.patch
-Patch0034: 0034-qtest-Increase-socket-timeout.patch
-Patch0035: 0035-AIO-Reduce-number-of-threads-for-32.patch
-Patch0036: 0036-configure-Enable-libseccomp-for-ppc.patch
-Patch0037: 0037-dictzip-Fix-on-big-endian-systems.patch
-Patch0038: 0038-block-split-large-discard-requests-.patch
-Patch0039: 0039-xen_disk-Add-suse-specific-flush-di.patch
-Patch0040: 0040-build-link-with-libatomic-on-powerp.patch
-Patch0041: 0041-xen-introduce-dummy-system-device.patch
-Patch0042: 0042-xen-write-information-about-support.patch
-Patch0043: 0043-xen-add-pvUSB-backend.patch
-Patch0044: 0044-xen-move-xen_sysdev-to-xen_backend..patch
-Patch0045: 0045-vnc-add-configurable-keyboard-delay.patch
-Patch0046: 0046-configure-add-echo_version-helper.patch
-Patch0047: 0047-configure-support-vte-2.91.patch
-Patch0048: 0048-hw-arm-virt-mark-the-PCIe-host-cont.patch
-Patch0049: 0049-xen-SUSE-xenlinux-unplug-for-emulat.patch
-Patch0050: 0050-scsi-esp-fix-migration.patch
-Patch0051: 0051-xen-when-removing-a-backend-don-t-r.patch
-Patch0052: 0052-xen-drain-submit-queue-in-xen-usb-b.patch
-Patch0053: 0053-qcow2-avoid-extra-flushes-in-qcow2.patch
-Patch0054: 0054-qemu-bridge-helper-reduce-security-.patch
-Patch0055: 0055-xen-use-a-common-function-for-pv-an.patch
+Patch0009: 0009-linux-user-add-binfmt-wrapper-for-a.patch
+Patch0010: 0010-PPC-KVM-Disable-mmu-notifier-check.patch
+Patch0011: 0011-linux-user-fix-segfault-deadlock.patch
+Patch0012: 0012-linux-user-binfmt-support-host-bina.patch
+Patch0013: 0013-linux-user-lock-tcg.patch
+Patch0014: 0014-linux-user-Run-multi-threaded-code-.patch
+Patch0015: 0015-linux-user-lock-tb-flushing-too.patch
+Patch0016: 0016-linux-user-Fake-proc-cpuinfo.patch
+Patch0017: 0017-linux-user-implement-FS_IOC_GETFLAG.patch
+Patch0018: 0018-linux-user-implement-FS_IOC_SETFLAG.patch
+Patch0019: 0019-linux-user-XXX-disable-fiemap.patch
+Patch0020: 0020-slirp-nooutgoing.patch
+Patch0021: 0021-vnc-password-file-and-incoming-conn.patch
+Patch0022: 0022-linux-user-use-target_ulong.patch
+Patch0023: 0023-block-Add-support-for-DictZip-enabl.patch
+Patch0024: 0024-block-Add-tar-container-format.patch
+Patch0025: 0025-Legacy-Patch-kvm-qemu-preXX-dictzip.patch
+Patch0026: 0026-console-add-question-mark-escape-op.patch
+Patch0027: 0027-Make-char-muxer-more-robust-wrt-sma.patch
+Patch0028: 0028-linux-user-lseek-explicitly-cast-no.patch
+Patch0029: 0029-virtfs-proxy-helper-Provide-__u64-f.patch
+Patch0030: 0030-configure-Enable-PIE-for-ppc-and-pp.patch
+Patch0031: 0031-AIO-Reduce-number-of-threads-for-32.patch
+Patch0032: 0032-dictzip-Fix-on-big-endian-systems.patch
+Patch0033: 0033-xen_disk-Add-suse-specific-flush-di.patch
+Patch0034: 0034-xen-SUSE-xenlinux-unplug-for-emulat.patch
+Patch0035: 0035-qemu-bridge-helper-reduce-security-.patch
+Patch0036: 0036-qemu-binfmt-conf-use-qemu-ARCH-binf.patch
+Patch0037: 0037-configure-Fix-detection-of-seccomp-.patch
+Patch0038: 0038-linux-user-properly-test-for-infini.patch
+Patch0039: 0039-Fix-tlb_vaddr_to_host-with-CONFIG_U.patch
+Patch0040: 0040-linux-user-remove-all-traces-of-qem.patch
+Patch0041: 0041-vmsvga-correct-bitmap-and-pixmap-si.patch
+Patch0042: 0042-scsi-mptconfig-fix-an-assert-expres.patch
+Patch0043: 0043-scsi-mptconfig-fix-misuse-of-MPTSAS.patch
+Patch0044: 0044-scsi-pvscsi-limit-loop-to-fetch-SG-.patch
+Patch0045: 0045-usb-xhci-fix-memory-leak-in-usb_xhc.patch
+Patch0046: 0046-scsi-mptsas-use-g_new0-to-allocate-.patch
+Patch0047: 0047-scsi-pvscsi-limit-process-IO-loop-t.patch
+Patch0048: 0048-virtio-add-check-for-descriptor-s-m.patch
+Patch0049: 0049-net-mcf-limit-buffer-descriptor-cou.patch
+Patch0050: 0050-usb-ehci-fix-memory-leak-in-ehci_pr.patch
+Patch0051: 0051-xhci-limit-the-number-of-link-trbs-.patch
+Patch0052: 0052-9pfs-allocate-space-for-guest-origi.patch
+Patch0053: 0053-9pfs-fix-memory-leak-in-v9fs_link.patch
+Patch0054: 0054-9pfs-fix-potential-host-memory-leak.patch
+Patch0055: 0055-9pfs-fix-information-leak-in-xattr-.patch
+Patch0056: 0056-9pfs-fix-memory-leak-in-v9fs_xattrc.patch
+Patch0057: 0057-9pfs-fix-memory-leak-in-v9fs_write.patch
+Patch0058: 0058-char-serial-check-divider-value-aga.patch
+Patch0059: 0059-net-pcnet-check-rx-tx-descriptor-ri.patch
+Patch0060: 0060-net-eepro100-fix-memory-leak-in-dev.patch
+Patch0061: 0061-net-rocker-set-limit-to-DMA-buffer-.patch
+Patch0062: 0062-net-vmxnet-initialise-local-tx-desc.patch
+Patch0063: 0063-net-rtl8139-limit-processing-of-rin.patch
+Patch0064: 0064-audio-intel-hda-check-stream-entry-.patch
+Patch0065: 0065-virtio-gpu-fix-memory-leak-in-virti.patch
+Patch0066: 0066-9pfs-fix-integer-overflow-issue-in-.patch
+Patch0067: 0067-dma-rc4030-limit-interval-timer-rel.patch
+Patch0068: 0068-net-imx-limit-buffer-descriptor-cou.patch
+Patch0069: 0069-roms-Makefile-pass-a-packaging-time.patch
# Please do not add QEMU patches manually here.
# Run update_git.sh to regenerate this queue.
%if %{build_x86_fw_from_source}
-# SeaBIOS
+# SeaBIOS / SeaVGABIOS
# PATCH-FIX-OPENSUSE seabios_128kb.patch brogers@suse.com -- make it fit
Patch1000: seabios_128kb.patch
# ipxe
-Patch1100: ipxe-ath9k-Fix-buffer-overrun-for-ar9287.patch
-Patch1101: ipxe-mucurses-Fix-GCC-6-nonnull-compare-errors.patch
-Patch1102: ipxe-sis190-Fix-building-with-GCC-6.patch
-Patch1103: ipxe-skge-Fix-building-with-GCC-6.patch
-Patch1104: ipxe-ath-Fix-building-with-GCC-6.patch
-Patch1105: ipxe-legacy-Fix-building-with-GCC-6.patch
-Patch1106: ipxe-util-v5.24-perl-errors-on-redeclare.patch
-Patch1107: ipxe-efi-fix-garbage-bytes-in-device-path.patch
-Patch1108: ipxe-efi-fix-uninitialised-data-in-HII.patch
+# PATCH-FIX-OPENSUSE ipxe-stable-buildid.patch brogers@suse.com -- reproducible builds
+Patch1100: ipxe-stable-buildid.patch
+
+# sgabios
+# PATCH-FIX-OPENSUSE sgabios-stable-buildid.patch brogers@suse.com -- reproducible builds
+Patch1200: sgabios-stable-buildid.patch
+%endif
+
+%if %{build_slof_from_source}
+# SLOF
+# PATCH-FIX-UPSTREAM slof_xhci.patch afaerber@suse.de -- XHCI fixes
+Patch1300: slof_xhci.patch
%endif
# this is to make lint happy
@@ -250,6 +269,9 @@
%if 0%{?with_seccomp}
BuildRequires: libseccomp-devel
%endif
+%if 0%{?with_spice}
+BuildRequires: libspice-server-devel
+%endif
%if 0%{?suse_version} > 1140
BuildRequires: libssh2-devel
%endif
@@ -273,6 +295,9 @@
%if 0%{?suse_version} >= 1310
BuildRequires: snappy-devel
%endif
+%if 0%{?with_spice}
+BuildRequires: spice-protocol-devel
+%endif
%if 0%{?suse_version} >= 1210
BuildRequires: systemd
%{?systemd_requires}
@@ -307,12 +332,6 @@
BuildRequires: xz-devel
%endif
BuildRequires: zlib-devel
-%if 0%{?suse_version} >= 1140
-%ifarch %ix86 x86_64
-BuildRequires: libspice-server-devel
-BuildRequires: spice-protocol-devel
-%endif
-%endif
%if "%{name}" == "qemu-testsuite"
BuildRequires: bc
BuildRequires: qemu-arm = %version
@@ -331,6 +350,11 @@
%ifarch s390x
Requires(post): procps
%endif
+%if ! %{legacy_qemu_kvm}
+%if 0%{?suse_version} > 1320
+Recommends: kvm_stat
+%endif
+%endif
%endif
Recommends: qemu-block-curl
Recommends: qemu-tools
@@ -370,8 +394,8 @@
%endif
%ifarch x86_64
-%define x86_64_only_b_f_f {efi-e1000.rom efi-eepro100.rom \
-efi-pcnet.rom efi-ne2k_pci.rom efi-rtl8139.rom efi-virtio.rom}
+%define x86_64_only_b_f_f {efi-e1000.rom efi-e1000e.rom efi-eepro100.rom \
+efi-pcnet.rom efi-ne2k_pci.rom efi-rtl8139.rom efi-virtio.rom efi-vmxnet3.rom}
%endif
%define built_firmware_files {bios.bin bios-256k.bin sgabios.bin vgabios.bin \
vgabios-cirrus.bin vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin \
@@ -410,6 +434,8 @@
Summary: Universal CPU emulator -- Power Architecture
Group: System/Emulators/PC
Requires: qemu = %version
+Recommends: qemu-ipxe
+Recommends: qemu-vgabios
%description ppc
QEMU is an extremely well-performing CPU emulator that allows you to
@@ -438,6 +464,8 @@
Summary: Universal CPU emulator -- ARM
Group: System/Emulators/PC
Requires: qemu = %version
+Recommends: qemu-ipxe
+Recommends: qemu-vgabios
%description arm
QEMU is an extremely well-performing CPU emulator that allows you to
@@ -452,6 +480,8 @@
Summary: Universal CPU emulator -- extra architectures
Group: System/Emulators/PC
Requires: qemu = %version
+Recommends: qemu-ipxe
+Recommends: qemu-vgabios
%description extra
QEMU is an extremely well-performing CPU emulator that allows you to
@@ -475,6 +505,9 @@
%endif
Provides: kvm = %version
Obsoletes: kvm < %version
+%if 0%{?suse_version} > 1320
+Requires: kvm_stat
+%endif
Recommends: python-curses
%description kvm
@@ -650,7 +683,7 @@
%package seabios
Summary: X86 BIOS for QEMU
Group: System/Emulators/PC
-Version: 1.9.1
+Version: 1.9.3
Release: 0
%if 0%{?suse_version} > %{noarch_supported}
BuildArch: noarch
@@ -664,7 +697,7 @@
%package vgabios
Summary: VGA BIOSes for QEMU
Group: System/Emulators/PC
-Version: 1.9.1
+Version: 1.9.3
Release: 0
%if 0%{?suse_version} > %{noarch_supported}
BuildArch: noarch
@@ -721,7 +754,7 @@
%endif # !qemu-testsuite
%prep
-%setup -q -n qemu-2.6.1
+%setup -q -n qemu-2.7.0
%patch0001 -p1
%patch0002 -p1
%patch0003 -p1
@@ -777,6 +810,20 @@
%patch0053 -p1
%patch0054 -p1
%patch0055 -p1
+%patch0056 -p1
+%patch0057 -p1
+%patch0058 -p1
+%patch0059 -p1
+%patch0060 -p1
+%patch0061 -p1
+%patch0062 -p1
+%patch0063 -p1
+%patch0064 -p1
+%patch0065 -p1
+%patch0066 -p1
+%patch0067 -p1
+%patch0068 -p1
+%patch0069 -p1
%if %{build_x86_fw_from_source}
pushd roms/seabios
@@ -784,14 +831,9 @@
popd
pushd roms/ipxe
%patch1100 -p1
-%patch1101 -p1
-%patch1102 -p1
-%patch1103 -p1
-%patch1104 -p1
-%patch1105 -p1
-%patch1106 -p1
-%patch1107 -p1
-%patch1108 -p1
+popd
+pushd roms/sgabios
+%patch1200 -p1
popd
# as a safeguard, delete the firmware files that we intend to build
@@ -802,10 +844,14 @@
%endif
%if %{build_slof_from_source}
+pushd roms/SLOF
+%patch1300 -p1
+popd
rm -f pc-bios/slof.bin
%endif
%build
+echo '%{version}' > roms/seabios/.version
./configure \
--prefix=%_prefix \
--sysconfdir=%_sysconfdir \
@@ -853,6 +899,7 @@
%else
--with-gtkabi=2.0 \
%endif
+ --disable-jemalloc \
%if %{kvm_available}
--enable-kvm \
%else
@@ -920,15 +967,12 @@
%else
--disable-snappy \
%endif
-%if 0%{?suse_version} >= 1140
-%ifarch %ix86 x86_64
+%if 0%{?with_spice}
--enable-spice \
%else
--disable-spice \
%endif
-%else
- --disable-spice \
-%endif
+ --disable-tcmalloc \
--enable-tpm \
%if 0%{?sles_version} != 11
--enable-usb-redir \
@@ -1080,7 +1124,9 @@
chmod 644 %{buildroot}%{_sysconfdir}/sysctl.d/50-allow-kvm-on-s390x
%endif
install -D -m 755 %{SOURCE2} %{buildroot}/usr/share/qemu/qemu-ifup
+%if 0%{?suse_version} <= 1320
install -D -m 755 %{SOURCE3} %{buildroot}%{_bindir}/kvm_stat
+%endif
install -D -m 644 %{SOURCE4} %{buildroot}%{_mandir}/man1/qemu-kvm.1.gz
%endif
%if %{kvm_available}
@@ -1188,7 +1234,7 @@
%doc %_mandir/man1/qemu.1.gz
%dir %_datadir/%name
%_datadir/%name/keymaps
-%_datadir/%name/trace-events
+%_datadir/%name/trace-events-all
%_datadir/%name/qemu-icon.bmp
%_datadir/%name/qemu_logo_no_text.svg
%dir %_sysconfdir/%name
@@ -1213,6 +1259,7 @@
%_bindir/qemu-system-x86_64
%_datadir/%name/kvmvapic.bin
%_datadir/%name/linuxboot.bin
+%_datadir/%name/linuxboot_dma.bin
%_datadir/%name/multiboot.bin
%files ppc
@@ -1271,7 +1318,9 @@
%files kvm
%defattr(-,root,root)
%_bindir/qemu-kvm
+%if 0%{?suse_version} <= 1320
%_bindir/kvm_stat
+%endif
%_datadir/qemu/qemu-ifup
%_mandir/man1/qemu-kvm.1.gz
%endif
@@ -1341,11 +1390,13 @@
%_datadir/%name/pxe-rtl8139.rom
%_datadir/%name/pxe-virtio.rom
%_datadir/%name/efi-e1000.rom
+%_datadir/%name/efi-e1000e.rom
%_datadir/%name/efi-eepro100.rom
%_datadir/%name/efi-pcnet.rom
%_datadir/%name/efi-ne2k_pci.rom
%_datadir/%name/efi-rtl8139.rom
%_datadir/%name/efi-virtio.rom
+%_datadir/%name/efi-vmxnet3.rom
%endif
%files tools
++++++ qemu.spec ++++++
--- /var/tmp/diff_new_pack.7N4b5K/_old 2017-01-19 10:36:44.009312445 +0100
+++ /var/tmp/diff_new_pack.7N4b5K/_new 2017-01-19 10:36:44.017311317 +0100
@@ -1,7 +1,7 @@
#
# spec file for package qemu
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -44,7 +44,6 @@
%endif
%define noarch_supported 1110
-%if 0%{?is_opensuse} == 0
%ifarch x86_64
%if 0%{?suse_version} > 1320 || ( 0%{?suse_version} == 1315 && ( 0%{?is_opensuse} == 0 || 0%{?sle_version} > 120100 ) )
%define with_rbd 1
@@ -56,7 +55,6 @@
%define with_rbd 1
%endif
%endif
-%endif
%if 0%{?suse_version} > 1320
%define with_seccomp 1
@@ -66,15 +64,19 @@
%define with_seccomp 1
%endif
+%if 0%{?suse_version} >= 1140
+%define with_spice 1
+%endif
+
Name: qemu
Url: http://www.qemu.org/
Summary: Universal CPU emulator
License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT
Group: System/Emulators/PC
-Version: 2.6.1
+Version: 2.7.0
Release: 0
-Source: http://wiki.qemu.org/download/qemu-2.6.1.tar.bz2
-Source99: http://wiki.qemu.org/download/qemu-2.6.1.tar.bz2.sig
+Source: http://wiki.qemu.org/download/qemu-2.7.0.tar.bz2
+Source99: http://wiki.qemu.org/download/qemu-2.7.0.tar.bz2.sig
Source1: 80-kvm.rules
Source2: qemu-ifup
Source3: kvm_stat
@@ -88,78 +90,95 @@
# Upstream First -- http://wiki.qemu-project.org/Contribute/SubmitAPatch
# This patch queue is auto-generated from https://github.com/openSUSE/qemu
Patch0001: 0001-XXX-dont-dump-core-on-sigabort.patch
-Patch0002: 0002-qemu-0.9.0.cvs-binfmt.patch
+Patch0002: 0002-qemu-binfmt-conf-Modify-default-pat.patch
Patch0003: 0003-qemu-cvs-alsa_bitfield.patch
Patch0004: 0004-qemu-cvs-alsa_ioctl.patch
Patch0005: 0005-qemu-cvs-alsa_mmap.patch
Patch0006: 0006-qemu-cvs-gettimeofday.patch
Patch0007: 0007-qemu-cvs-ioctl_debug.patch
Patch0008: 0008-qemu-cvs-ioctl_nodirection.patch
-Patch0009: 0009-block-vmdk-Support-creation-of-SCSI.patch
-Patch0010: 0010-linux-user-add-binfmt-wrapper-for-a.patch
-Patch0011: 0011-PPC-KVM-Disable-mmu-notifier-check.patch
-Patch0012: 0012-linux-user-fix-segfault-deadlock.patch
-Patch0013: 0013-linux-user-binfmt-support-host-bina.patch
-Patch0014: 0014-linux-user-Ignore-broken-loop-ioctl.patch
-Patch0015: 0015-linux-user-lock-tcg.patch
-Patch0016: 0016-linux-user-Run-multi-threaded-code-.patch
-Patch0017: 0017-linux-user-lock-tb-flushing-too.patch
-Patch0018: 0018-linux-user-Fake-proc-cpuinfo.patch
-Patch0019: 0019-linux-user-implement-FS_IOC_GETFLAG.patch
-Patch0020: 0020-linux-user-implement-FS_IOC_SETFLAG.patch
-Patch0021: 0021-linux-user-XXX-disable-fiemap.patch
-Patch0022: 0022-slirp-nooutgoing.patch
-Patch0023: 0023-vnc-password-file-and-incoming-conn.patch
-Patch0024: 0024-linux-user-add-more-blk-ioctls.patch
-Patch0025: 0025-linux-user-use-target_ulong.patch
-Patch0026: 0026-block-Add-support-for-DictZip-enabl.patch
-Patch0027: 0027-block-Add-tar-container-format.patch
-Patch0028: 0028-Legacy-Patch-kvm-qemu-preXX-dictzip.patch
-Patch0029: 0029-console-add-question-mark-escape-op.patch
-Patch0030: 0030-Make-char-muxer-more-robust-wrt-sma.patch
-Patch0031: 0031-linux-user-lseek-explicitly-cast-no.patch
-Patch0032: 0032-virtfs-proxy-helper-Provide-__u64-f.patch
-Patch0033: 0033-configure-Enable-PIE-for-ppc-and-pp.patch
-Patch0034: 0034-qtest-Increase-socket-timeout.patch
-Patch0035: 0035-AIO-Reduce-number-of-threads-for-32.patch
-Patch0036: 0036-configure-Enable-libseccomp-for-ppc.patch
-Patch0037: 0037-dictzip-Fix-on-big-endian-systems.patch
-Patch0038: 0038-block-split-large-discard-requests-.patch
-Patch0039: 0039-xen_disk-Add-suse-specific-flush-di.patch
-Patch0040: 0040-build-link-with-libatomic-on-powerp.patch
-Patch0041: 0041-xen-introduce-dummy-system-device.patch
-Patch0042: 0042-xen-write-information-about-support.patch
-Patch0043: 0043-xen-add-pvUSB-backend.patch
-Patch0044: 0044-xen-move-xen_sysdev-to-xen_backend..patch
-Patch0045: 0045-vnc-add-configurable-keyboard-delay.patch
-Patch0046: 0046-configure-add-echo_version-helper.patch
-Patch0047: 0047-configure-support-vte-2.91.patch
-Patch0048: 0048-hw-arm-virt-mark-the-PCIe-host-cont.patch
-Patch0049: 0049-xen-SUSE-xenlinux-unplug-for-emulat.patch
-Patch0050: 0050-scsi-esp-fix-migration.patch
-Patch0051: 0051-xen-when-removing-a-backend-don-t-r.patch
-Patch0052: 0052-xen-drain-submit-queue-in-xen-usb-b.patch
-Patch0053: 0053-qcow2-avoid-extra-flushes-in-qcow2.patch
-Patch0054: 0054-qemu-bridge-helper-reduce-security-.patch
-Patch0055: 0055-xen-use-a-common-function-for-pv-an.patch
+Patch0009: 0009-linux-user-add-binfmt-wrapper-for-a.patch
+Patch0010: 0010-PPC-KVM-Disable-mmu-notifier-check.patch
+Patch0011: 0011-linux-user-fix-segfault-deadlock.patch
+Patch0012: 0012-linux-user-binfmt-support-host-bina.patch
+Patch0013: 0013-linux-user-lock-tcg.patch
+Patch0014: 0014-linux-user-Run-multi-threaded-code-.patch
+Patch0015: 0015-linux-user-lock-tb-flushing-too.patch
+Patch0016: 0016-linux-user-Fake-proc-cpuinfo.patch
+Patch0017: 0017-linux-user-implement-FS_IOC_GETFLAG.patch
+Patch0018: 0018-linux-user-implement-FS_IOC_SETFLAG.patch
+Patch0019: 0019-linux-user-XXX-disable-fiemap.patch
+Patch0020: 0020-slirp-nooutgoing.patch
+Patch0021: 0021-vnc-password-file-and-incoming-conn.patch
+Patch0022: 0022-linux-user-use-target_ulong.patch
+Patch0023: 0023-block-Add-support-for-DictZip-enabl.patch
+Patch0024: 0024-block-Add-tar-container-format.patch
+Patch0025: 0025-Legacy-Patch-kvm-qemu-preXX-dictzip.patch
+Patch0026: 0026-console-add-question-mark-escape-op.patch
+Patch0027: 0027-Make-char-muxer-more-robust-wrt-sma.patch
+Patch0028: 0028-linux-user-lseek-explicitly-cast-no.patch
+Patch0029: 0029-virtfs-proxy-helper-Provide-__u64-f.patch
+Patch0030: 0030-configure-Enable-PIE-for-ppc-and-pp.patch
+Patch0031: 0031-AIO-Reduce-number-of-threads-for-32.patch
+Patch0032: 0032-dictzip-Fix-on-big-endian-systems.patch
+Patch0033: 0033-xen_disk-Add-suse-specific-flush-di.patch
+Patch0034: 0034-xen-SUSE-xenlinux-unplug-for-emulat.patch
+Patch0035: 0035-qemu-bridge-helper-reduce-security-.patch
+Patch0036: 0036-qemu-binfmt-conf-use-qemu-ARCH-binf.patch
+Patch0037: 0037-configure-Fix-detection-of-seccomp-.patch
+Patch0038: 0038-linux-user-properly-test-for-infini.patch
+Patch0039: 0039-Fix-tlb_vaddr_to_host-with-CONFIG_U.patch
+Patch0040: 0040-linux-user-remove-all-traces-of-qem.patch
+Patch0041: 0041-vmsvga-correct-bitmap-and-pixmap-si.patch
+Patch0042: 0042-scsi-mptconfig-fix-an-assert-expres.patch
+Patch0043: 0043-scsi-mptconfig-fix-misuse-of-MPTSAS.patch
+Patch0044: 0044-scsi-pvscsi-limit-loop-to-fetch-SG-.patch
+Patch0045: 0045-usb-xhci-fix-memory-leak-in-usb_xhc.patch
+Patch0046: 0046-scsi-mptsas-use-g_new0-to-allocate-.patch
+Patch0047: 0047-scsi-pvscsi-limit-process-IO-loop-t.patch
+Patch0048: 0048-virtio-add-check-for-descriptor-s-m.patch
+Patch0049: 0049-net-mcf-limit-buffer-descriptor-cou.patch
+Patch0050: 0050-usb-ehci-fix-memory-leak-in-ehci_pr.patch
+Patch0051: 0051-xhci-limit-the-number-of-link-trbs-.patch
+Patch0052: 0052-9pfs-allocate-space-for-guest-origi.patch
+Patch0053: 0053-9pfs-fix-memory-leak-in-v9fs_link.patch
+Patch0054: 0054-9pfs-fix-potential-host-memory-leak.patch
+Patch0055: 0055-9pfs-fix-information-leak-in-xattr-.patch
+Patch0056: 0056-9pfs-fix-memory-leak-in-v9fs_xattrc.patch
+Patch0057: 0057-9pfs-fix-memory-leak-in-v9fs_write.patch
+Patch0058: 0058-char-serial-check-divider-value-aga.patch
+Patch0059: 0059-net-pcnet-check-rx-tx-descriptor-ri.patch
+Patch0060: 0060-net-eepro100-fix-memory-leak-in-dev.patch
+Patch0061: 0061-net-rocker-set-limit-to-DMA-buffer-.patch
+Patch0062: 0062-net-vmxnet-initialise-local-tx-desc.patch
+Patch0063: 0063-net-rtl8139-limit-processing-of-rin.patch
+Patch0064: 0064-audio-intel-hda-check-stream-entry-.patch
+Patch0065: 0065-virtio-gpu-fix-memory-leak-in-virti.patch
+Patch0066: 0066-9pfs-fix-integer-overflow-issue-in-.patch
+Patch0067: 0067-dma-rc4030-limit-interval-timer-rel.patch
+Patch0068: 0068-net-imx-limit-buffer-descriptor-cou.patch
+Patch0069: 0069-roms-Makefile-pass-a-packaging-time.patch
# Please do not add QEMU patches manually here.
# Run update_git.sh to regenerate this queue.
%if %{build_x86_fw_from_source}
-# SeaBIOS
+# SeaBIOS / SeaVGABIOS
# PATCH-FIX-OPENSUSE seabios_128kb.patch brogers@suse.com -- make it fit
Patch1000: seabios_128kb.patch
# ipxe
-Patch1100: ipxe-ath9k-Fix-buffer-overrun-for-ar9287.patch
-Patch1101: ipxe-mucurses-Fix-GCC-6-nonnull-compare-errors.patch
-Patch1102: ipxe-sis190-Fix-building-with-GCC-6.patch
-Patch1103: ipxe-skge-Fix-building-with-GCC-6.patch
-Patch1104: ipxe-ath-Fix-building-with-GCC-6.patch
-Patch1105: ipxe-legacy-Fix-building-with-GCC-6.patch
-Patch1106: ipxe-util-v5.24-perl-errors-on-redeclare.patch
-Patch1107: ipxe-efi-fix-garbage-bytes-in-device-path.patch
-Patch1108: ipxe-efi-fix-uninitialised-data-in-HII.patch
+# PATCH-FIX-OPENSUSE ipxe-stable-buildid.patch brogers@suse.com -- reproducible builds
+Patch1100: ipxe-stable-buildid.patch
+
+# sgabios
+# PATCH-FIX-OPENSUSE sgabios-stable-buildid.patch brogers@suse.com -- reproducible builds
+Patch1200: sgabios-stable-buildid.patch
+%endif
+
+%if %{build_slof_from_source}
+# SLOF
+# PATCH-FIX-UPSTREAM slof_xhci.patch afaerber@suse.de -- XHCI fixes
+Patch1300: slof_xhci.patch
%endif
# this is to make lint happy
@@ -250,6 +269,9 @@
%if 0%{?with_seccomp}
BuildRequires: libseccomp-devel
%endif
+%if 0%{?with_spice}
+BuildRequires: libspice-server-devel
+%endif
%if 0%{?suse_version} > 1140
BuildRequires: libssh2-devel
%endif
@@ -273,6 +295,9 @@
%if 0%{?suse_version} >= 1310
BuildRequires: snappy-devel
%endif
+%if 0%{?with_spice}
+BuildRequires: spice-protocol-devel
+%endif
%if 0%{?suse_version} >= 1210
BuildRequires: systemd
%{?systemd_requires}
@@ -307,12 +332,6 @@
BuildRequires: xz-devel
%endif
BuildRequires: zlib-devel
-%if 0%{?suse_version} >= 1140
-%ifarch %ix86 x86_64
-BuildRequires: libspice-server-devel
-BuildRequires: spice-protocol-devel
-%endif
-%endif
%if "%{name}" == "qemu-testsuite"
BuildRequires: bc
BuildRequires: qemu-arm = %version
@@ -331,6 +350,11 @@
%ifarch s390x
Requires(post): procps
%endif
+%if ! %{legacy_qemu_kvm}
+%if 0%{?suse_version} > 1320
+Recommends: kvm_stat
+%endif
+%endif
%endif
Recommends: qemu-block-curl
Recommends: qemu-tools
@@ -370,8 +394,8 @@
%endif
%ifarch x86_64
-%define x86_64_only_b_f_f {efi-e1000.rom efi-eepro100.rom \
-efi-pcnet.rom efi-ne2k_pci.rom efi-rtl8139.rom efi-virtio.rom}
+%define x86_64_only_b_f_f {efi-e1000.rom efi-e1000e.rom efi-eepro100.rom \
+efi-pcnet.rom efi-ne2k_pci.rom efi-rtl8139.rom efi-virtio.rom efi-vmxnet3.rom}
%endif
%define built_firmware_files {bios.bin bios-256k.bin sgabios.bin vgabios.bin \
vgabios-cirrus.bin vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin \
@@ -410,6 +434,8 @@
Summary: Universal CPU emulator -- Power Architecture
Group: System/Emulators/PC
Requires: qemu = %version
+Recommends: qemu-ipxe
+Recommends: qemu-vgabios
%description ppc
QEMU is an extremely well-performing CPU emulator that allows you to
@@ -438,6 +464,8 @@
Summary: Universal CPU emulator -- ARM
Group: System/Emulators/PC
Requires: qemu = %version
+Recommends: qemu-ipxe
+Recommends: qemu-vgabios
%description arm
QEMU is an extremely well-performing CPU emulator that allows you to
@@ -452,6 +480,8 @@
Summary: Universal CPU emulator -- extra architectures
Group: System/Emulators/PC
Requires: qemu = %version
+Recommends: qemu-ipxe
+Recommends: qemu-vgabios
%description extra
QEMU is an extremely well-performing CPU emulator that allows you to
@@ -475,6 +505,9 @@
%endif
Provides: kvm = %version
Obsoletes: kvm < %version
+%if 0%{?suse_version} > 1320
+Requires: kvm_stat
+%endif
Recommends: python-curses
%description kvm
@@ -650,7 +683,7 @@
%package seabios
Summary: X86 BIOS for QEMU
Group: System/Emulators/PC
-Version: 1.9.1
+Version: 1.9.3
Release: 0
%if 0%{?suse_version} > %{noarch_supported}
BuildArch: noarch
@@ -664,7 +697,7 @@
%package vgabios
Summary: VGA BIOSes for QEMU
Group: System/Emulators/PC
-Version: 1.9.1
+Version: 1.9.3
Release: 0
%if 0%{?suse_version} > %{noarch_supported}
BuildArch: noarch
@@ -721,7 +754,7 @@
%endif # !qemu-testsuite
%prep
-%setup -q -n qemu-2.6.1
+%setup -q -n qemu-2.7.0
%patch0001 -p1
%patch0002 -p1
%patch0003 -p1
@@ -777,6 +810,20 @@
%patch0053 -p1
%patch0054 -p1
%patch0055 -p1
+%patch0056 -p1
+%patch0057 -p1
+%patch0058 -p1
+%patch0059 -p1
+%patch0060 -p1
+%patch0061 -p1
+%patch0062 -p1
+%patch0063 -p1
+%patch0064 -p1
+%patch0065 -p1
+%patch0066 -p1
+%patch0067 -p1
+%patch0068 -p1
+%patch0069 -p1
%if %{build_x86_fw_from_source}
pushd roms/seabios
@@ -784,14 +831,9 @@
popd
pushd roms/ipxe
%patch1100 -p1
-%patch1101 -p1
-%patch1102 -p1
-%patch1103 -p1
-%patch1104 -p1
-%patch1105 -p1
-%patch1106 -p1
-%patch1107 -p1
-%patch1108 -p1
+popd
+pushd roms/sgabios
+%patch1200 -p1
popd
# as a safeguard, delete the firmware files that we intend to build
@@ -802,10 +844,14 @@
%endif
%if %{build_slof_from_source}
+pushd roms/SLOF
+%patch1300 -p1
+popd
rm -f pc-bios/slof.bin
%endif
%build
+echo '%{version}' > roms/seabios/.version
./configure \
--prefix=%_prefix \
--sysconfdir=%_sysconfdir \
@@ -853,6 +899,7 @@
%else
--with-gtkabi=2.0 \
%endif
+ --disable-jemalloc \
%if %{kvm_available}
--enable-kvm \
%else
@@ -920,15 +967,12 @@
%else
--disable-snappy \
%endif
-%if 0%{?suse_version} >= 1140
-%ifarch %ix86 x86_64
+%if 0%{?with_spice}
--enable-spice \
%else
--disable-spice \
%endif
-%else
- --disable-spice \
-%endif
+ --disable-tcmalloc \
--enable-tpm \
%if 0%{?sles_version} != 11
--enable-usb-redir \
@@ -1080,7 +1124,9 @@
chmod 644 %{buildroot}%{_sysconfdir}/sysctl.d/50-allow-kvm-on-s390x
%endif
install -D -m 755 %{SOURCE2} %{buildroot}/usr/share/qemu/qemu-ifup
+%if 0%{?suse_version} <= 1320
install -D -m 755 %{SOURCE3} %{buildroot}%{_bindir}/kvm_stat
+%endif
install -D -m 644 %{SOURCE4} %{buildroot}%{_mandir}/man1/qemu-kvm.1.gz
%endif
%if %{kvm_available}
@@ -1188,7 +1234,7 @@
%doc %_mandir/man1/qemu.1.gz
%dir %_datadir/%name
%_datadir/%name/keymaps
-%_datadir/%name/trace-events
+%_datadir/%name/trace-events-all
%_datadir/%name/qemu-icon.bmp
%_datadir/%name/qemu_logo_no_text.svg
%dir %_sysconfdir/%name
@@ -1213,6 +1259,7 @@
%_bindir/qemu-system-x86_64
%_datadir/%name/kvmvapic.bin
%_datadir/%name/linuxboot.bin
+%_datadir/%name/linuxboot_dma.bin
%_datadir/%name/multiboot.bin
%files ppc
@@ -1271,7 +1318,9 @@
%files kvm
%defattr(-,root,root)
%_bindir/qemu-kvm
+%if 0%{?suse_version} <= 1320
%_bindir/kvm_stat
+%endif
%_datadir/qemu/qemu-ifup
%_mandir/man1/qemu-kvm.1.gz
%endif
@@ -1341,11 +1390,13 @@
%_datadir/%name/pxe-rtl8139.rom
%_datadir/%name/pxe-virtio.rom
%_datadir/%name/efi-e1000.rom
+%_datadir/%name/efi-e1000e.rom
%_datadir/%name/efi-eepro100.rom
%_datadir/%name/efi-pcnet.rom
%_datadir/%name/efi-ne2k_pci.rom
%_datadir/%name/efi-rtl8139.rom
%_datadir/%name/efi-virtio.rom
+%_datadir/%name/efi-vmxnet3.rom
%endif
%files tools
++++++ 0001-XXX-dont-dump-core-on-sigabort.patch ++++++
--- /var/tmp/diff_new_pack.7N4b5K/_old 2017-01-19 10:36:44.045307368 +0100
+++ /var/tmp/diff_new_pack.7N4b5K/_new 2017-01-19 10:36:44.045307368 +0100
@@ -1,4 +1,4 @@
-From 652983299b4b18cdf26414b0ba468c5dd166adc7 Mon Sep 17 00:00:00 2001
+From 69e1d0ef9e44d913774efb96b19ad43b037be920 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Mon, 21 Nov 2011 23:50:36 +0100
Subject: [PATCH] XXX dont dump core on sigabort
@@ -8,10 +8,10 @@
1 file changed, 6 insertions(+)
diff --git a/linux-user/signal.c b/linux-user/signal.c
-index 96e86c0..d422aeb 100644
+index 9a4d894..2a07043 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
-@@ -443,6 +443,10 @@ static void QEMU_NORETURN force_sig(int target_sig)
+@@ -526,6 +526,10 @@ static void QEMU_NORETURN force_sig(int target_sig)
trace_user_force_sig(env, target_sig, host_sig);
gdb_signalled(env, target_sig);
@@ -22,7 +22,7 @@
/* dump core if supported by target binary format */
if (core_dump_signal(target_sig) && (ts->bprm->core_dump != NULL)) {
stop_all_tasks();
-@@ -460,6 +464,8 @@ static void QEMU_NORETURN force_sig(int target_sig)
+@@ -543,6 +547,8 @@ static void QEMU_NORETURN force_sig(int target_sig)
target_sig, strsignal(host_sig), "core dumped" );
}
++++++ 0002-qemu-binfmt-conf-Modify-default-pat.patch ++++++
From 92a7da288949c5f96e4aef3281652d5cd8a903bf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?=
Date: Wed, 10 Aug 2016 19:00:24 +0200
Subject: [PATCH] qemu-binfmt-conf: Modify default path
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change QEMU_PATH from /usr/local/bin to /usr/bin prefix.
Signed-off-by: Andreas Färber
---
scripts/qemu-binfmt-conf.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index de4d1c1..7640255 100755
--- a/scripts/qemu-binfmt-conf.sh
+++ b/scripts/qemu-binfmt-conf.sh
@@ -259,7 +259,7 @@ BINFMT_SET=qemu_register_interpreter
SYSTEMDDIR="/etc/binfmt.d"
DEBIANDIR="/usr/share/binfmts"
-QEMU_PATH=/usr/local/bin
+QEMU_PATH=/usr/bin
FLAGS=""
options=$(getopt -o ds:Q:e:hc: -l debian,systemd:,qemu-path:,exportdir:,help,credential: -- "$@")
++++++ 0003-qemu-cvs-alsa_bitfield.patch ++++++
--- /var/tmp/diff_new_pack.7N4b5K/_old 2017-01-19 10:36:44.061305112 +0100
+++ /var/tmp/diff_new_pack.7N4b5K/_new 2017-01-19 10:36:44.061305112 +0100
@@ -1,4 +1,4 @@
-From 6171d82516b151c7d2bac6484c801c45d8de796e Mon Sep 17 00:00:00 2001
+From 3861f88d6d47d16a289dc17b94ed7ca8a7955280 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Tue, 14 Apr 2009 16:20:50 +0200
Subject: [PATCH] qemu-cvs-alsa_bitfield
@@ -13,7 +13,7 @@
2 files changed, 24 insertions(+)
diff --git a/include/exec/user/thunk.h b/include/exec/user/thunk.h
-index ad1d602..4e082a7 100644
+index f19ef4b..b2659e0 100644
--- a/include/exec/user/thunk.h
+++ b/include/exec/user/thunk.h
@@ -37,6 +37,7 @@ typedef enum argtype {
@@ -24,7 +24,7 @@
} argtype;
#define MK_PTR(type) TYPE_PTR, type
-@@ -90,6 +91,7 @@ static inline int thunk_type_size(const argtype *type_ptr, int is_host)
+@@ -89,6 +90,7 @@ static inline int thunk_type_size(const argtype *type_ptr, int is_host)
case TYPE_SHORT:
return 2;
case TYPE_INT:
@@ -32,7 +32,7 @@
return 4;
case TYPE_LONGLONG:
case TYPE_ULONGLONG:
-@@ -152,6 +154,7 @@ static inline int thunk_type_align(const argtype *type_ptr, int is_host)
+@@ -151,6 +153,7 @@ static inline int thunk_type_align(const argtype *type_ptr, int is_host)
case TYPE_SHORT:
return 2;
case TYPE_INT:
@@ -41,7 +41,7 @@
case TYPE_LONGLONG:
case TYPE_ULONGLONG:
diff --git a/thunk.c b/thunk.c
-index f057d86..6db7874 100644
+index 2dac366..0eb7286 100644
--- a/thunk.c
+++ b/thunk.c
@@ -37,6 +37,7 @@ static inline const argtype *thunk_type_next(const argtype *type_ptr)
++++++ 0004-qemu-cvs-alsa_ioctl.patch ++++++
--- /var/tmp/diff_new_pack.7N4b5K/_old 2017-01-19 10:36:44.073303418 +0100
+++ /var/tmp/diff_new_pack.7N4b5K/_new 2017-01-19 10:36:44.073303418 +0100
@@ -1,12 +1,17 @@
-From b89afe9048994b21e361d9eebe96825d80d1ef56 Mon Sep 17 00:00:00 2001
+From 219067ccab5735ed9ae70c6079d5676cc6431727 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Tue, 14 Apr 2009 16:23:27 +0200
Subject: [PATCH] qemu-cvs-alsa_ioctl
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
Implements ALSA ioctls on PPC hosts.
Signed-off-by: Alexander Graf
Signed-off-by: Ulrich Hecht
+[AF: Rebased for v2.7.0-rc2]
+Signed-off-by: Andreas Färber
---
linux-user/ioctls.h | 5 +
linux-user/ioctls_alsa.h | 467 ++++++++++
@@ -20,10 +25,10 @@
create mode 100644 linux-user/syscall_types_alsa.h
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
-index e672655..921d482 100644
+index 7e2c133..cf8851d 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
-@@ -319,6 +319,11 @@
+@@ -348,6 +348,11 @@
IOCTL(VFAT_IOCTL_READDIR_BOTH, IOC_R, MK_PTR(MK_ARRAY(MK_STRUCT(STRUCT_dirent), 2)))
IOCTL(VFAT_IOCTL_READDIR_SHORT, IOC_R, MK_PTR(MK_ARRAY(MK_STRUCT(STRUCT_dirent), 2)))
@@ -2255,20 +2260,20 @@
+ unsigned char *code;
+};
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
-index 9e2b3c2..b090cdb 100644
+index 7835654..b869b3d 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
-@@ -2545,6 +2545,8 @@ struct target_ucred {
+@@ -2591,6 +2591,8 @@ struct target_ucred {
uint32_t gid;
};
+#include "ioctls_alsa_structs.h"
+
- #endif
-
typedef int32_t target_timer_t;
+
+ #define TARGET_SIGEV_MAX_SIZE 64
diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
-index 1fd4ee0..e5331b4 100644
+index af79fbf..4d99a9d 100644
--- a/linux-user/syscall_types.h
+++ b/linux-user/syscall_types.h
@@ -83,6 +83,11 @@ STRUCT(buffmem_desc,
++++++ 0005-qemu-cvs-alsa_mmap.patch ++++++
--- /var/tmp/diff_new_pack.7N4b5K/_old 2017-01-19 10:36:44.089301162 +0100
+++ /var/tmp/diff_new_pack.7N4b5K/_new 2017-01-19 10:36:44.097300034 +0100
@@ -1,4 +1,4 @@
-From 9c9cfb248223f4da2ea2333164ea7e6a6091c03a Mon Sep 17 00:00:00 2001
+From b62c901c47e3f38336c4aeb1e98a6140b4fe3469 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Tue, 14 Apr 2009 16:24:15 +0200
Subject: [PATCH] qemu-cvs-alsa_mmap
@@ -12,10 +12,10 @@
1 file changed, 14 insertions(+)
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
-index 3519147..671889b 100644
+index c4371d9..68a655e 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
-@@ -358,6 +358,9 @@ abi_ulong mmap_find_vma(abi_ulong start, abi_ulong size)
+@@ -357,6 +357,9 @@ abi_ulong mmap_find_vma(abi_ulong start, abi_ulong size)
}
}
@@ -25,7 +25,7 @@
/* NOTE: all the constants are the HOST ones */
abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
int flags, int fd, abi_ulong offset)
-@@ -392,6 +395,17 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
+@@ -391,6 +394,17 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
}
#endif
++++++ 0006-qemu-cvs-gettimeofday.patch ++++++
--- /var/tmp/diff_new_pack.7N4b5K/_old 2017-01-19 10:36:44.101299469 +0100
+++ /var/tmp/diff_new_pack.7N4b5K/_new 2017-01-19 10:36:44.101299469 +0100
@@ -1,4 +1,4 @@
-From 2dc4a9d135ce472a59da891af09ba9529c57b61b Mon Sep 17 00:00:00 2001
+From 4259605f8b9d113ff33c395ad6232f076e4e261d Mon Sep 17 00:00:00 2001
From: Ulrich Hecht
Date: Tue, 14 Apr 2009 16:25:41 +0200
Subject: [PATCH] qemu-cvs-gettimeofday
@@ -9,10 +9,10 @@
1 file changed, 2 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index 032d338..d231758 100644
+index ca06943..f120665 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
-@@ -6985,6 +6985,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
+@@ -8534,6 +8534,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
case TARGET_NR_gettimeofday:
{
struct timeval tv;
++++++ 0007-qemu-cvs-ioctl_debug.patch ++++++
--- /var/tmp/diff_new_pack.7N4b5K/_old 2017-01-19 10:36:44.109298341 +0100
+++ /var/tmp/diff_new_pack.7N4b5K/_new 2017-01-19 10:36:44.113297777 +0100
@@ -1,4 +1,4 @@
-From d2a4cedd351ff7e09843bb5cbb76038af2303df7 Mon Sep 17 00:00:00 2001
+From 382d3ca372e660d6961fd6a250d2241c4923ec19 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Tue, 14 Apr 2009 16:26:33 +0200
Subject: [PATCH] qemu-cvs-ioctl_debug
@@ -12,10 +12,10 @@
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index d231758..d693f9d 100644
+index f120665..1b3ed97 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
-@@ -4022,7 +4022,12 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg)
+@@ -5334,7 +5334,12 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg)
ie = ioctl_entries;
for(;;) {
if (ie->target_cmd == 0) {
++++++ 0008-qemu-cvs-ioctl_nodirection.patch ++++++
--- /var/tmp/diff_new_pack.7N4b5K/_old 2017-01-19 10:36:44.121296649 +0100
+++ /var/tmp/diff_new_pack.7N4b5K/_new 2017-01-19 10:36:44.129295521 +0100
@@ -1,4 +1,4 @@
-From 43f2593e07e0de12dddf72c3205e6a0fb851dc2d Mon Sep 17 00:00:00 2001
+From c0baf4a94377f6d64d632effb3ffe077c5f928e1 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Tue, 14 Apr 2009 16:27:36 +0200
Subject: [PATCH] qemu-cvs-ioctl_nodirection
@@ -15,10 +15,10 @@
1 file changed, 6 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index d693f9d..0858920 100644
+index 1b3ed97..8e69c15 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
-@@ -4055,6 +4055,11 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg)
+@@ -5367,6 +5367,11 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg)
arg_type++;
target_size = thunk_type_size(arg_type, 0);
switch(ie->access) {
@@ -28,11 +28,11 @@
+ * declared ioctls IOC_R and IOC_W even though they were IOC_RW.*/
+/*
case IOC_R:
- ret = get_errno(ioctl(fd, ie->host_cmd, buf_temp));
+ ret = get_errno(safe_ioctl(fd, ie->host_cmd, buf_temp));
if (!is_error(ret)) {
-@@ -4073,6 +4078,7 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg)
+@@ -5385,6 +5390,7 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg)
unlock_user(argptr, arg, 0);
- ret = get_errno(ioctl(fd, ie->host_cmd, buf_temp));
+ ret = get_errno(safe_ioctl(fd, ie->host_cmd, buf_temp));
break;
+*/
default:
++++++ 0010-linux-user-add-binfmt-wrapper-for-a.patch -> 0009-linux-user-add-binfmt-wrapper-for-a.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0010-linux-user-add-binfmt-wrapper-for-a.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0009-linux-user-add-binfmt-wrapper-for-a.patch 2017-01-19 10:36:36.782331798 +0100
@@ -1,4 +1,4 @@
-From 4234d2b99790fd33e82bee633f48d773e0c7c43e Mon Sep 17 00:00:00 2001
+From 5a101ff0b5669280fa46d4f6d0f798f4b02bae5f Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Fri, 30 Sep 2011 19:40:36 +0200
Subject: [PATCH] linux-user: add binfmt wrapper for argv[0] handling
@@ -27,17 +27,17 @@
[AF: Rebased onto new Makefile infrastructure, twice]
[AF: Updated for aarch64 for v2.0.0-rc1]
[AF: Rebased onto Makefile changes for v2.1.0-rc0]
+[AF: Rebased onto script rewrite for v2.7.0-rc2 - to be fixed]
Signed-off-by: Andreas Färber
---
- Makefile.target | 13 +++++++++++++
- linux-user/Makefile.objs | 2 ++
- linux-user/binfmt.c | 42 ++++++++++++++++++++++++++++++++++++++++++
- scripts/qemu-binfmt-conf.sh | 36 ++++++++++++++++++------------------
- 4 files changed, 75 insertions(+), 18 deletions(-)
+ Makefile.target | 13 +++++++++++++
+ linux-user/Makefile.objs | 2 ++
+ linux-user/binfmt.c | 42 ++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 57 insertions(+)
create mode 100644 linux-user/binfmt.c
diff --git a/Makefile.target b/Makefile.target
-index 34ddb7e..cba1078 100644
+index a440bcb..a65c55f 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -36,6 +36,10 @@ endif
@@ -51,7 +51,7 @@
config-target.h: config-target.h-timestamp
config-target.h-timestamp: config-target.mak
-@@ -113,6 +117,8 @@ QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) -I$(SRC_PATH)/linux-user
+@@ -115,6 +119,8 @@ QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) \
obj-y += linux-user/
obj-y += gdbstub.o thunk.o user-exec.o
@@ -60,7 +60,7 @@
endif #CONFIG_LINUX_USER
#########################################################
-@@ -161,7 +167,11 @@ endif # CONFIG_SOFTMMU
+@@ -163,7 +169,11 @@ endif # CONFIG_SOFTMMU
# Workaround for http://gcc.gnu.org/PR55489, see configure.
%/translate.o: QEMU_CFLAGS += $(TRANSLATE_OPT_CFLAGS)
@@ -72,7 +72,7 @@
all-obj-y := $(obj-y)
target-obj-y :=
-@@ -198,6 +208,9 @@ ifdef CONFIG_DARWIN
+@@ -200,6 +210,9 @@ ifdef CONFIG_DARWIN
$(call quiet-command,SetFile -a C $@," SETFILE $(TARGET_DIR)$@")
endif
@@ -83,10 +83,10 @@
$(call quiet-command,rm -f $@ && $(SHELL) $(SRC_PATH)/scripts/feature_to_c.sh $@ $(TARGET_XML_FILES)," GEN $(TARGET_DIR)$@")
diff --git a/linux-user/Makefile.objs b/linux-user/Makefile.objs
-index fd50217..446aca7 100644
+index 8c93058..607ca2d 100644
--- a/linux-user/Makefile.objs
+++ b/linux-user/Makefile.objs
-@@ -5,3 +5,5 @@ obj-$(TARGET_HAS_BFLT) += flatload.o
+@@ -6,3 +6,5 @@ obj-$(TARGET_HAS_BFLT) += flatload.o
obj-$(TARGET_I386) += vm86.o
obj-$(TARGET_ARM) += arm/nwfpe/
obj-$(TARGET_M68K) += m68k-sim.o
@@ -140,68 +140,3 @@
+
+ return execve(new_argv[0], new_argv, envp);
+}
-diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
-index 75e0526..557dd2c 100644
---- a/scripts/qemu-binfmt-conf.sh
-+++ b/scripts/qemu-binfmt-conf.sh
-@@ -34,42 +34,42 @@ esac
-
- # register the interpreter for each cpu except for the native one
- if [ $cpu != "i386" ] ; then
-- echo ':i386:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-i386:' > /proc/sys/fs/binfmt_misc/register
-- echo ':i486:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-i386:' > /proc/sys/fs/binfmt_misc/register
-+ echo ':i386:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-i386-binfmt:P' > /proc/sys/fs/binfmt_misc/register
-+ echo ':i486:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-i386-binfmt:P' > /proc/sys/fs/binfmt_misc/register
- fi
- if [ $cpu != "alpha" ] ; then
-- echo ':alpha:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-alpha:' > /proc/sys/fs/binfmt_misc/register
-+ echo ':alpha:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-alpha-binfmt:P' > /proc/sys/fs/binfmt_misc/register
- fi
- if [ $cpu != "arm" ] ; then
-- echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm:' > /proc/sys/fs/binfmt_misc/register
-- echo ':armeb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-armeb:' > /proc/sys/fs/binfmt_misc/register
-+ echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm-binfmt:P' > /proc/sys/fs/binfmt_misc/register
-+ echo ':armeb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-armeb-binfmt:P' > /proc/sys/fs/binfmt_misc/register
- fi
- if [ $cpu != "aarch64" ] ; then
-- echo ':aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-aarch64:' > /proc/sys/fs/binfmt_misc/register
-+ echo ':aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-aarch64-binfmt:P' > /proc/sys/fs/binfmt_misc/register
- fi
- if [ $cpu != "sparc" ] ; then
-- echo ':sparc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sparc:' > /proc/sys/fs/binfmt_misc/register
-+ echo ':sparc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sparc-binfmt:P' > /proc/sys/fs/binfmt_misc/register
- fi
- if [ $cpu != "ppc" ] ; then
-- echo ':ppc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-ppc:' > /proc/sys/fs/binfmt_misc/register
-+ echo ':ppc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-ppc-binfmt:P' > /proc/sys/fs/binfmt_misc/register
- fi
- if [ $cpu != "m68k" ] ; then
- echo 'Please check cpu value and header information for m68k!'
-- echo ':m68k:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-m68k:' > /proc/sys/fs/binfmt_misc/register
-+ echo ':m68k:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-m68k-binfmt:P' > /proc/sys/fs/binfmt_misc/register
- fi
- if [ $cpu != "mips" ] ; then
- # FIXME: We could use the other endianness on a MIPS host.
-- echo ':mips:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mips:' > /proc/sys/fs/binfmt_misc/register
-- echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsel:' > /proc/sys/fs/binfmt_misc/register
-- echo ':mipsn32:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mipsn32:' > /proc/sys/fs/binfmt_misc/register
-- echo ':mipsn32el:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsn32el:' > /proc/sys/fs/binfmt_misc/register
-- echo ':mips64:M::\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mips64:' > /proc/sys/fs/binfmt_misc/register
-- echo ':mips64el:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mips64el:' > /proc/sys/fs/binfmt_misc/register
-+ echo ':mips:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mips-binfmt:P' > /proc/sys/fs/binfmt_misc/register
-+ echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsel-binfmt:P' > /proc/sys/fs/binfmt_misc/register
-+ echo ':mipsn32:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mipsn32-binfmt:P' > /proc/sys/fs/binfmt_misc/register
-+ echo ':mipsn32el:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsn32el-binfmt:P' > /proc/sys/fs/binfmt_misc/register
-+ echo ':mips64:M::\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mips64-binfmt:P' > /proc/sys/fs/binfmt_misc/register
-+ echo ':mips64el:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mips64el-binfmt:P' > /proc/sys/fs/binfmt_misc/register
- fi
- if [ $cpu != "sh" ] ; then
-- echo ':sh4:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-sh4:' > /proc/sys/fs/binfmt_misc/register
-- echo ':sh4eb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sh4eb:' > /proc/sys/fs/binfmt_misc/register
-+ echo ':sh4:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-sh4-binfmt:P' > /proc/sys/fs/binfmt_misc/register
-+ echo ':sh4eb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sh4eb-binfmt:P' > /proc/sys/fs/binfmt_misc/register
- fi
- if [ $cpu != "s390x" ] ; then
-- echo ':s390x:M::\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-s390x:' > /proc/sys/fs/binfmt_misc/register
-+ echo ':s390x:M::\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-s390x-binfmt:P' > /proc/sys/fs/binfmt_misc/register
- fi
++++++ 0011-PPC-KVM-Disable-mmu-notifier-check.patch -> 0010-PPC-KVM-Disable-mmu-notifier-check.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0011-PPC-KVM-Disable-mmu-notifier-check.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0010-PPC-KVM-Disable-mmu-notifier-check.patch 2017-01-19 10:36:36.794330106 +0100
@@ -1,4 +1,4 @@
-From 312bb9ff5f1448e2aebcccc4f124cf8f7fa1e0a0 Mon Sep 17 00:00:00 2001
+From 9f443d183c7658812e0ffb147ae38cdb74ea94b7 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Fri, 6 Jan 2012 01:05:55 +0100
Subject: [PATCH] PPC: KVM: Disable mmu notifier check
@@ -13,10 +13,10 @@
1 file changed, 2 insertions(+)
diff --git a/exec.c b/exec.c
-index fc75266..a50e148 100644
+index 8ffde75..3ac8a82 100644
--- a/exec.c
+++ b/exec.c
-@@ -1242,11 +1242,13 @@ static void *file_ram_alloc(RAMBlock *block,
+@@ -1230,11 +1230,13 @@ static void *file_ram_alloc(RAMBlock *block,
int fd = -1;
int64_t page_size;
++++++ 0012-linux-user-fix-segfault-deadlock.patch -> 0011-linux-user-fix-segfault-deadlock.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0012-linux-user-fix-segfault-deadlock.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0011-linux-user-fix-segfault-deadlock.patch 2017-01-19 10:36:36.802328978 +0100
@@ -1,4 +1,4 @@
-From 48e23620ccc1efef237996fcc102215619a5ba7d Mon Sep 17 00:00:00 2001
+From 73678412d11f87834a901fe27d0d9882548be6ca Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Fri, 13 Jan 2012 17:05:41 +0100
Subject: [PATCH] linux-user: fix segfault deadlock
@@ -26,10 +26,10 @@
1 file changed, 4 insertions(+)
diff --git a/user-exec.c b/user-exec.c
-index d8d597b..f8b7752 100644
+index 95f9f97..eaeb0b4 100644
--- a/user-exec.c
+++ b/user-exec.c
-@@ -94,6 +94,10 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address,
+@@ -65,6 +65,10 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address,
printf("qemu: SIGSEGV pc=0x%08lx address=%08lx w=%d oldset=0x%08lx\n",
pc, address, is_write, *(unsigned long *)old_set);
#endif
@@ -38,5 +38,5 @@
+ tb_lock_reset();
+
/* XXX: locking issue */
- if (is_write && h2g_valid(address)
- && page_unprotect(h2g(address), pc, puc)) {
+ if (is_write && h2g_valid(address)) {
+ switch (page_unprotect(h2g(address), pc)) {
++++++ 0013-linux-user-binfmt-support-host-bina.patch -> 0012-linux-user-binfmt-support-host-bina.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0013-linux-user-binfmt-support-host-bina.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0012-linux-user-binfmt-support-host-bina.patch 2017-01-19 10:36:36.814327285 +0100
@@ -1,4 +1,4 @@
-From 7ada3e29b37a639129e36a7ed2f2f07a0efc3334 Mon Sep 17 00:00:00 2001
+From 25dd5db5e0e1745dab305155db0f739b00e2ec92 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Thu, 2 Feb 2012 18:02:33 +0100
Subject: [PATCH] linux-user: binfmt: support host binaries
++++++ 0015-linux-user-lock-tcg.patch -> 0013-linux-user-lock-tcg.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0015-linux-user-lock-tcg.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0013-linux-user-lock-tcg.patch 2017-01-19 10:36:36.838323901 +0100
@@ -1,4 +1,4 @@
-From 3c784b6969e0379542cf4661847effa17eacd27f Mon Sep 17 00:00:00 2001
+From 9d58ff5695952626bf3fb74d6fe9b5d666c43ce6 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Thu, 5 Jul 2012 17:31:39 +0200
Subject: [PATCH] linux-user: lock tcg
@@ -13,18 +13,19 @@
[AF: Rebased onto exec.c/translate-all.c split for 1.4]
[AF: Rebased for v2.1.0-rc0]
[AF: Rebased onto tcg_gen_code_common() drop for v2.5.0-rc0]
+[AF: Rebased for v2.7.0-rc2]
Signed-off-by: Andreas Färber
---
linux-user/mmap.c | 3 +++
- tcg/tcg.c | 31 ++++++++++++++++++++++++++++++-
+ tcg/tcg.c | 29 +++++++++++++++++++++++++++++
tcg/tcg.h | 6 ++++++
- 3 files changed, 39 insertions(+), 1 deletion(-)
+ 3 files changed, 38 insertions(+)
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
-index 671889b..b85905c 100644
+index 68a655e..d202e45 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
-@@ -23,6 +23,7 @@
+@@ -22,6 +22,7 @@
#include "qemu.h"
#include "qemu-common.h"
@@ -32,7 +33,7 @@
#include "translate-all.h"
//#define DEBUG_MMAP
-@@ -34,6 +35,7 @@ void mmap_lock(void)
+@@ -33,6 +34,7 @@ void mmap_lock(void)
{
if (mmap_lock_count++ == 0) {
pthread_mutex_lock(&mmap_mutex);
@@ -40,7 +41,7 @@
}
}
-@@ -41,6 +43,7 @@ void mmap_unlock(void)
+@@ -40,6 +42,7 @@ void mmap_unlock(void)
{
if (--mmap_lock_count == 0) {
pthread_mutex_unlock(&mmap_mutex);
@@ -49,10 +50,10 @@
}
diff --git a/tcg/tcg.c b/tcg/tcg.c
-index 796addd..8c511bf 100644
+index 42417bd..ef6ae10 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
-@@ -34,6 +34,8 @@
+@@ -33,6 +33,8 @@
#include "qemu/cutils.h"
#include "qemu/host-utils.h"
#include "qemu/timer.h"
@@ -61,7 +62,7 @@
/* Note: the long term plan is to reduce the dependencies on the QEMU
CPU definitions. Currently they are used for qemu_ld/st
-@@ -114,6 +116,29 @@ static bool tcg_out_tb_finalize(TCGContext *s);
+@@ -120,6 +122,29 @@ static bool tcg_out_tb_finalize(TCGContext *s);
static TCGRegSet tcg_target_available_regs[2];
static TCGRegSet tcg_target_call_clobber_regs;
@@ -91,17 +92,15 @@
#if TCG_TARGET_INSN_UNIT_SIZE == 1
static __attribute__((unused)) inline void tcg_out8(TCGContext *s, uint8_t v)
{
-@@ -326,7 +351,8 @@ void tcg_context_init(TCGContext *s)
+@@ -332,6 +357,7 @@ void tcg_context_init(TCGContext *s)
memset(s, 0, sizeof(*s));
s->nb_globals = 0;
--
+ qemu_mutex_init(&s->lock);
-+
+
/* Count total number of arguments and allocate the corresponding
space */
- total_args = 0;
-@@ -2353,6 +2379,7 @@ int tcg_gen_code(TCGContext *s, TranslationBlock *tb)
+@@ -2551,6 +2577,7 @@ int tcg_gen_code(TCGContext *s, TranslationBlock *tb)
qemu_log("\n");
}
#endif
@@ -109,7 +108,7 @@
#ifdef CONFIG_PROFILER
s->opt_time -= profile_getclock();
-@@ -2457,6 +2484,7 @@ int tcg_gen_code(TCGContext *s, TranslationBlock *tb)
+@@ -2673,6 +2700,7 @@ int tcg_gen_code(TCGContext *s, TranslationBlock *tb)
the buffer completely. Thus we can test for overflow after
generating code without having to check during generation. */
if (unlikely((void *)s->code_ptr > s->code_gen_highwater)) {
@@ -117,7 +116,7 @@
return -1;
}
}
-@@ -2470,6 +2498,7 @@ int tcg_gen_code(TCGContext *s, TranslationBlock *tb)
+@@ -2686,6 +2714,7 @@ int tcg_gen_code(TCGContext *s, TranslationBlock *tb)
/* flush instruction cache */
flush_icache_range((uintptr_t)s->code_buf, (uintptr_t)s->code_ptr);
@@ -126,18 +125,18 @@
return tcg_current_code_size(s);
}
diff --git a/tcg/tcg.h b/tcg/tcg.h
-index 40c8fbe..6b826af2 100644
+index 1bcabca..5c2522e 100644
--- a/tcg/tcg.h
+++ b/tcg/tcg.h
-@@ -27,6 +27,7 @@
-
- #include "qemu-common.h"
+@@ -29,6 +29,7 @@
+ #include "cpu.h"
+ #include "exec/tb-context.h"
#include "qemu/bitops.h"
+#include "qemu/thread.h"
#include "tcg-target.h"
- #define CPU_TEMP_BUF_NLONGS 128
-@@ -591,6 +592,8 @@ struct TCGContext {
+ /* XXX: make safe guess about sizes */
+@@ -697,6 +698,8 @@ struct TCGContext {
uint16_t gen_insn_end_off[TCG_MAX_INSNS];
target_ulong gen_insn_data[TCG_MAX_INSNS][TARGET_INSN_START_WORDS];
@@ -146,8 +145,8 @@
};
extern TCGContext tcg_ctx;
-@@ -798,6 +801,9 @@ void tcg_gen_callN(TCGContext *s, void *func,
- void tcg_op_remove(TCGContext *s, TCGOp *op);
+@@ -904,6 +907,9 @@ TCGOp *tcg_op_insert_after(TCGContext *s, TCGOp *op, TCGOpcode opc, int narg);
+
void tcg_optimize(TCGContext *s);
+extern void tcg_lock(void);
++++++ 0016-linux-user-Run-multi-threaded-code-.patch -> 0014-linux-user-Run-multi-threaded-code-.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0016-linux-user-Run-multi-threaded-code-.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0014-linux-user-Run-multi-threaded-code-.patch 2017-01-19 10:36:36.858321080 +0100
@@ -1,4 +1,4 @@
-From 0922a98683629c491b15b282d35cba46c225549f Mon Sep 17 00:00:00 2001
+From 394f7f1470c98525af7ac4aca52862837257e94a Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Tue, 10 Jul 2012 20:40:55 +0200
Subject: [PATCH] linux-user: Run multi-threaded code on a single core
@@ -19,10 +19,10 @@
1 file changed, 9 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index 758f747..b36273d 100644
+index 8e69c15..82195a2 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
-@@ -4704,6 +4704,15 @@ static int do_fork(CPUArchState *env, unsigned int flags, abi_ulong newsp,
+@@ -6010,6 +6010,15 @@ static int do_fork(CPUArchState *env, unsigned int flags, abi_ulong newsp,
if (nptl_flags & CLONE_SETTLS)
cpu_set_tls (new_env, newtls);
++++++ 0017-linux-user-lock-tb-flushing-too.patch -> 0015-linux-user-lock-tb-flushing-too.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0017-linux-user-lock-tb-flushing-too.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0015-linux-user-lock-tb-flushing-too.patch 2017-01-19 10:36:36.874318823 +0100
@@ -1,4 +1,4 @@
-From 598cc6f427821cbaf6b6a8eeadf90176ecf9b9d5 Mon Sep 17 00:00:00 2001
+From 0f2a2996a00880f39c8654797cd512013983d32a Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Wed, 11 Jul 2012 16:47:42 +0200
Subject: [PATCH] linux-user: lock tb flushing too
@@ -15,10 +15,10 @@
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/translate-all.c b/translate-all.c
-index 8329ea6..12a48c2 100644
+index 0dd6466..1e7c61b 100644
--- a/translate-all.c
+++ b/translate-all.c
-@@ -761,17 +761,21 @@ static TranslationBlock *tb_alloc(target_ulong pc)
+@@ -767,17 +767,21 @@ static TranslationBlock *tb_alloc(target_ulong pc)
{
TranslationBlock *tb;
@@ -40,7 +40,7 @@
/* In practice this is mostly used for single use temporary TB
Ignore the hard cases and just back up if this TB happens to
be the last one generated. */
-@@ -780,6 +784,7 @@ void tb_free(TranslationBlock *tb)
+@@ -786,6 +790,7 @@ void tb_free(TranslationBlock *tb)
tcg_ctx.code_gen_ptr = tb->tc_ptr;
tcg_ctx.tb_ctx.nb_tbs--;
}
@@ -48,7 +48,7 @@
}
static inline void invalidate_page_bitmap(PageDesc *p)
-@@ -833,6 +838,7 @@ void tb_flush(CPUState *cpu)
+@@ -844,6 +849,7 @@ void tb_flush(CPUState *cpu)
((unsigned long)(tcg_ctx.code_gen_ptr - tcg_ctx.code_gen_buffer)) /
tcg_ctx.tb_ctx.nb_tbs : 0);
#endif
@@ -56,7 +56,7 @@
if ((unsigned long)(tcg_ctx.code_gen_ptr - tcg_ctx.code_gen_buffer)
> tcg_ctx.code_gen_buffer_size) {
cpu_abort(cpu, "Internal error: code buffer overflow\n");
-@@ -850,6 +856,7 @@ void tb_flush(CPUState *cpu)
+@@ -862,6 +868,7 @@ void tb_flush(CPUState *cpu)
/* XXX: flush processor icache at this point if cache flush is
expensive */
tcg_ctx.tb_ctx.tb_flush_count++;
@@ -64,8 +64,8 @@
}
#ifdef DEBUG_TB_CHECK
-@@ -1208,8 +1215,10 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
- int current_flags = 0;
+@@ -1320,8 +1327,10 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
+ uint32_t current_flags = 0;
#endif /* TARGET_HAS_PRECISE_SMC */
+ tcg_lock();
@@ -75,15 +75,15 @@
return;
}
#if defined(TARGET_HAS_PRECISE_SMC)
-@@ -1294,6 +1303,7 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
- cpu_resume_from_signal(cpu, NULL);
+@@ -1392,6 +1401,7 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
+ cpu_loop_exit_noexc(cpu);
}
#endif
+ tcg_unlock();
}
- /* len must be <= 8 and start must be a multiple of len */
-@@ -1511,13 +1521,16 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
+ #ifdef CONFIG_SOFTMMU
+@@ -1509,13 +1519,16 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
{
int m_min, m_max, m;
uintptr_t v;
@@ -101,7 +101,7 @@
return NULL;
}
/* binary search (cf Knuth) */
-@@ -1528,6 +1541,7 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
+@@ -1526,6 +1539,7 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
tb = &tcg_ctx.tb_ctx.tbs[m];
v = (uintptr_t)tb->tc_ptr;
if (v == tc_ptr) {
@@ -109,7 +109,7 @@
return tb;
} else if (tc_ptr < v) {
m_max = m - 1;
-@@ -1535,7 +1549,9 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
+@@ -1533,7 +1547,9 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
m_min = m + 1;
}
}
++++++ 0018-linux-user-Fake-proc-cpuinfo.patch -> 0016-linux-user-Fake-proc-cpuinfo.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0018-linux-user-Fake-proc-cpuinfo.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0016-linux-user-Fake-proc-cpuinfo.patch 2017-01-19 10:36:36.914313182 +0100
@@ -1,4 +1,4 @@
-From 39ce1e900aba8b93e2296b3d4c613fd7af58f347 Mon Sep 17 00:00:00 2001
+From a5a2c846148a73ab5f060690a489ca6b14b6af4e Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Mon, 23 Jul 2012 10:24:14 +0200
Subject: [PATCH] linux-user: Fake /proc/cpuinfo
@@ -22,10 +22,10 @@
1 file changed, 20 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index b36273d..7476689 100644
+index 82195a2..4020ceb 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
-@@ -5697,6 +5697,25 @@ static int open_self_stat(void *cpu_env, int fd)
+@@ -7142,6 +7142,25 @@ static int open_self_stat(void *cpu_env, int fd)
return 0;
}
@@ -51,7 +51,7 @@
static int open_self_auxv(void *cpu_env, int fd)
{
CPUState *cpu = ENV_GET_CPU((CPUArchState *)cpu_env);
-@@ -5811,6 +5830,7 @@ static int do_openat(void *cpu_env, int dirfd, const char *pathname, int flags,
+@@ -7256,6 +7275,7 @@ static int do_openat(void *cpu_env, int dirfd, const char *pathname, int flags,
#if defined(HOST_WORDS_BIGENDIAN) != defined(TARGET_WORDS_BIGENDIAN)
{ "/proc/net/route", open_net_route, is_proc },
#endif
++++++ 0019-linux-user-implement-FS_IOC_GETFLAG.patch -> 0017-linux-user-implement-FS_IOC_GETFLAG.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0019-linux-user-implement-FS_IOC_GETFLAG.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0017-linux-user-implement-FS_IOC_GETFLAG.patch 2017-01-19 10:36:36.926311490 +0100
@@ -1,4 +1,4 @@
-From 2783b7f3c20040aaa53b59a9a716364f04562126 Mon Sep 17 00:00:00 2001
+From d6a5cfe7d374b8ca661a8f957139689348b26bd6 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Mon, 20 Aug 2012 00:02:52 +0200
Subject: [PATCH] linux-user: implement FS_IOC_GETFLAGS ioctl
@@ -16,22 +16,22 @@
2 files changed, 3 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
-index c180faf..8650a70 100644
+index cf8851d..f858954 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
-@@ -90,6 +90,7 @@
+@@ -119,6 +119,7 @@
IOCTL_SPECIAL(FS_IOC_FIEMAP, IOC_W | IOC_R, do_ioctl_fs_ioc_fiemap,
MK_PTR(MK_STRUCT(STRUCT_fiemap)))
#endif
+ IOCTL(FS_IOC_GETFLAGS, IOC_R, MK_PTR(TYPE_LONG))
- IOCTL(SIOCATMARK, 0, TYPE_NULL)
+ IOCTL(SIOCATMARK, IOC_R, MK_PTR(TYPE_INT))
IOCTL(SIOCGIFNAME, IOC_RW, MK_PTR(TYPE_INT))
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
-index f820b0b..5152e89 100644
+index b869b3d..00a3f30 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
-@@ -2457,6 +2457,8 @@ struct target_f_owner_ex {
+@@ -2502,6 +2502,8 @@ struct target_f_owner_ex {
#define TARGET_MTIOCGET TARGET_IOR('m', 2, struct mtget)
#define TARGET_MTIOCPOS TARGET_IOR('m', 3, struct mtpos)
++++++ 0020-linux-user-implement-FS_IOC_SETFLAG.patch -> 0018-linux-user-implement-FS_IOC_SETFLAG.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0020-linux-user-implement-FS_IOC_SETFLAG.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0018-linux-user-implement-FS_IOC_SETFLAG.patch 2017-01-19 10:36:36.938309798 +0100
@@ -1,4 +1,4 @@
-From fe937a73ac633b34380ac53c9057a0664c3b77cc Mon Sep 17 00:00:00 2001
+From 4d8d32bbd31dc799c1befebef2563db1fbd5949c Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Mon, 20 Aug 2012 00:07:13 +0200
Subject: [PATCH] linux-user: implement FS_IOC_SETFLAGS ioctl
@@ -16,22 +16,22 @@
2 files changed, 2 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
-index 8650a70..f9f7c83 100644
+index f858954..8a5be00 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
-@@ -91,6 +91,7 @@
+@@ -120,6 +120,7 @@
MK_PTR(MK_STRUCT(STRUCT_fiemap)))
#endif
IOCTL(FS_IOC_GETFLAGS, IOC_R, MK_PTR(TYPE_LONG))
+ IOCTL(FS_IOC_SETFLAGS, IOC_W, MK_PTR(TYPE_LONG))
- IOCTL(SIOCATMARK, 0, TYPE_NULL)
+ IOCTL(SIOCATMARK, IOC_R, MK_PTR(TYPE_INT))
IOCTL(SIOCGIFNAME, IOC_RW, MK_PTR(TYPE_INT))
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
-index 5152e89..77be181 100644
+index 00a3f30..d31541d 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
-@@ -2458,6 +2458,7 @@ struct target_f_owner_ex {
+@@ -2503,6 +2503,7 @@ struct target_f_owner_ex {
#define TARGET_MTIOCPOS TARGET_IOR('m', 3, struct mtpos)
#define TARGET_FS_IOC_GETFLAGS TARGET_IORU('f', 1)
++++++ 0021-linux-user-XXX-disable-fiemap.patch -> 0019-linux-user-XXX-disable-fiemap.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0021-linux-user-XXX-disable-fiemap.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0019-linux-user-XXX-disable-fiemap.patch 2017-01-19 10:36:36.950308106 +0100
@@ -1,4 +1,4 @@
-From 11b56fbe40bf880945a0563044b58b03d9d0baa7 Mon Sep 17 00:00:00 2001
+From dbab3749b22bb80f92af3b7ce5892fe2b4199323 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Tue, 21 Aug 2012 14:20:40 +0200
Subject: [PATCH] linux-user: XXX disable fiemap
@@ -9,10 +9,10 @@
1 file changed, 5 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index 7476689..7b72784 100644
+index 4020ceb..483efb0 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
-@@ -3494,6 +3494,11 @@ static abi_long do_ioctl_fs_ioc_fiemap(const IOCTLEntry *ie, uint8_t *buf_temp,
+@@ -4806,6 +4806,11 @@ static abi_long do_ioctl_fs_ioc_fiemap(const IOCTLEntry *ie, uint8_t *buf_temp,
uint32_t outbufsz;
int free_fm = 0;
++++++ 0022-slirp-nooutgoing.patch -> 0020-slirp-nooutgoing.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0022-slirp-nooutgoing.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0020-slirp-nooutgoing.patch 2017-01-19 10:36:36.962306413 +0100
@@ -1,4 +1,4 @@
-From bd75d0195aef3af7392ce38952e018936da303ff Mon Sep 17 00:00:00 2001
+From 4f307877293d621bafe78abeca74db6b949b996d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?=
Date: Wed, 29 Aug 2012 18:42:56 +0200
Subject: [PATCH] slirp: -nooutgoing
@@ -12,10 +12,10 @@
4 files changed, 39 insertions(+)
diff --git a/qemu-options.hx b/qemu-options.hx
-index 6106520..32b25a5 100644
+index a71aaf8..7f32069 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
-@@ -3102,6 +3102,16 @@ Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
+@@ -3132,6 +3132,16 @@ Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
from a script.
ETEXI
@@ -33,7 +33,7 @@
"-singlestep always run in singlestep mode\n", QEMU_ARCH_ALL)
STEXI
diff --git a/slirp/socket.c b/slirp/socket.c
-index b336586..8e5bdc3 100644
+index 280050a..4fe68bb 100644
--- a/slirp/socket.c
+++ b/slirp/socket.c
@@ -608,6 +608,8 @@ sorecvfrom(struct socket *so)
@@ -59,7 +59,7 @@
ret = sendto(so->s, m->m_data, m->m_len, 0,
(struct sockaddr *)&addr, sockaddr_size(&addr));
diff --git a/slirp/tcp_subr.c b/slirp/tcp_subr.c
-index 6b9fef2..e712e21 100644
+index ed16e18..b2c7a8c 100644
--- a/slirp/tcp_subr.c
+++ b/slirp/tcp_subr.c
@@ -391,6 +391,8 @@ tcp_sockclosed(struct tcpcb *tp)
@@ -96,10 +96,10 @@
socket_set_fast_reuse(s);
opt = 1;
diff --git a/vl.c b/vl.c
-index 5db5dc2..c082789 100644
+index b3c80d5..1b8e591 100644
--- a/vl.c
+++ b/vl.c
-@@ -162,6 +162,7 @@ int smp_threads = 1;
+@@ -160,6 +160,7 @@ int smp_threads = 1;
int acpi_enabled = 1;
int no_hpet = 0;
int fd_bootchk = 1;
@@ -107,7 +107,7 @@
static int no_reboot;
int no_shutdown = 0;
int cursor_hide = 1;
-@@ -3386,6 +3387,14 @@ int main(int argc, char **argv, char **envp)
+@@ -3363,6 +3364,14 @@ int main(int argc, char **argv, char **envp)
case QEMU_OPTION_singlestep:
singlestep = 1;
break;
++++++ 0023-vnc-password-file-and-incoming-conn.patch -> 0021-vnc-password-file-and-incoming-conn.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0023-vnc-password-file-and-incoming-conn.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0021-vnc-password-file-and-incoming-conn.patch 2017-01-19 10:36:36.978304157 +0100
@@ -1,4 +1,4 @@
-From aa0933c1b541cc1b7efae51d7a0cc3978e127c86 Mon Sep 17 00:00:00 2001
+From 5f1f3f07690386a731ecc7bea74c72ab9cb7d253 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?=
Date: Wed, 29 Aug 2012 20:06:01 +0200
Subject: [PATCH] vnc: password-file= and incoming-connections=
@@ -9,7 +9,7 @@
1 file changed, 55 insertions(+)
diff --git a/ui/vnc.c b/ui/vnc.c
-index 3e89dad..e7946ba 100644
+index d1087c9..7f91d96 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -58,6 +58,8 @@ static const struct timeval VNC_REFRESH_LOSSY = { 2, 0 };
@@ -21,7 +21,7 @@
static int vnc_cursor_define(VncState *vs);
static void vnc_release_modifiers(VncState *vs);
-@@ -1185,6 +1187,7 @@ static void vnc_disconnect_start(VncState *vs)
+@@ -1197,6 +1199,7 @@ static void vnc_disconnect_start(VncState *vs)
void vnc_disconnect_finish(VncState *vs)
{
int i;
@@ -29,7 +29,7 @@
vnc_jobs_join(vs); /* Wait encoding jobs */
-@@ -1235,6 +1238,13 @@ void vnc_disconnect_finish(VncState *vs)
+@@ -1247,6 +1250,13 @@ void vnc_disconnect_finish(VncState *vs)
object_unref(OBJECT(vs->sioc));
vs->sioc = NULL;
g_free(vs);
@@ -43,8 +43,8 @@
}
ssize_t vnc_client_io_error(VncState *vs, ssize_t ret, Error **errp)
-@@ -3200,6 +3210,39 @@ char *vnc_display_local_addr(const char *id)
- return ret;
+@@ -3245,6 +3255,39 @@ static void vnc_display_print_local_addr(VncDisplay *vs)
+ qapi_free_SocketAddress(addr);
}
+static void read_file_password(const char *id, const char *filename)
@@ -83,7 +83,7 @@
static QemuOptsList qemu_vnc_opts = {
.name = "vnc",
.head = QTAILQ_HEAD_INITIALIZER(qemu_vnc_opts.head),
-@@ -3231,6 +3274,9 @@ static QemuOptsList qemu_vnc_opts = {
+@@ -3276,6 +3319,9 @@ static QemuOptsList qemu_vnc_opts = {
.name = "connections",
.type = QEMU_OPT_NUMBER,
},{
@@ -93,7 +93,7 @@
.name = "to",
.type = QEMU_OPT_NUMBER,
},{
-@@ -3243,6 +3289,9 @@ static QemuOptsList qemu_vnc_opts = {
+@@ -3288,6 +3334,9 @@ static QemuOptsList qemu_vnc_opts = {
.name = "password",
.type = QEMU_OPT_BOOL,
},{
@@ -103,7 +103,7 @@
.name = "reverse",
.type = QEMU_OPT_BOOL,
},{
-@@ -3476,6 +3525,7 @@ void vnc_display_open(const char *id, Error **errp)
+@@ -3524,6 +3573,7 @@ void vnc_display_open(const char *id, Error **errp)
const char *share, *device_id;
QemuConsole *con;
bool password = false;
@@ -111,7 +111,7 @@
bool reverse = false;
const char *vnc;
char *h;
-@@ -3601,6 +3651,10 @@ void vnc_display_open(const char *id, Error **errp)
+@@ -3652,6 +3702,10 @@ void vnc_display_open(const char *id, Error **errp)
goto fail;
}
}
@@ -122,7 +122,7 @@
reverse = qemu_opt_get_bool(opts, "reverse", false);
lock_key_sync = qemu_opt_get_bool(opts, "lock-key-sync", true);
-@@ -3689,6 +3743,7 @@ void vnc_display_open(const char *id, Error **errp)
+@@ -3741,6 +3795,7 @@ void vnc_display_open(const char *id, Error **errp)
vs->share_policy = VNC_SHARE_POLICY_ALLOW_EXCLUSIVE;
}
vs->connections_limit = qemu_opt_get_number(opts, "connections", 32);
++++++ 0025-linux-user-use-target_ulong.patch -> 0022-linux-user-use-target_ulong.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0025-linux-user-use-target_ulong.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0022-linux-user-use-target_ulong.patch 2017-01-19 10:36:36.986303028 +0100
@@ -1,4 +1,4 @@
-From 232612b32aa306574282a98dafdef5772c99ea24 Mon Sep 17 00:00:00 2001
+From d84e1f7cb131ca5de1308db7b6682edeab2bfeee Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Tue, 9 Oct 2012 09:06:49 +0200
Subject: [PATCH] linux-user: use target_ulong
@@ -17,10 +17,10 @@
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
-index 26b0ba2..b9a7123 100644
+index bef465d..dab3b6a 100644
--- a/linux-user/qemu.h
+++ b/linux-user/qemu.h
-@@ -176,10 +176,10 @@ abi_long memcpy_to_target(abi_ulong dest, const void *src,
+@@ -193,10 +193,10 @@ abi_long memcpy_to_target(abi_ulong dest, const void *src,
void target_set_brk(abi_ulong new_brk);
abi_long do_brk(abi_ulong new_brk);
void syscall_init(void);
@@ -36,10 +36,10 @@
extern THREAD CPUState *thread_cpu;
void cpu_loop(CPUArchState *env);
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index 7b72784..ebeab57 100644
+index 483efb0..8ac1281 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
-@@ -5902,10 +5902,10 @@ static target_timer_t get_timer_id(abi_long arg)
+@@ -7349,10 +7349,10 @@ static target_timer_t get_timer_id(abi_long arg)
/* do_syscall() should always have a single exit point at the end so
that actions, such as logging of syscall results, can be performed.
All errnos that do_syscall() returns must be -TARGET_<errcode>. */
++++++ 0026-block-Add-support-for-DictZip-enabl.patch -> 0023-block-Add-support-for-DictZip-enabl.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0026-block-Add-support-for-DictZip-enabl.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0023-block-Add-support-for-DictZip-enabl.patch 2017-01-19 10:36:37.038295695 +0100
@@ -1,4 +1,4 @@
-From 171c8acfae279756c43f0265e1cfc7d984ab5464 Mon Sep 17 00:00:00 2001
+From 975ac1298231bb8ec825d4f1e48638ef13bdc62e Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Wed, 5 Aug 2009 09:49:37 +0200
Subject: [PATCH] block: Add support for DictZip enabled gzip files
@@ -37,6 +37,9 @@
[AF: Drop bdrv_open() drv parameter for 2.5]
Signed-off-by: Andreas Färber
Signed-off-by: Bruce Rogers
+[AF: Drop bdrv_open() bs parameter and change return value for v2.7.0-rc2,
+ for bdrv_pread() and bdrv_aio_readv() do s/s->hd/s->hd->file/]
+Signed-off-by: Andreas Färber
---
block/Makefile.objs | 1 +
block/dictzip.c | 580 ++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -44,7 +47,7 @@
create mode 100644 block/dictzip.c
diff --git a/block/Makefile.objs b/block/Makefile.objs
-index 44a5416..12e0cca 100644
+index 2593a2f..f3f6f5f 100644
--- a/block/Makefile.objs
+++ b/block/Makefile.objs
@@ -21,6 +21,7 @@ block-obj-$(CONFIG_GLUSTERFS) += gluster.o
@@ -57,7 +60,7 @@
block-obj-y += crypto.o
diff --git a/block/dictzip.c b/block/dictzip.c
new file mode 100644
-index 0000000..717a7d3
+index 0000000..4b7e2db
--- /dev/null
+++ b/block/dictzip.c
@@ -0,0 +1,580 @@
@@ -246,9 +249,9 @@
+ else if (!strncmp(filename, "dzip:", 5))
+ filename += 5;
+
-+ ret = bdrv_open(&s->hd, filename, NULL, NULL, flags | BDRV_O_PROTOCOL, &local_err);
-+ if (ret < 0) {
-+ error_propagate(errp, local_err);
++ s->hd = bdrv_open(filename, NULL, NULL, flags | BDRV_O_PROTOCOL, errp);
++ if (!s->hd) {
++ ret = -EINVAL;
+ qemu_opts_del(opts);
+ return ret;
+ }
@@ -262,7 +265,7 @@
+ }
+
+ /* gzip header */
-+ if (bdrv_pread(s->hd, GZ_ID, &magic, sizeof(magic)) != sizeof(magic))
++ if (bdrv_pread(s->hd->file, GZ_ID, &magic, sizeof(magic)) != sizeof(magic))
+ goto fail;
+
+ if (!((magic[0] == GZ_MAGIC1) && (magic[1] == GZ_MAGIC2))) {
@@ -271,7 +274,7 @@
+ }
+
+ /* dzip header */
-+ if (bdrv_pread(s->hd, GZ_FLG, &header_flags, 1) != 1)
++ if (bdrv_pread(s->hd->file, GZ_FLG, &header_flags, 1) != 1)
+ goto fail;
+
+ if (!(header_flags & GZ_FEXTRA)) {
@@ -280,13 +283,13 @@
+ }
+
+ /* extra length */
-+ if (bdrv_pread(s->hd, GZ_XLEN, &tmp_short, 2) != 2)
++ if (bdrv_pread(s->hd->file, GZ_XLEN, &tmp_short, 2) != 2)
+ goto fail;
+
+ headerLength += le16_to_cpu(tmp_short) + 2;
+
+ /* DictZip magic */
-+ if (bdrv_pread(s->hd, GZ_SI, &magic, 2) != 2)
++ if (bdrv_pread(s->hd->file, GZ_SI, &magic, 2) != 2)
+ goto fail;
+
+ if (magic[0] != DZ_MAGIC1 || magic[1] != DZ_MAGIC2) {
@@ -295,7 +298,7 @@
+ }
+
+ /* DictZip version */
-+ if (bdrv_pread(s->hd, GZ_VERSION, &header_ver, 2) != 2)
++ if (bdrv_pread(s->hd->file, GZ_VERSION, &header_ver, 2) != 2)
+ goto fail;
+
+ header_ver = le16_to_cpu(header_ver);
@@ -303,13 +306,13 @@
+ switch (header_ver) {
+ case 1: /* Normal DictZip */
+ /* number of chunks */
-+ if (bdrv_pread(s->hd, GZ_CHUNKSIZE, &chunk_len16, 2) != 2)
++ if (bdrv_pread(s->hd->file, GZ_CHUNKSIZE, &chunk_len16, 2) != 2)
+ goto fail;
+
+ s->chunk_len = le16_to_cpu(chunk_len16);
+
+ /* chunk count */
-+ if (bdrv_pread(s->hd, GZ_CHUNKCNT, &chunk_cnt16, 2) != 2)
++ if (bdrv_pread(s->hd->file, GZ_CHUNKCNT, &chunk_cnt16, 2) != 2)
+ goto fail;
+
+ s->chunk_cnt = le16_to_cpu(chunk_cnt16);
@@ -318,14 +321,14 @@
+ break;
+ case 99: /* Special Alex pigz version */
+ /* number of chunks */
-+ if (bdrv_pread(s->hd, GZ_99_CHUNKSIZE, &s->chunk_len, 4) != 4)
++ if (bdrv_pread(s->hd->file, GZ_99_CHUNKSIZE, &s->chunk_len, 4) != 4)
+ goto fail;
+
+ dprintf("chunk len [%#x] = %d\n", GZ_99_CHUNKSIZE, s->chunk_len);
+ s->chunk_len = le32_to_cpu(s->chunk_len);
+
+ /* chunk count */
-+ if (bdrv_pread(s->hd, GZ_99_CHUNKCNT, &s->chunk_cnt, 4) != 4)
++ if (bdrv_pread(s->hd->file, GZ_99_CHUNKCNT, &s->chunk_cnt, 4) != 4)
+ goto fail;
+
+ s->chunk_cnt = le32_to_cpu(s->chunk_cnt);
@@ -333,7 +336,7 @@
+ dprintf("chunk len | count = %d | %d\n", s->chunk_len, s->chunk_cnt);
+
+ /* file size */
-+ if (bdrv_pread(s->hd, GZ_99_FILESIZE, &s->file_len, 8) != 8)
++ if (bdrv_pread(s->hd->file, GZ_99_FILESIZE, &s->file_len, 8) != 8)
+ goto fail;
+
+ s->file_len = le64_to_cpu(s->file_len);
@@ -350,12 +353,12 @@
+ if (header_ver == 99)
+ s->chunks32 = (uint32_t *)s->chunks;
+
-+ if (bdrv_pread(s->hd, rnd_offs, s->chunks, chunks_len) != chunks_len)
++ if (bdrv_pread(s->hd->file, rnd_offs, s->chunks, chunks_len) != chunks_len)
+ goto fail;
+
+ /* orig filename */
+ if (header_flags & GZ_FNAME) {
-+ if (bdrv_pread(s->hd, headerLength + 1, buf, sizeof(buf)) != sizeof(buf))
++ if (bdrv_pread(s->hd->file, headerLength + 1, buf, sizeof(buf)) != sizeof(buf))
+ goto fail;
+
+ buf[sizeof(buf) - 1] = '\0';
@@ -369,7 +372,7 @@
+
+ /* comment field */
+ if (header_flags & GZ_COMMENT) {
-+ if (bdrv_pread(s->hd, headerLength, buf, sizeof(buf)) != sizeof(buf))
++ if (bdrv_pread(s->hd->file, headerLength, buf, sizeof(buf)) != sizeof(buf))
+ goto fail;
+
+ buf[sizeof(buf) - 1] = '\0';
@@ -388,7 +391,7 @@
+ if (!s->file_len) {
+ uint32_t file_len;
+
-+ if (bdrv_pread(s->hd, bdrv_getlength(s->hd) - 4, &file_len, 4) != 4)
++ if (bdrv_pread(s->hd->file, bdrv_getlength(s->hd) - 4, &file_len, 4) != 4)
+ goto fail;
+
+ s->file_len = le32_to_cpu(file_len);
@@ -587,7 +590,7 @@
+ acb->offset = first_offset;
+ acb->chunks_len = (last_chunk - first_chunk + 1) * s->chunk_len;
+
-+ return bdrv_aio_readv(s->hd, gz_sector_num, qiov_gz, gz_nb_sectors,
++ return bdrv_aio_readv(s->hd->file, gz_sector_num, qiov_gz, gz_nb_sectors,
+ dictzip_read_cb, acb);
+}
+
++++++ 0027-block-Add-tar-container-format.patch -> 0024-block-Add-tar-container-format.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0027-block-Add-tar-container-format.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0024-block-Add-tar-container-format.patch 2017-01-19 10:36:37.054293439 +0100
@@ -1,4 +1,4 @@
-From e05a6cfd83e972bf46ca8e8ce7a00d83c882e2d8 Mon Sep 17 00:00:00 2001
+From 7c81e618f5817533392440d8174d8d467886c61f Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Wed, 5 Aug 2009 17:28:38 +0200
Subject: [PATCH] block: Add tar container format
@@ -38,6 +38,9 @@
[AF: Drop bdrv_open() drv parameter for 2.5]
Signed-off-by: Andreas Färber
Signed-off-by: Bruce Rogers
+[AF: Changed bdrv_open() bs parameter and return value for v2.7.0-rc2,
+ for bdrv_pread() and bdrv_aio_readv() s/s->hd/s->hd->file/]
+Signed-off-by: Andreas Färber
---
block/Makefile.objs | 1 +
block/tar.c | 370 ++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -45,7 +48,7 @@
create mode 100644 block/tar.c
diff --git a/block/Makefile.objs b/block/Makefile.objs
-index 12e0cca..34a6fba 100644
+index f3f6f5f..f049d53 100644
--- a/block/Makefile.objs
+++ b/block/Makefile.objs
@@ -22,6 +22,7 @@ block-obj-$(CONFIG_ARCHIPELAGO) += archipelago.o
@@ -58,7 +61,7 @@
block-obj-y += crypto.o
diff --git a/block/tar.c b/block/tar.c
new file mode 100644
-index 0000000..31da8b9
+index 0000000..508265e
--- /dev/null
+++ b/block/tar.c
@@ -0,0 +1,370 @@
@@ -245,9 +248,9 @@
+ else if (!strncmp(filename, "tar:", 4))
+ filename += 4;
+
-+ ret = bdrv_open(&s->hd, filename, NULL, NULL, flags | BDRV_O_PROTOCOL, &local_err);
-+ if (ret < 0) {
-+ error_propagate(errp, local_err);
++ s->hd = bdrv_open(filename, NULL, NULL, flags | BDRV_O_PROTOCOL, errp);
++ if (!s->hd) {
++ ret = -EINVAL;
+ qemu_opts_del(opts);
+ return ret;
+ }
@@ -256,7 +259,7 @@
+
+ do {
+ /* tar header */
-+ if (bdrv_pread(s->hd, header_offs, header, SECTOR_SIZE) != SECTOR_SIZE)
++ if (bdrv_pread(s->hd->file, header_offs, header, SECTOR_SIZE) != SECTOR_SIZE)
+ goto fail;
+
+ if ((header_offs > 1) && !header[0]) {
@@ -280,7 +283,7 @@
+ header_offs += s->file_len + SECTOR_SIZE;
+
+ if (header[OFFS_TYPE] == 'L') {
-+ bdrv_pread(s->hd, header_offs - s->file_len, s->longfile,
++ bdrv_pread(s->hd->file, header_offs - s->file_len, s->longfile,
+ sizeof(s->longfile));
+ s->longfile[sizeof(s->longfile)-1] = '\0';
+ } else if (s->longfile[0]) {
@@ -303,7 +306,7 @@
+ isextended = header[OFFS_S_EXT];
+
+ while (isextended) {
-+ if (bdrv_pread(s->hd, s->file_sec * SECTOR_SIZE, header,
++ if (bdrv_pread(s->hd->file, s->file_sec * SECTOR_SIZE, header,
+ SECTOR_SIZE) != SECTOR_SIZE)
+ goto fail;
+
@@ -385,7 +388,7 @@
+
+ for (offs = 0; offs < (nb_sectors * SECTOR_SIZE);
+ offs += SECTOR_SIZE) {
-+ bdrv_pread(bs, (sector_num * SECTOR_SIZE) + offs,
++ bdrv_pread(bs->file, (sector_num * SECTOR_SIZE) + offs,
+ buf + offs, SECTOR_SIZE);
+ }
+
@@ -398,7 +401,7 @@
+ }
+ }
+
-+ return bdrv_aio_readv(s->hd, sec_file, qiov, nb_sectors,
++ return bdrv_aio_readv(s->hd->file, sec_file, qiov, nb_sectors,
+ cb, opaque);
+}
+
++++++ 0028-Legacy-Patch-kvm-qemu-preXX-dictzip.patch -> 0025-Legacy-Patch-kvm-qemu-preXX-dictzip.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0028-Legacy-Patch-kvm-qemu-preXX-dictzip.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0025-Legacy-Patch-kvm-qemu-preXX-dictzip.patch 2017-01-19 10:36:37.082289490 +0100
@@ -1,4 +1,4 @@
-From e04e97093af3fc593a7db57be40e7334f9776330 Mon Sep 17 00:00:00 2001
+From 674ccdfa8c935b192e553fe5a53607d6f5eb1f43 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Wed, 12 Dec 2012 19:11:30 +0100
Subject: [PATCH] Legacy Patch kvm-qemu-preXX-dictzip3.patch
@@ -8,7 +8,7 @@
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/block/tar.c b/block/tar.c
-index 31da8b9..41620fd 100644
+index 508265e..734082a 100644
--- a/block/tar.c
+++ b/block/tar.c
@@ -73,7 +73,8 @@ static int str_ends(char *str, const char *end)
@@ -40,7 +40,7 @@
}
@@ -219,12 +227,13 @@ static int tar_open(BlockDriverState *bs, QDict *options, int flags, Error **err
- bdrv_pread(s->hd, header_offs - s->file_len, s->longfile,
+ bdrv_pread(s->hd->file, header_offs - s->file_len, s->longfile,
sizeof(s->longfile));
s->longfile[sizeof(s->longfile)-1] = '\0';
+ real_file = header;
++++++ 0029-console-add-question-mark-escape-op.patch -> 0026-console-add-question-mark-escape-op.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0029-console-add-question-mark-escape-op.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0026-console-add-question-mark-escape-op.patch 2017-01-19 10:36:37.110285541 +0100
@@ -1,4 +1,4 @@
-From 36f007f4de748aff064604637383a23cbebe813e Mon Sep 17 00:00:00 2001
+From b00ff88b97ba2ce476534674632e7b5500dbb890 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Mon, 6 Jun 2011 06:53:52 +0200
Subject: [PATCH] console: add question-mark escape operator
@@ -16,7 +16,7 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ui/console.c b/ui/console.c
-index bf38579..0c1b4a3 100644
+index c24bfe4..44b46fd 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -868,7 +868,7 @@ static void console_putchar(QemuConsole *s, int ch)
++++++ 0030-Make-char-muxer-more-robust-wrt-sma.patch -> 0027-Make-char-muxer-more-robust-wrt-sma.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0030-Make-char-muxer-more-robust-wrt-sma.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0027-Make-char-muxer-more-robust-wrt-sma.patch 2017-01-19 10:36:37.118284412 +0100
@@ -1,4 +1,4 @@
-From f745251506bedd96fb153b838dbf8a399eb8e275 Mon Sep 17 00:00:00 2001
+From a6a54eb0ce3cec68f80f72a957bf6e2189118b5e Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Thu, 1 Apr 2010 17:36:23 +0200
Subject: [PATCH] Make char muxer more robust wrt small FIFOs
@@ -17,15 +17,17 @@
it polls again after a while to check if the guest is now receiving input.
This patch fixes input when using -nographic on s390 for me.
+
+[AF: Rebased for v2.7.0-rc2]
---
qemu-char.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/qemu-char.c b/qemu-char.c
-index b597ee1..eedae4f 100644
+index 5f82ebb..be8396b 100644
--- a/qemu-char.c
+++ b/qemu-char.c
-@@ -512,6 +512,9 @@ typedef struct {
+@@ -510,6 +510,9 @@ typedef struct {
IOEventHandler *chr_event[MAX_MUX];
void *ext_opaque[MAX_MUX];
CharDriverState *drv;
@@ -35,7 +37,7 @@
int focus;
int mux_cnt;
int term_got_escape;
-@@ -671,6 +674,15 @@ static void mux_chr_accept_input(CharDriverState *chr)
+@@ -669,6 +672,15 @@ static void mux_chr_accept_input(CharDriverState *chr)
d->chr_read[m](d->ext_opaque[m],
&d->buffer[m][d->cons[m]++ & MUX_BUFFER_MASK], 1);
}
@@ -51,7 +53,7 @@
}
static int mux_chr_can_read(void *opaque)
-@@ -812,6 +824,10 @@ static CharDriverState *qemu_chr_open_mux(const char *id,
+@@ -817,6 +829,10 @@ static CharDriverState *qemu_chr_open_mux(const char *id,
chr->opaque = d;
d->drv = drv;
d->focus = -1;
@@ -59,6 +61,6 @@
+ d->accept_timer = qemu_new_timer_ns(vm_clock,
+ (QEMUTimerCB*)mux_chr_accept_input, chr);
+#endif
+ chr->chr_close = mux_chr_close;
chr->chr_write = mux_chr_write;
chr->chr_update_read_handler = mux_chr_update_read_handler;
- chr->chr_accept_input = mux_chr_accept_input;
++++++ 0031-linux-user-lseek-explicitly-cast-no.patch -> 0028-linux-user-lseek-explicitly-cast-no.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0031-linux-user-lseek-explicitly-cast-no.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0028-linux-user-lseek-explicitly-cast-no.patch 2017-01-19 10:36:37.130282720 +0100
@@ -1,4 +1,4 @@
-From e7c736a9bfa10f1acb5e6b02c73fd8662d5c6a6c Mon Sep 17 00:00:00 2001
+From fd4fc533fbd24b003f606d12bd114ff9ba215380 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Thu, 13 Dec 2012 14:29:22 +0100
Subject: [PATCH] linux-user: lseek: explicitly cast non-set offsets to signed
@@ -16,10 +16,10 @@
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index ebeab57..c084f38 100644
+index 8ac1281..51c1091 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
-@@ -6233,9 +6233,14 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,
+@@ -7710,9 +7710,14 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,
case TARGET_NR_oldstat:
goto unimplemented;
#endif
++++++ 0032-virtfs-proxy-helper-Provide-__u64-f.patch -> 0029-virtfs-proxy-helper-Provide-__u64-f.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0032-virtfs-proxy-helper-Provide-__u64-f.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0029-virtfs-proxy-helper-Provide-__u64-f.patch 2017-01-19 10:36:37.150279899 +0100
@@ -1,4 +1,4 @@
-From 96ff92eb1a6402f0b90e4394990eda7f5e457d13 Mon Sep 17 00:00:00 2001
+From 0e73e519a0d99d8fd366f024d768a349fc32e3f6 Mon Sep 17 00:00:00 2001
From: Bruce Rogers
Date: Thu, 16 May 2013 12:39:10 +0200
Subject: [PATCH] virtfs-proxy-helper: Provide __u64 for broken
++++++ 0033-configure-Enable-PIE-for-ppc-and-pp.patch -> 0030-configure-Enable-PIE-for-ppc-and-pp.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0033-configure-Enable-PIE-for-ppc-and-pp.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0030-configure-Enable-PIE-for-ppc-and-pp.patch 2017-01-19 10:36:37.162278207 +0100
@@ -1,4 +1,4 @@
-From 2181064a8a8f7a22285ae767affb23dc684d7d10 Mon Sep 17 00:00:00 2001
+From 42032776551d183f971e0523b0216f9880a88413 Mon Sep 17 00:00:00 2001
From: Dinar Valeev
Date: Wed, 2 Oct 2013 17:56:03 +0200
Subject: [PATCH] configure: Enable PIE for ppc and ppc64 hosts
@@ -14,10 +14,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure b/configure
-index 60e3c0d..65232af 100755
+index 4b808f9..b882d19 100755
--- a/configure
+++ b/configure
-@@ -1537,7 +1537,7 @@ fi
+@@ -1545,7 +1545,7 @@ fi
if test "$pie" = ""; then
case "$cpu-$targetos" in
++++++ 0035-AIO-Reduce-number-of-threads-for-32.patch -> 0031-AIO-Reduce-number-of-threads-for-32.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0035-AIO-Reduce-number-of-threads-for-32.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0031-AIO-Reduce-number-of-threads-for-32.patch 2017-01-19 10:36:37.182275387 +0100
@@ -1,4 +1,4 @@
-From e69780e5f390f491fae554f1a0b0649c9187869e Mon Sep 17 00:00:00 2001
+From 4aa17b7cf5d35e03c2e563477e920cd7104d5806 Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Wed, 14 Jan 2015 01:32:11 +0100
Subject: [PATCH] AIO: Reduce number of threads for 32bit hosts
@@ -21,7 +21,7 @@
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/thread-pool.c b/thread-pool.c
-index 03ba0b0..b5b4fd3 100644
+index 6fba913..ee0b485 100644
--- a/thread-pool.c
+++ b/thread-pool.c
@@ -297,7 +297,12 @@ static void thread_pool_init_one(ThreadPool *pool, AioContext *ctx)
++++++ 0037-dictzip-Fix-on-big-endian-systems.patch -> 0032-dictzip-Fix-on-big-endian-systems.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0037-dictzip-Fix-on-big-endian-systems.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0032-dictzip-Fix-on-big-endian-systems.patch 2017-01-19 10:36:37.238267489 +0100
@@ -1,4 +1,4 @@
-From bd33e933cbde5f822a0db069e7d368d0cb406249 Mon Sep 17 00:00:00 2001
+From aacebb4ff80cbd3cf32c3fa1b739f4999c2956ff Mon Sep 17 00:00:00 2001
From: Alexander Graf
Date: Mon, 15 Jun 2015 17:36:32 +0200
Subject: [PATCH] dictzip: Fix on big endian systems
@@ -14,13 +14,14 @@
[AG: BSC#937572]
Signed-off-by: Alexander Graf
+[AF: Rebased for v2.7.0-rc2]
Signed-off-by: Andreas Färber
---
block/dictzip.c | 50 ++++++++++++++++++++++++++++----------------------
1 file changed, 28 insertions(+), 22 deletions(-)
diff --git a/block/dictzip.c b/block/dictzip.c
-index 717a7d3..1a104ac 100644
+index 4b7e2db..3235337 100644
--- a/block/dictzip.c
+++ b/block/dictzip.c
@@ -156,6 +156,7 @@ static int dictzip_open(BlockDriverState *bs, QDict *options, int flags, Error *
@@ -35,8 +36,8 @@
break;
case 99: /* Special Alex pigz version */
/* number of chunks */
-- if (bdrv_pread(s->hd, GZ_99_CHUNKSIZE, &s->chunk_len, 4) != 4)
-+ if (bdrv_pread(s->hd, GZ_99_CHUNKSIZE, &chunk_len32, 4) != 4)
+- if (bdrv_pread(s->hd->file, GZ_99_CHUNKSIZE, &s->chunk_len, 4) != 4)
++ if (bdrv_pread(s->hd->file, GZ_99_CHUNKSIZE, &chunk_len32, 4) != 4)
goto fail;
- dprintf("chunk len [%#x] = %d\n", GZ_99_CHUNKSIZE, s->chunk_len);
@@ -45,7 +46,7 @@
+ s->chunk_len = le32_to_cpu(chunk_len32);
/* chunk count */
- if (bdrv_pread(s->hd, GZ_99_CHUNKCNT, &s->chunk_cnt, 4) != 4)
+ if (bdrv_pread(s->hd->file, GZ_99_CHUNKCNT, &s->chunk_cnt, 4) != 4)
@@ -267,7 +268,7 @@ static int dictzip_open(BlockDriverState *bs, QDict *options, int flags, Error *
s->chunk_cnt = le32_to_cpu(s->chunk_cnt);
@@ -54,7 +55,7 @@
+ dprintf("chunk len | count = %"PRId64" | %d\n", s->chunk_len, s->chunk_cnt);
/* file size */
- if (bdrv_pread(s->hd, GZ_99_FILESIZE, &s->file_len, 8) != 8)
+ if (bdrv_pread(s->hd->file, GZ_99_FILESIZE, &s->file_len, 8) != 8)
@@ -338,14 +339,14 @@ static int dictzip_open(BlockDriverState *bs, QDict *options, int flags, Error *
s->offsets[i] = offset;
switch (header_ver) {
++++++ 0039-xen_disk-Add-suse-specific-flush-di.patch -> 0033-xen_disk-Add-suse-specific-flush-di.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0039-xen_disk-Add-suse-specific-flush-di.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0033-xen_disk-Add-suse-specific-flush-di.patch 2017-01-19 10:36:37.250265797 +0100
@@ -1,4 +1,4 @@
-From 2d38805131dee693fd9bd931239793514e36d3e0 Mon Sep 17 00:00:00 2001
+From d464395f484a4379ac5b14bde497625e1a0d2a02 Mon Sep 17 00:00:00 2001
From: Bruce Rogers
Date: Wed, 9 Mar 2016 15:18:11 -0700
Subject: [PATCH] xen_disk: Add suse specific flush disable handling and map to
@@ -17,10 +17,10 @@
1 file changed, 15 insertions(+)
diff --git a/hw/block/xen_disk.c b/hw/block/xen_disk.c
-index d4ce380..9100862 100644
+index 3b8ad33..6f37eeb 100644
--- a/hw/block/xen_disk.c
+++ b/hw/block/xen_disk.c
-@@ -112,6 +112,7 @@ struct XenBlkDev {
+@@ -111,6 +111,7 @@ struct XenBlkDev {
int requests_inflight;
int requests_finished;
++++++ 0049-xen-SUSE-xenlinux-unplug-for-emulat.patch -> 0034-xen-SUSE-xenlinux-unplug-for-emulat.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0049-xen-SUSE-xenlinux-unplug-for-emulat.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0034-xen-SUSE-xenlinux-unplug-for-emulat.patch 2017-01-19 10:36:37.270262976 +0100
@@ -1,4 +1,4 @@
-From 6fc72ceb37357fb66b43b17a84b4b6fe128c5f4f Mon Sep 17 00:00:00 2001
+From 21e9a3360b1a1845aee3eb501d15cb56f6024057 Mon Sep 17 00:00:00 2001
From: Olaf Hering
Date: Tue, 21 Jun 2016 18:42:45 +0200
Subject: [PATCH] xen: SUSE xenlinux unplug for emulated PCI
++++++ 0054-qemu-bridge-helper-reduce-security-.patch -> 0035-qemu-bridge-helper-reduce-security-.patch ++++++
--- /work/SRC/openSUSE:Factory/qemu/0054-qemu-bridge-helper-reduce-security-.patch 2016-08-22 10:49:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qemu.new/0035-qemu-bridge-helper-reduce-security-.patch 2017-01-19 10:36:37.282261284 +0100
@@ -1,7 +1,10 @@
-From 66d8c1e91cb8b11fad0ddc68c7398c5ff202525e Mon Sep 17 00:00:00 2001
+From 5219d096e17d3623cc0e274f9d9988effb11e9a1 Mon Sep 17 00:00:00 2001
From: Bruce Rogers
Date: Tue, 2 Aug 2016 11:36:02 -0600
Subject: [PATCH] qemu-bridge-helper: reduce security profile
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
Change from using glib alloc and free routines to those
from libc. Also perform safety measure of dropping privs
@@ -9,24 +12,17 @@
[BR: BOO#988279]
Signed-off-by: Bruce Rogers
+[AF: Rebased for v2.7.0-rc2]
+Signed-off-by: Andreas Färber
---
- qemu-bridge-helper.c | 29 ++++++++++++++++++++++++-----
- 1 file changed, 24 insertions(+), 5 deletions(-)
+ qemu-bridge-helper.c | 27 ++++++++++++++++++++++++---
+ 1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/qemu-bridge-helper.c b/qemu-bridge-helper.c
-index 830fb9e..73ac49b 100644
+index 5396fbf..f3710b8 100644
--- a/qemu-bridge-helper.c
+++ b/qemu-bridge-helper.c
-@@ -15,8 +15,6 @@
-
- #include "qemu/osdep.h"
-
--#include
--
- #include
- #include
- #include
-@@ -111,7 +109,12 @@ static int parse_acl_file(const char *filename, ACLList *acl_list)
+@@ -110,7 +110,12 @@ static int parse_acl_file(const char *filename, ACLList *acl_list)
*argend = 0;
if (strcmp(cmd, "deny") == 0) {
@@ -40,7 +36,7 @@
if (strcmp(arg, "all") == 0) {
acl_rule->type = ACL_DENY_ALL;
} else {
-@@ -120,7 +123,12 @@ static int parse_acl_file(const char *filename, ACLList *acl_list)
+@@ -119,7 +124,12 @@ static int parse_acl_file(const char *filename, ACLList *acl_list)
}
QSIMPLEQ_INSERT_TAIL(acl_list, acl_rule, entry);
} else if (strcmp(cmd, "allow") == 0) {
@@ -54,7 +50,7 @@
if (strcmp(arg, "all") == 0) {
acl_rule->type = ACL_ALLOW_ALL;
} else {
-@@ -414,6 +422,17 @@ int main(int argc, char **argv)
+@@ -413,6 +423,17 @@ int main(int argc, char **argv)
goto cleanup;
}
@@ -72,7 +68,7 @@
/* write fd to the domain socket */
if (send_fd(unixfd, fd) == -1) {
fprintf(stderr, "failed to write fd to unix socket: %s\n",
-@@ -435,7 +454,7 @@ cleanup:
+@@ -434,7 +455,7 @@ cleanup:
}
while ((acl_rule = QSIMPLEQ_FIRST(&acl_list)) != NULL) {
QSIMPLEQ_REMOVE_HEAD(&acl_list, entry);
++++++ 0036-qemu-binfmt-conf-use-qemu-ARCH-binf.patch ++++++
From 3a45e30cfeda81b1c5a311e4bd030165396ab921 Mon Sep 17 00:00:00 2001
From: Andreas Schwab
Date: Fri, 12 Aug 2016 18:20:49 +0200
Subject: [PATCH] qemu-binfmt-conf: use qemu-ARCH-binfmt
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Andreas Schwab
Signed-off-by: Andreas Färber
---
scripts/qemu-binfmt-conf.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index 7640255..3affcdc 100755
--- a/scripts/qemu-binfmt-conf.sh
+++ b/scripts/qemu-binfmt-conf.sh
@@ -201,7 +201,7 @@ qemu_check_systemd() {
}
qemu_generate_register() {
- echo ":qemu-$cpu:M::$magic:$mask:$qemu:$FLAGS"
+ echo ":qemu-$cpu:M::$magic:$mask:$qemu:P$FLAGS"
}
qemu_register_interpreter() {
@@ -242,9 +242,9 @@ qemu_set_binfmts() {
continue
fi
- qemu="$QEMU_PATH/qemu-$cpu"
+ qemu="$QEMU_PATH/qemu-$cpu-binfmt"
if [ "$cpu" = "i486" ] ; then
- qemu="$QEMU_PATH/qemu-i386"
+ qemu="$QEMU_PATH/qemu-i386-binfmt"
fi
if [ "$host_family" != "$family" ] ; then
++++++ 0037-configure-Fix-detection-of-seccomp-.patch ++++++
From 0b135a5863998d3936302e291e69a0b13596fc6f Mon Sep 17 00:00:00 2001
From: markkp
Date: Thu, 11 Aug 2016 16:28:39 -0400
Subject: [PATCH] configure: Fix detection of seccomp on s390x
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Mark Post
Signed-off-by: Andreas Färber
---
configure | 3 +++
1 file changed, 3 insertions(+)
diff --git a/configure b/configure
index b882d19..1954f62 100755
--- a/configure
+++ b/configure
@@ -1902,6 +1902,9 @@ if test "$seccomp" != "no" ; then
ppc|ppc64)
libseccomp_minver="2.3.0"
;;
+ s390|s390x)
+ libseccomp_minver="2.2.0"
+ ;;
*)
libseccomp_minver=""
;;
++++++ 0038-linux-user-properly-test-for-infini.patch ++++++
From 7c9a134065df3deab252918c5172021b5a9e3ab0 Mon Sep 17 00:00:00 2001
From: Andreas Schwab
Date: Thu, 8 Sep 2016 11:21:05 +0200
Subject: [PATCH] linux-user: properly test for infinite timeout in poll (#8)
After "linux-user: use target_ulong" the poll syscall was no longer
handling infinite timeout.
/home/abuild/rpmbuild/BUILD/qemu-2.7.0-rc5/linux-user/syscall.c:9773:26: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
if (arg3 >= 0) {
^~
Signed-off-by: Andreas Schwab
---
linux-user/syscall.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 51c1091..856e75d 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -9770,7 +9770,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,
{
struct timespec ts, *pts;
- if (arg3 >= 0) {
+ if ((abi_long)arg3 >= 0) {
/* Convert ms to secs, ns */
ts.tv_sec = arg3 / 1000;
ts.tv_nsec = (arg3 % 1000) * 1000000LL;
++++++ 0039-Fix-tlb_vaddr_to_host-with-CONFIG_U.patch ++++++
From 803968c258e59d2af30618b736c87b114c2038f1 Mon Sep 17 00:00:00 2001
From: Benjamin Herrenschmidt
Date: Wed, 3 Aug 2016 13:15:06 +1000
Subject: [PATCH] Fix tlb_vaddr_to_host with CONFIG_USER_ONLY
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
We use the wrong argument name for the g2h() macro !
Signed-off-by: Benjamin Herrenschmidt
Reviewed-by: Peter Maydell
Reviewed-by: Laurent Vivier
Tested-by: Laurent Vivier
Signed-off-by: Andreas Färber
---
include/exec/cpu_ldst.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h
index b573df5..6eb5fe8 100644
--- a/include/exec/cpu_ldst.h
+++ b/include/exec/cpu_ldst.h
@@ -401,7 +401,7 @@ static inline void *tlb_vaddr_to_host(CPUArchState *env, target_ulong addr,
int access_type, int mmu_idx)
{
#if defined(CONFIG_USER_ONLY)
- return g2h(vaddr);
+ return g2h(addr);
#else
int index = (addr >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1);
CPUTLBEntry *tlbentry = &env->tlb_table[mmu_idx][index];
++++++ 0040-linux-user-remove-all-traces-of-qem.patch ++++++
From e2e103eaa7e3ba94f3e32184c7fa2c694072b9e1 Mon Sep 17 00:00:00 2001
From: Andreas Schwab
Date: Wed, 28 Sep 2016 16:36:40 +0200
Subject: [PATCH] linux-user: remove all traces of qemu from /proc/self/cmdline
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Instead of post-processing the real contents use the remembered target
argv. That removes all traces of qemu, including command line options,
and handles QEMU_ARGV0.
Signed-off-by: Andreas Schwab
Signed-off-by: Andreas Färber
---
linux-user/syscall.c | 47 +++++++----------------------------------------
1 file changed, 7 insertions(+), 40 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 856e75d..31bf618 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -7013,52 +7013,19 @@ int host_to_target_waitstatus(int status)
static int open_self_cmdline(void *cpu_env, int fd)
{
- int fd_orig = -1;
- bool word_skipped = false;
-
- fd_orig = open("/proc/self/cmdline", O_RDONLY);
- if (fd_orig < 0) {
- return fd_orig;
- }
+ CPUState *cpu = ENV_GET_CPU((CPUArchState *)cpu_env);
+ struct linux_binprm *bprm = ((TaskState *)cpu->opaque)->bprm;
+ int i;
- while (true) {
- ssize_t nb_read;
- char buf[128];
- char *cp_buf = buf;
+ for (i = 0; i < bprm->argc; i++) {
+ size_t len = strlen(bprm->argv[i]) + 1;
- nb_read = read(fd_orig, buf, sizeof(buf));
- if (nb_read < 0) {
- int e = errno;
- fd_orig = close(fd_orig);
- errno = e;
+ if (write(fd, bprm->argv[i], len) != len) {
return -1;
- } else if (nb_read == 0) {
- break;
- }
-
- if (!word_skipped) {
- /* Skip the first string, which is the path to qemu-*-static
- instead of the actual command. */
- cp_buf = memchr(buf, 0, nb_read);
- if (cp_buf) {
- /* Null byte found, skip one string */
- cp_buf++;
- nb_read -= cp_buf - buf;
- word_skipped = true;
- }
- }
-
- if (word_skipped) {
- if (write(fd, cp_buf, nb_read) != nb_read) {
- int e = errno;
- close(fd_orig);
- errno = e;
- return -1;
- }
}
}
- return close(fd_orig);
+ return 0;
}
static int open_self_maps(void *cpu_env, int fd)
++++++ 0041-vmsvga-correct-bitmap-and-pixmap-si.patch ++++++
From fd5aa800d14fbc8f0a6a75b37ee0e74092dde8cd Mon Sep 17 00:00:00 2001
From: Prasad J Pandit
Date: Thu, 8 Sep 2016 18:15:54 +0530
Subject: [PATCH] vmsvga: correct bitmap and pixmap size checks
When processing svga command DEFINE_CURSOR in vmsvga_fifo_run,
the computed BITMAP and PIXMAP size are checked against the
'cursor.mask[]' and 'cursor.image[]' array sizes in bytes.
Correct these checks to avoid OOB memory access.
Reported-by: Qinghao Tang
Reported-by: Li Qiang
Signed-off-by: Prasad J Pandit
Message-id: 1473338754-15430-1-git-send-email-ppandit@redhat.com
Signed-off-by: Gerd Hoffmann
(cherry picked from commit 167d97a3def77ee2dbf6e908b0ecbfe2103977db)
[BR: CVE-2016-7170 BSC#998516]
Signed-off-by: Bruce Rogers
---
hw/display/vmware_vga.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c
index e51a05e..6599cf0 100644
--- a/hw/display/vmware_vga.c
+++ b/hw/display/vmware_vga.c
@@ -676,11 +676,13 @@ static void vmsvga_fifo_run(struct vmsvga_state_s *s)
cursor.bpp = vmsvga_fifo_read(s);
args = SVGA_BITMAP_SIZE(x, y) + SVGA_PIXMAP_SIZE(x, y, cursor.bpp);
- if (cursor.width > 256 ||
- cursor.height > 256 ||
- cursor.bpp > 32 ||
- SVGA_BITMAP_SIZE(x, y) > sizeof cursor.mask ||
- SVGA_PIXMAP_SIZE(x, y, cursor.bpp) > sizeof cursor.image) {
+ if (cursor.width > 256
+ || cursor.height > 256
+ || cursor.bpp > 32
+ || SVGA_BITMAP_SIZE(x, y)
+ > sizeof(cursor.mask) / sizeof(cursor.mask[0])
+ || SVGA_PIXMAP_SIZE(x, y, cursor.bpp)
+ > sizeof(cursor.image) / sizeof(cursor.image[0])) {
goto badcmd;
}
++++++ 0042-scsi-mptconfig-fix-an-assert-expres.patch ++++++
From eccd42e2e97bdf76467d48b0cecdd07327c686fd Mon Sep 17 00:00:00 2001
From: Prasad J Pandit
Date: Wed, 31 Aug 2016 17:36:07 +0530
Subject: [PATCH] scsi: mptconfig: fix an assert expression
When LSI SAS1068 Host Bus emulator builds configuration page
headers, mptsas_config_pack() should assert that the size
fits in a byte. However, the size is expressed in 32-bit
units, so up to 1020 bytes fit. The assertion was only
allowing replies up to 252 bytes, so fix it.
Suggested-by: Paolo Bonzini
Signed-off-by: Prasad J Pandit
Message-Id: <1472645167-30765-2-git-send-email-ppandit@redhat.com>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini
(cherry picked from commit cf2bce203a45d7437029d108357fb23fea0967b6)
[BR: CVE-2016-7157 BSC#997860]
Signed-off-by: Bruce Rogers
---
hw/scsi/mptconfig.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/scsi/mptconfig.c b/hw/scsi/mptconfig.c
index 7071854..3e4f400 100644
--- a/hw/scsi/mptconfig.c
+++ b/hw/scsi/mptconfig.c
@@ -158,7 +158,7 @@ static size_t mptsas_config_pack(uint8_t **data, const char *fmt, ...)
va_end(ap);
if (data) {
- assert(ret < 256 && (ret % 4) == 0);
+ assert(ret / 4 < 256 && (ret % 4) == 0);
stb_p(*data + 1, ret / 4);
}
return ret;
++++++ 0043-scsi-mptconfig-fix-misuse-of-MPTSAS.patch ++++++
From 3e3bf236d5b712cd5861effaf193093779584c80 Mon Sep 17 00:00:00 2001
From: Paolo Bonzini
Date: Mon, 29 Aug 2016 11:35:37 +0200
Subject: [PATCH] scsi: mptconfig: fix misuse of MPTSAS_CONFIG_PACK
These issues cause respectively a QEMU crash and a leak of 2 bytes of
stack. They were discovered by VictorV of 360 Marvel Team.
Reported-by: Tom Victor
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini
(cherry picked from commit 65a8e1f6413a0f6f79894da710b5d6d43361d27d)
[BR: CVE-2016-7157 BSC#997860]
Signed-off-by: Bruce Rogers
---
hw/scsi/mptconfig.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/scsi/mptconfig.c b/hw/scsi/mptconfig.c
index 3e4f400..87a416a 100644
--- a/hw/scsi/mptconfig.c
+++ b/hw/scsi/mptconfig.c
@@ -203,7 +203,7 @@ size_t mptsas_config_manufacturing_1(MPTSASState *s, uint8_t **data, int address
{
/* VPD - all zeros */
return MPTSAS_CONFIG_PACK(1, MPI_CONFIG_PAGETYPE_MANUFACTURING, 0x00,
- "s256");
+ "*s256");
}
static
@@ -328,7 +328,7 @@ size_t mptsas_config_ioc_0(MPTSASState *s, uint8_t **data, int address)
return MPTSAS_CONFIG_PACK(0, MPI_CONFIG_PAGETYPE_IOC, 0x01,
"*l*lwwb*b*b*blww",
pcic->vendor_id, pcic->device_id, pcic->revision,
- pcic->subsystem_vendor_id,
+ pcic->class_id, pcic->subsystem_vendor_id,
pcic->subsystem_id);
}
++++++ 0044-scsi-pvscsi-limit-loop-to-fetch-SG-.patch ++++++
From c08b11cce7dce1fc89c71d3c0de4c5706a89009a Mon Sep 17 00:00:00 2001
From: Prasad J Pandit
Date: Tue, 6 Sep 2016 02:20:43 +0530
Subject: [PATCH] scsi: pvscsi: limit loop to fetch SG list
In PVSCSI paravirtual SCSI bus, pvscsi_convert_sglist can take a very
long time or go into an infinite loop due to two different bugs:
1) the request descriptor data length is defined to be 64 bit. While
building SG list from a request descriptor, it gets truncated to 32bit
in routine 'pvscsi_convert_sglist'. This could lead to an infinite loop
situation large 'dataLen' values when data_length is cast to uint32_t and
chunk_size becomes always zero. Fix this by removing the incorrect cast.
2) pvscsi_get_next_sg_elem can be called arbitrarily many times if the
element has a zero length. Get out of the loop early when this happens,
by introducing an upper limit on the number of SG list elements.
Reported-by: Li Qiang
Signed-off-by: Prasad J Pandit
Message-Id: <1473108643-12983-1-git-send-email-ppandit@redhat.com>
Signed-off-by: Paolo Bonzini
(cherry picked from commit 49adc5d3f8c6bb75e55ebfeab109c5c37dea65e8)
[BR: CVE-2016-7156 BSC#997859]
Signed-off-by: Bruce Rogers
---
hw/scsi/vmw_pvscsi.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c
index 5116f4a..73679f8 100644
--- a/hw/scsi/vmw_pvscsi.c
+++ b/hw/scsi/vmw_pvscsi.c
@@ -40,6 +40,8 @@
#define PVSCSI_MAX_DEVS (64)
#define PVSCSI_MSIX_NUM_VECTORS (1)
+#define PVSCSI_MAX_SG_ELEM 2048
+
#define PVSCSI_MAX_CMD_DATA_WORDS \
(sizeof(PVSCSICmdDescSetupRings)/sizeof(uint32_t))
@@ -634,17 +636,16 @@ pvscsi_queue_pending_descriptor(PVSCSIState *s, SCSIDevice **d,
static void
pvscsi_convert_sglist(PVSCSIRequest *r)
{
- int chunk_size;
+ uint32_t chunk_size, elmcnt = 0;
uint64_t data_length = r->req.dataLen;
PVSCSISGState sg = r->sg;
- while (data_length) {
- while (!sg.resid) {
+ while (data_length && elmcnt < PVSCSI_MAX_SG_ELEM) {
+ while (!sg.resid && elmcnt++ < PVSCSI_MAX_SG_ELEM) {
pvscsi_get_next_sg_elem(&sg);
trace_pvscsi_convert_sglist(r->req.context, r->sg.dataAddr,
r->sg.resid);
}
- assert(data_length > 0);
- chunk_size = MIN((unsigned) data_length, sg.resid);
+ chunk_size = MIN(data_length, sg.resid);
if (chunk_size) {
qemu_sglist_add(&r->sgl, sg.dataAddr, chunk_size);
}
++++++ 0045-usb-xhci-fix-memory-leak-in-usb_xhc.patch ++++++
From c559aa30371dc110e2b13e5006a327aab6503ac7 Mon Sep 17 00:00:00 2001
From: Li Qiang
Date: Tue, 13 Sep 2016 03:20:03 -0700
Subject: [PATCH] usb:xhci:fix memory leak in usb_xhci_exit
If the xhci uses msix, it doesn't free the corresponding
memory, thus leading a memory leak. This patch avoid this.
Signed-off-by: Li Qiang
Message-id: 57d7d2e0.d4301c0a.d13e9.9a55@mx.google.com
Signed-off-by: Gerd Hoffmann
(cherry picked from commit b53dd4495ced2432a0b652ea895e651d07336f7e)
[BR: CVE-2016-7466 BSC#1000345]
Signed-off-by: Bruce Rogers
---
hw/usb/hcd-xhci.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c
index 188f954..281a2a5 100644
--- a/hw/usb/hcd-xhci.c
+++ b/hw/usb/hcd-xhci.c
@@ -3709,8 +3709,7 @@ static void usb_xhci_exit(PCIDevice *dev)
/* destroy msix memory region */
if (dev->msix_table && dev->msix_pba
&& dev->msix_entry_used) {
- memory_region_del_subregion(&xhci->mem, &dev->msix_table_mmio);
- memory_region_del_subregion(&xhci->mem, &dev->msix_pba_mmio);
+ msix_uninit(dev, &xhci->mem, &xhci->mem);
}
usb_bus_release(&xhci->bus);
++++++ 0046-scsi-mptsas-use-g_new0-to-allocate-.patch ++++++
From 9115b36311e918d6ccea499ff5767508b72250e6 Mon Sep 17 00:00:00 2001
From: Li Qiang
Date: Mon, 12 Sep 2016 18:14:11 +0530
Subject: [PATCH] scsi: mptsas: use g_new0 to allocate MPTSASRequest object
When processing IO request in mptsas, it uses g_new to allocate
a 'req' object. If an error occurs before 'req->sreq' is
allocated, It could lead to an OOB write in mptsas_free_request
function. Use g_new0 to avoid it.
Reported-by: Li Qiang
Signed-off-by: Prasad J Pandit
Message-Id: <1473684251-17476-1-git-send-email-ppandit@redhat.com>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini
(cherry picked from commit 670e56d3ed2918b3861d9216f2c0540d9e9ae0d5)
[BR: CVE-2016-7423 BSC#1000397]
Signed-off-by: Bruce Rogers
---
hw/scsi/mptsas.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c
index 0e0a22f..eaae1bb 100644
--- a/hw/scsi/mptsas.c
+++ b/hw/scsi/mptsas.c
@@ -304,7 +304,7 @@ static int mptsas_process_scsi_io_request(MPTSASState *s,
goto bad;
}
- req = g_new(MPTSASRequest, 1);
+ req = g_new0(MPTSASRequest, 1);
QTAILQ_INSERT_TAIL(&s->pending, req, next);
req->scsi_io = *scsi_io;
req->dev = s;
++++++ 0047-scsi-pvscsi-limit-process-IO-loop-t.patch ++++++
From a6cfc94b9a325993d6d77022ae8d0fd0cc77d117 Mon Sep 17 00:00:00 2001
From: Prasad J Pandit
Date: Wed, 14 Sep 2016 15:09:12 +0530
Subject: [PATCH] scsi: pvscsi: limit process IO loop to ring size
Vmware Paravirtual SCSI emulator while processing IO requests
could run into an infinite loop if 'pvscsi_ring_pop_req_descr'
always returned positive value. Limit IO loop to the ring size.
Cc: qemu-stable@nongnu.org
Reported-by: Li Qiang
Signed-off-by: Prasad J Pandit
Message-Id: <1473845952-30785-1-git-send-email-ppandit@redhat.com>
Signed-off-by: Paolo Bonzini
(cherry picked from commit d251157ac1928191af851d199a9ff255d330bec9)
[BR: CVE-2016-7421 BSC#999661]
Signed-off-by: Bruce Rogers
---
hw/scsi/vmw_pvscsi.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c
index 73679f8..efa5459 100644
--- a/hw/scsi/vmw_pvscsi.c
+++ b/hw/scsi/vmw_pvscsi.c
@@ -253,8 +253,11 @@ static hwaddr
pvscsi_ring_pop_req_descr(PVSCSIRingInfo *mgr)
{
uint32_t ready_ptr = RS_GET_FIELD(mgr, reqProdIdx);
+ uint32_t ring_size = PVSCSI_MAX_NUM_PAGES_REQ_RING
+ * PVSCSI_MAX_NUM_REQ_ENTRIES_PER_PAGE;
- if (ready_ptr != mgr->consumed_ptr) {
+ if (ready_ptr != mgr->consumed_ptr
+ && ready_ptr - mgr->consumed_ptr < ring_size) {
uint32_t next_ready_ptr =
mgr->consumed_ptr++ & mgr->txr_len_mask;
uint32_t next_ready_page =
++++++ 0048-virtio-add-check-for-descriptor-s-m.patch ++++++
From db87d12d0e7e3720ebc0283aced8077f43e29963 Mon Sep 17 00:00:00 2001
From: Prasad J Pandit
Date: Mon, 19 Sep 2016 23:55:45 +0530
Subject: [PATCH] virtio: add check for descriptor's mapped address
virtio back end uses set of buffers to facilitate I/O operations.
If its size is too large, 'cpu_physical_memory_map' could return
a null address. This would result in a null dereference while
un-mapping descriptors. Add check to avoid it.
Reported-by: Qinghao Tang
Signed-off-by: Prasad J Pandit
Reviewed-by: Michael S. Tsirkin
Signed-off-by: Michael S. Tsirkin
Reviewed-by: Laszlo Ersek
(cherry picked from commit 973e7170dddefb491a48df5cba33b2ae151013a0)
[BR: CVE-2016-7422 BSC#1000346]
Signed-off-by: Bruce Rogers
---
hw/virtio/virtio.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 74c085c..eabe573 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -473,6 +473,11 @@ static void virtqueue_map_desc(unsigned int *p_num_sg, hwaddr *addr, struct iove
}
iov[num_sg].iov_base = cpu_physical_memory_map(pa, &len, is_write);
+ if (!iov[num_sg].iov_base) {
+ error_report("virtio: bogus descriptor or out of resources");
+ exit(1);
+ }
+
iov[num_sg].iov_len = len;
addr[num_sg] = pa;
++++++ 0049-net-mcf-limit-buffer-descriptor-cou.patch ++++++
From 60f6f3204dcfbb6c7518751061abc99ddd9b2c97 Mon Sep 17 00:00:00 2001
From: Prasad J Pandit
Date: Thu, 22 Sep 2016 16:02:37 +0530
Subject: [PATCH] net: mcf: limit buffer descriptor count
ColdFire Fast Ethernet Controller uses buffer descriptors to manage
data flow to/fro receive & transmit queues. While transmitting
packets, it could continue to read buffer descriptors if a buffer
descriptor has length of zero and has crafted values in bd.flags.
Set upper limit to number of buffer descriptors.
Reported-by: Li Qiang
Signed-off-by: Prasad J Pandit
Reviewed-by: Paolo Bonzini
Signed-off-by: Jason Wang
(cherry picked from commit 070c4b92b8cd5390889716677a0b92444d6e087a)
[BR: CVE-2016-7908 BSC#1002550]
Signed-off-by: Bruce Rogers
---
hw/net/mcf_fec.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/hw/net/mcf_fec.c b/hw/net/mcf_fec.c
index 0ee8ad9..d31fea1 100644
--- a/hw/net/mcf_fec.c
+++ b/hw/net/mcf_fec.c
@@ -23,6 +23,7 @@ do { printf("mcf_fec: " fmt , ## __VA_ARGS__); } while (0)
#define DPRINTF(fmt, ...) do {} while(0)
#endif
+#define FEC_MAX_DESC 1024
#define FEC_MAX_FRAME_SIZE 2032
typedef struct {
@@ -149,7 +150,7 @@ static void mcf_fec_do_tx(mcf_fec_state *s)
uint32_t addr;
mcf_fec_bd bd;
int frame_size;
- int len;
+ int len, descnt = 0;
uint8_t frame[FEC_MAX_FRAME_SIZE];
uint8_t *ptr;
@@ -157,7 +158,7 @@ static void mcf_fec_do_tx(mcf_fec_state *s)
ptr = frame;
frame_size = 0;
addr = s->tx_descriptor;
- while (1) {
+ while (descnt++ < FEC_MAX_DESC) {
mcf_fec_read_bd(&bd, addr);
DPRINTF("tx_bd %x flags %04x len %d data %08x\n",
addr, bd.flags, bd.length, bd.data);
++++++ 0050-usb-ehci-fix-memory-leak-in-ehci_pr.patch ++++++
From 9d2c9efdb4d8b49689517271db3420c6de75278d Mon Sep 17 00:00:00 2001
From: Li Qiang
Date: Sun, 18 Sep 2016 19:48:35 -0700
Subject: [PATCH] usb: ehci: fix memory leak in ehci_process_itd
While processing isochronous transfer descriptors(iTD), if the page
select(PG) field value is out of bands it will return. In this
situation the ehci's sg list is not freed thus leading to a memory
leak issue. This patch avoid this.
Signed-off-by: Li Qiang
Reviewed-by: Thomas Huth
Signed-off-by: Michael Tokarev
(cherry picked from commit b16c129daf0fed91febbb88de23dae8271c8898a)
[BR: CVE-2016-7995 BSC#1003612]
Signed-off-by: Bruce Rogers
---
hw/usb/hcd-ehci.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c
index b093db7..f4ece9a 100644
--- a/hw/usb/hcd-ehci.c
+++ b/hw/usb/hcd-ehci.c
@@ -1426,6 +1426,7 @@ static int ehci_process_itd(EHCIState *ehci,
if (off + len > 4096) {
/* transfer crosses page border */
if (pg == 6) {
+ qemu_sglist_destroy(&ehci->isgl);
return -1; /* avoid page pg + 1 */
}
ptr2 = (itd->bufptr[pg + 1] & ITD_BUFPTR_MASK);
++++++ 0051-xhci-limit-the-number-of-link-trbs-.patch ++++++
From 8e5cea1968f6fe19792237cb2abeaf6e7ff3244e Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann
Date: Mon, 10 Oct 2016 12:46:22 +0200
Subject: [PATCH] xhci: limit the number of link trbs we are willing to process
Needed to avoid we run in circles forever in case the guest builds
an endless loop with link trbs.
Reported-by: Li Qiang
Tested-by: P J P
Signed-off-by: Gerd Hoffmann
Message-id: 1476096382-7981-1-git-send-email-kraxel@redhat.com
(cherry picked from commit 05f43d44e4bc26611ce25fd7d726e483f73363ce)
[BR: CVE-2016-8576 BSC#1003878]
Signed-off-by: Bruce Rogers
---
hw/usb/hcd-xhci.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c
index 281a2a5..8a9a31a 100644
--- a/hw/usb/hcd-xhci.c
+++ b/hw/usb/hcd-xhci.c
@@ -54,6 +54,8 @@
* to the specs when it gets them */
#define ER_FULL_HACK
+#define TRB_LINK_LIMIT 4
+
#define LEN_CAP 0x40
#define LEN_OPER (0x400 + 0x10 * MAXPORTS)
#define LEN_RUNTIME ((MAXINTRS + 1) * 0x20)
@@ -1000,6 +1002,7 @@ static TRBType xhci_ring_fetch(XHCIState *xhci, XHCIRing *ring, XHCITRB *trb,
dma_addr_t *addr)
{
PCIDevice *pci_dev = PCI_DEVICE(xhci);
+ uint32_t link_cnt = 0;
while (1) {
TRBType type;
@@ -1026,6 +1029,9 @@ static TRBType xhci_ring_fetch(XHCIState *xhci, XHCIRing *ring, XHCITRB *trb,
ring->dequeue += TRB_SIZE;
return type;
} else {
+ if (++link_cnt > TRB_LINK_LIMIT) {
+ return 0;
+ }
ring->dequeue = xhci_mask64(trb->parameter);
if (trb->control & TRB_LK_TC) {
ring->ccs = !ring->ccs;
@@ -1043,6 +1049,7 @@ static int xhci_ring_chain_length(XHCIState *xhci, const XHCIRing *ring)
bool ccs = ring->ccs;
/* hack to bundle together the two/three TDs that make a setup transfer */
bool control_td_set = 0;
+ uint32_t link_cnt = 0;
while (1) {
TRBType type;
@@ -1058,6 +1065,9 @@ static int xhci_ring_chain_length(XHCIState *xhci, const XHCIRing *ring)
type = TRB_TYPE(trb);
if (type == TR_LINK) {
+ if (++link_cnt > TRB_LINK_LIMIT) {
+ return -length;
+ }
dequeue = xhci_mask64(trb.parameter);
if (trb.control & TRB_LK_TC) {
ccs = !ccs;
++++++ 0052-9pfs-allocate-space-for-guest-origi.patch ++++++
From 2d4128223e6b5a3dff30e0b07435620f1092c5ae Mon Sep 17 00:00:00 2001
From: Li Qiang
Date: Mon, 17 Oct 2016 14:13:58 +0200
Subject: [PATCH] 9pfs: allocate space for guest originated empty strings
If a guest sends an empty string paramater to any 9P operation, the current
code unmarshals it into a V9fsString equal to { .size = 0, .data = NULL }.
This is unfortunate because it can cause NULL pointer dereference to happen
at various locations in the 9pfs code. And we don't want to check str->data
everywhere we pass it to strcmp() or any other function which expects a
dereferenceable pointer.
This patch enforces the allocation of genuine C empty strings instead, so
callers don't have to bother.
Out of all v9fs_iov_vunmarshal() users, only v9fs_xattrwalk() checks if
the returned string is empty. It now uses v9fs_string_size() since
name.data cannot be NULL anymore.
Signed-off-by: Li Qiang
[groug, rewritten title and changelog,
fix empty string check in v9fs_xattrwalk()]
Signed-off-by: Greg Kurz
(cherry picked from commit ba42ebb863ab7d40adc79298422ed9596df8f73a)
[BR: CVE-2016-8578 BSC#1003894]
Signed-off-by: Bruce Rogers
---
fsdev/9p-iov-marshal.c | 2 +-
hw/9pfs/9p.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/fsdev/9p-iov-marshal.c b/fsdev/9p-iov-marshal.c
index 663cad5..1d16f8d 100644
--- a/fsdev/9p-iov-marshal.c
+++ b/fsdev/9p-iov-marshal.c
@@ -125,7 +125,7 @@ ssize_t v9fs_iov_vunmarshal(struct iovec *out_sg, int out_num, size_t offset,
str->data = g_malloc(str->size + 1);
copied = v9fs_unpack(str->data, out_sg, out_num, offset,
str->size);
- if (copied > 0) {
+ if (copied >= 0) {
str->data[str->size] = 0;
} else {
v9fs_string_free(str);
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index dfe293d..a345fe3 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -3160,7 +3160,7 @@ static void v9fs_xattrwalk(void *opaque)
goto out;
}
v9fs_path_copy(&xattr_fidp->path, &file_fidp->path);
- if (name.data == NULL) {
+ if (!v9fs_string_size(&name)) {
/*
* listxattr request. Get the size first
*/
++++++ 0053-9pfs-fix-memory-leak-in-v9fs_link.patch ++++++
From 9f7f59799ea714c512ecfc0e224df66095abf9c0 Mon Sep 17 00:00:00 2001
From: Li Qiang
Date: Mon, 17 Oct 2016 14:13:58 +0200
Subject: [PATCH] 9pfs: fix memory leak in v9fs_link
The v9fs_link() function keeps a reference on the source fid object. This
causes a memory leak since the reference never goes down to 0. This patch
fixes the issue.
Signed-off-by: Li Qiang
Reviewed-by: Greg Kurz
[groug, rephrased the changelog]
Signed-off-by: Greg Kurz
(cherry picked from commit 4c1586787ff43c9acd18a56c12d720e3e6be9f7c)
[BR: CVE-2016-9105 BSC#1007494]
Signed-off-by: Bruce Rogers
---
hw/9pfs/9p.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index a345fe3..239aef4 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -2402,6 +2402,7 @@ static void v9fs_link(void *opaque)
if (!err) {
err = offset;
}
+ put_fid(pdu, oldfidp);
out:
put_fid(pdu, dfidp);
out_nofid:
++++++ 0054-9pfs-fix-potential-host-memory-leak.patch ++++++
From 5f29f9ab1d097cf326dfa477f75d30117f668b49 Mon Sep 17 00:00:00 2001
From: Li Qiang
Date: Mon, 17 Oct 2016 14:13:58 +0200
Subject: [PATCH] 9pfs: fix potential host memory leak in v9fs_read
In 9pfs read dispatch function, it doesn't free two QEMUIOVector
object thus causing potential memory leak. This patch avoid this.
Signed-off-by: Li Qiang
Signed-off-by: Greg Kurz
(cherry picked from commit e95c9a493a5a8d6f969e86c9f19f80ffe6587e19)
[BR: CVE-2016-8577 BSC#1003893]
Signed-off-by: Bruce Rogers
---
hw/9pfs/9p.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index 239aef4..4a71cff 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -1812,14 +1812,15 @@ static void v9fs_read(void *opaque)
if (len < 0) {
/* IO error return the error */
err = len;
- goto out;
+ goto out_free_iovec;
}
} while (count < max_count && len > 0);
err = pdu_marshal(pdu, offset, "d", count);
if (err < 0) {
- goto out;
+ goto out_free_iovec;
}
err += offset + count;
+out_free_iovec:
qemu_iovec_destroy(&qiov);
qemu_iovec_destroy(&qiov_full);
} else if (fidp->fid_type == P9_FID_XATTR) {
++++++ 0055-9pfs-fix-information-leak-in-xattr-.patch ++++++
From 9f8a42e3f35479353ad9b9b5af78e136fd59b509 Mon Sep 17 00:00:00 2001
From: Li Qiang
Date: Mon, 17 Oct 2016 14:13:58 +0200
Subject: [PATCH] 9pfs: fix information leak in xattr read
9pfs uses g_malloc() to allocate the xattr memory space, if the guest
reads this memory before writing to it, this will leak host heap memory
to the guest. This patch avoid this.
Signed-off-by: Li Qiang
Reviewed-by: Greg Kurz
Signed-off-by: Greg Kurz
(cherry picked from commit eb687602853b4ae656e9236ee4222609f3a6887d)
[BR: CVE-2016-9103 BSC#1007454]
Signed-off-by: Bruce Rogers
---
hw/9pfs/9p.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index 4a71cff..af32464 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -3270,7 +3270,7 @@ static void v9fs_xattrcreate(void *opaque)
xattr_fidp->fs.xattr.flags = flags;
v9fs_string_init(&xattr_fidp->fs.xattr.name);
v9fs_string_copy(&xattr_fidp->fs.xattr.name, &name);
- xattr_fidp->fs.xattr.value = g_malloc(size);
+ xattr_fidp->fs.xattr.value = g_malloc0(size);
err = offset;
put_fid(pdu, file_fidp);
out_nofid:
++++++ 0056-9pfs-fix-memory-leak-in-v9fs_xattrc.patch ++++++
From 61eb543d366088cebecaf8fead80d1bd32db7cb2 Mon Sep 17 00:00:00 2001
From: Li Qiang
Date: Mon, 17 Oct 2016 14:13:58 +0200
Subject: [PATCH] 9pfs: fix memory leak in v9fs_xattrcreate
The 'fs.xattr.value' field in V9fsFidState object doesn't consider the
situation that this field has been allocated previously. Every time, it
will be allocated directly. This leads to a host memory leak issue if
the client sends another Txattrcreate message with the same fid number
before the fid from the previous time got clunked.
Signed-off-by: Li Qiang
Reviewed-by: Greg Kurz
[groug, updated the changelog to indicate how the leak can occur]
Signed-off-by: Greg Kurz
(cherry picked from commit ff55e94d23ae94c8628b0115320157c763eb3e06)
[BR: CVE-2016-9102 BSC#1007450]
Signed-off-by: Bruce Rogers
---
hw/9pfs/9p.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index af32464..aa2b8c0 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -3270,6 +3270,7 @@ static void v9fs_xattrcreate(void *opaque)
xattr_fidp->fs.xattr.flags = flags;
v9fs_string_init(&xattr_fidp->fs.xattr.name);
v9fs_string_copy(&xattr_fidp->fs.xattr.name, &name);
+ g_free(xattr_fidp->fs.xattr.value);
xattr_fidp->fs.xattr.value = g_malloc0(size);
err = offset;
put_fid(pdu, file_fidp);
++++++ 0057-9pfs-fix-memory-leak-in-v9fs_write.patch ++++++
From 1dd9e4b00e2f7eb60436a5a3017042eb7b93a8ff Mon Sep 17 00:00:00 2001
From: Li Qiang
Date: Mon, 17 Oct 2016 14:13:58 +0200
Subject: [PATCH] 9pfs: fix memory leak in v9fs_write
If an error occurs when marshalling the transfer length to the guest, the
v9fs_write() function doesn't free an IO vector, thus leading to a memory
leak. This patch fixes the issue.
Signed-off-by: Li Qiang
Reviewed-by: Greg Kurz
[groug, rephrased the changelog]
Signed-off-by: Greg Kurz
(cherry picked from commit fdfcc9aeea1492f4b819a24c94dfb678145b1bf9)
[BR: CVE-2016-9106 BSC#1007495]
Signed-off-by: Bruce Rogers
---
hw/9pfs/9p.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index aa2b8c0..af07846 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -2080,7 +2080,7 @@ static void v9fs_write(void *opaque)
offset = 7;
err = pdu_marshal(pdu, offset, "d", total);
if (err < 0) {
- goto out;
+ goto out_qiov;
}
err += offset;
trace_v9fs_write_return(pdu->tag, pdu->id, total, err);
++++++ 0058-char-serial-check-divider-value-aga.patch ++++++
From 5a472227730f7f2465baf36716d755ced0300611 Mon Sep 17 00:00:00 2001
From: Prasad J Pandit
Date: Wed, 12 Oct 2016 11:28:08 +0530
Subject: [PATCH] char: serial: check divider value against baud base
16550A UART device uses an oscillator to generate frequencies
(baud base), which decide communication speed. This speed could
be changed by dividing it by a divider. If the divider is
greater than the baud base, speed is set to zero, leading to a
divide by zero error. Add check to avoid it.
Reported-by: Huawei PSIRT
Signed-off-by: Prasad J Pandit
Message-Id: <1476251888-20238-1-git-send-email-ppandit@redhat.com>
Signed-off-by: Paolo Bonzini
(cherry picked from commit 3592fe0c919cf27a81d8e9f9b4f269553418bb01)
[BR: CVE-2016-8669 BSC#1004707]
Signed-off-by: Bruce Rogers
---
hw/char/serial.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/char/serial.c b/hw/char/serial.c
index 3442f47..eec72b7 100644
--- a/hw/char/serial.c
+++ b/hw/char/serial.c
@@ -153,8 +153,9 @@ static void serial_update_parameters(SerialState *s)
int speed, parity, data_bits, stop_bits, frame_size;
QEMUSerialSetParams ssp;
- if (s->divider == 0)
+ if (s->divider == 0 || s->divider > s->baudbase) {
return;
+ }
/* Start bit. */
frame_size = 1;
++++++ 0059-net-pcnet-check-rx-tx-descriptor-ri.patch ++++++
From ac4e97299905661397882b588d6d2c08e5df65b0 Mon Sep 17 00:00:00 2001
From: Prasad J Pandit
Date: Fri, 30 Sep 2016 00:27:33 +0530
Subject: [PATCH] net: pcnet: check rx/tx descriptor ring length
The AMD PC-Net II emulator has set of control and status(CSR)
registers. Of these, CSR76 and CSR78 hold receive and transmit
descriptor ring length respectively. This ring length could range
from 1 to 65535. Setting ring length to zero leads to an infinite
loop in pcnet_rdra_addr() or pcnet_transmit(). Add check to avoid it.
Reported-by: Li Qiang
Signed-off-by: Prasad J Pandit
Signed-off-by: Jason Wang
(cherry picked from commit 34e29ce754c02bb6b3bdd244fbb85033460feaff)
[BR: CVE-2016-7909 BSC#1002557]
Signed-off-by: Bruce Rogers
---
hw/net/pcnet.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c
index 198a01f..3078de8 100644
--- a/hw/net/pcnet.c
+++ b/hw/net/pcnet.c
@@ -1429,8 +1429,11 @@ static void pcnet_csr_writew(PCNetState *s, uint32_t rap, uint32_t new_value)
case 47: /* POLLINT */
case 72:
case 74:
+ break;
case 76: /* RCVRL */
case 78: /* XMTRL */
+ val = (val > 0) ? val : 512;
+ break;
case 112:
if (CSR_STOP(s) || CSR_SPND(s))
break;
++++++ 0060-net-eepro100-fix-memory-leak-in-dev.patch ++++++
From c266d999085e07c2cbb9b59b9cf4e39c0c7e2ae0 Mon Sep 17 00:00:00 2001
From: Li Qiang
Date: Sat, 8 Oct 2016 05:07:25 -0700
Subject: [PATCH] net: eepro100: fix memory leak in device uninit
The exit dispatch of eepro100 network card device doesn't free
the 's->vmstate' field which was allocated in device realize thus
leading a host memory leak. This patch avoid this.
Signed-off-by: Li Qiang
Signed-off-by: Jason Wang
(cherry picked from commit 2634ab7fe29b3f75d0865b719caf8f310d634aae)
[BR: CVE-2016-9101 BSC#1007391]
Signed-off-by: Bruce Rogers
---
hw/net/eepro100.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/net/eepro100.c b/hw/net/eepro100.c
index bab4dbf..4bf71f2 100644
--- a/hw/net/eepro100.c
+++ b/hw/net/eepro100.c
@@ -1843,6 +1843,7 @@ static void pci_nic_uninit(PCIDevice *pci_dev)
EEPRO100State *s = DO_UPCAST(EEPRO100State, dev, pci_dev);
vmstate_unregister(&pci_dev->qdev, s->vmstate, s);
+ g_free(s->vmstate);
eeprom93xx_free(&pci_dev->qdev, s->eeprom);
qemu_del_nic(s->nic);
}
++++++ 0061-net-rocker-set-limit-to-DMA-buffer-.patch ++++++
From 9999bb270b68c8bfb82d37a52515cbbfdc7d900f Mon Sep 17 00:00:00 2001
From: Prasad J Pandit
Date: Wed, 12 Oct 2016 14:40:55 +0530
Subject: [PATCH] net: rocker: set limit to DMA buffer size
Rocker network switch emulator has test registers to help debug
DMA operations. While testing host DMA access, a buffer address
is written to register 'TEST_DMA_ADDR' and its size is written to
register 'TEST_DMA_SIZE'. When performing TEST_DMA_CTRL_INVERT
test, if DMA buffer size was greater than 'INT_MAX', it leads to
an invalid buffer access. Limit the DMA buffer size to avoid it.
Reported-by: Huawei PSIRT
Signed-off-by: Prasad J Pandit
Reviewed-by: Jiri Pirko
Signed-off-by: Jason Wang
(cherry picked from commit 8caed3d564672e8bc6d2e4c6a35228afd01f4723)
[BR: CVE-2016-8668 BSC#1004706]
Signed-off-by: Bruce Rogers
---
hw/net/rocker/rocker.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c
index 30f2ce4..e9d215a 100644
--- a/hw/net/rocker/rocker.c
+++ b/hw/net/rocker/rocker.c
@@ -860,7 +860,7 @@ static void rocker_io_writel(void *opaque, hwaddr addr, uint32_t val)
rocker_msix_irq(r, val);
break;
case ROCKER_TEST_DMA_SIZE:
- r->test_dma_size = val;
+ r->test_dma_size = val & 0xFFFF;
break;
case ROCKER_TEST_DMA_ADDR + 4:
r->test_dma_addr = ((uint64_t)val) << 32 | r->lower32;
++++++ 0062-net-vmxnet-initialise-local-tx-desc.patch ++++++
From d77a9e7e19bf1f4697445513df7b67a865bb6d8e Mon Sep 17 00:00:00 2001
From: Li Qiang
Date: Thu, 11 Aug 2016 00:42:20 +0530
Subject: [PATCH] net: vmxnet: initialise local tx descriptor
In Vmxnet3 device emulator while processing transmit(tx) queue,
when it reaches end of packet, it calls vmxnet3_complete_packet.
In that local 'txcq_descr' object is not initialised, which could
leak host memory bytes a guest.
Reported-by: Li Qiang
Signed-off-by: Prasad J Pandit
Reviewed-by: Dmitry Fleytman
Signed-off-by: Jason Wang
(cherry picked from commit fdda170e50b8af062cf5741e12c4fb5e57a2eacf)
[BR: CVE-2016-6836 BSC#994760]
Signed-off-by: Bruce Rogers
---
hw/net/vmxnet3.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
index 90f6943..92f6af9 100644
--- a/hw/net/vmxnet3.c
+++ b/hw/net/vmxnet3.c
@@ -531,6 +531,7 @@ static void vmxnet3_complete_packet(VMXNET3State *s, int qidx, uint32_t tx_ridx)
VMXNET3_RING_DUMP(VMW_RIPRN, "TXC", qidx, &s->txq_descr[qidx].comp_ring);
+ memset(&txcq_descr, 0, sizeof(txcq_descr));
txcq_descr.txdIdx = tx_ridx;
txcq_descr.gen = vmxnet3_ring_curr_gen(&s->txq_descr[qidx].comp_ring);
++++++ 0063-net-rtl8139-limit-processing-of-rin.patch ++++++
From 854b5adf363ebfb07ad0134079401d62cdf25b77 Mon Sep 17 00:00:00 2001
From: Prasad J Pandit
Date: Fri, 21 Oct 2016 17:39:29 +0530
Subject: [PATCH] net: rtl8139: limit processing of ring descriptors
RTL8139 ethernet controller in C+ mode supports multiple
descriptor rings, each with maximum of 64 descriptors. While
processing transmit descriptor ring in 'rtl8139_cplus_transmit',
it does not limit the descriptor count and runs forever. Add
check to avoid it.
Reported-by: Andrew Henderson
Signed-off-by: Prasad J Pandit
Signed-off-by: Jason Wang
(cherry picked from commit c7c35916692fe010fef25ac338443d3fe40be225)
[BR: CVE-2016-8910 BSC#1006538]
Signed-off-by: Bruce Rogers
---
hw/net/rtl8139.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/net/rtl8139.c b/hw/net/rtl8139.c
index 3345bc6..f05e59c 100644
--- a/hw/net/rtl8139.c
+++ b/hw/net/rtl8139.c
@@ -2350,7 +2350,7 @@ static void rtl8139_cplus_transmit(RTL8139State *s)
{
int txcount = 0;
- while (rtl8139_cplus_transmit_one(s))
+ while (txcount < 64 && rtl8139_cplus_transmit_one(s))
{
++txcount;
}
++++++ 0064-audio-intel-hda-check-stream-entry-.patch ++++++
From 1f01b4d6f3d3acc6d0fd5e809b0de4547f4815cc Mon Sep 17 00:00:00 2001
From: Prasad J Pandit
Date: Thu, 20 Oct 2016 13:10:24 +0530
Subject: [PATCH] audio: intel-hda: check stream entry count during transfer
Intel HDA emulator uses stream of buffers during DMA data
transfers. Each entry has buffer length and buffer pointer
position, which are used to derive bytes to 'copy'. If this
length and buffer pointer were to be same, 'copy' could be
set to zero(0), leading to an infinite loop. Add check to
avoid it.
Reported-by: Huawei PSIRT
Signed-off-by: Prasad J Pandit
Reviewed-by: Stefan Hajnoczi
Message-id: 1476949224-6865-1-git-send-email-ppandit@redhat.com
Signed-off-by: Gerd Hoffmann
(cherry picked from commit 0c0fc2b5fd534786051889459848764edd798050)
[BR: CVE-2016-8909 BSC#1006536]
Signed-off-by: Bruce Rogers
---
hw/audio/intel-hda.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/audio/intel-hda.c b/hw/audio/intel-hda.c
index cd95340..537face 100644
--- a/hw/audio/intel-hda.c
+++ b/hw/audio/intel-hda.c
@@ -416,7 +416,8 @@ static bool intel_hda_xfer(HDACodecDevice *dev, uint32_t stnr, bool output,
}
left = len;
- while (left > 0) {
+ s = st->bentries;
+ while (left > 0 && s-- > 0) {
copy = left;
if (copy > st->bsize - st->lpib)
copy = st->bsize - st->lpib;
++++++ 0065-virtio-gpu-fix-memory-leak-in-virti.patch ++++++
From 6562305928517bbc5b2a4525b8baddb58a510666 Mon Sep 17 00:00:00 2001
From: Li Qiang
Date: Sun, 18 Sep 2016 19:07:11 -0700
Subject: [PATCH] virtio-gpu: fix memory leak in virtio_gpu_resource_create_2d
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In virtio gpu resource create dispatch, if the pixman format is zero
it doesn't free the resource object allocated previously. Thus leading
a host memory leak issue. This patch avoid this.
Signed-off-by: Li Qiang
Reviewed-by: Marc-André Lureau
Message-id: 57df486e.8379240a.c3620.ff81@mx.google.com
Signed-off-by: Gerd Hoffmann
(cherry picked from commit cb3a0522b694cc5bb6424497b3f828ccd28fd1dd)
[BR: CVE-2016-7994 BSC#1003613]
Signed-off-by: Bruce Rogers
---
hw/display/virtio-gpu.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index 7fe6ed8..5b6d17b 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -333,6 +333,7 @@ static void virtio_gpu_resource_create_2d(VirtIOGPU *g,
qemu_log_mask(LOG_GUEST_ERROR,
"%s: host couldn't handle guest format %d\n",
__func__, c2d.format);
+ g_free(res);
cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER;
return;
}
++++++ 0066-9pfs-fix-integer-overflow-issue-in-.patch ++++++
From a3ada2d4bae5bd45ca8751f47fe59f71cf7355e7 Mon Sep 17 00:00:00 2001
From: Li Qiang
Date: Tue, 1 Nov 2016 12:00:40 +0100
Subject: [PATCH] 9pfs: fix integer overflow issue in xattr read/write
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The v9fs_xattr_read() and v9fs_xattr_write() are passed a guest
originated offset: they must ensure this offset does not go beyond
the size of the extended attribute that was set in v9fs_xattrcreate().
Unfortunately, the current code implement these checks with unsafe
calculations on 32 and 64 bit values, which may allow a malicious
guest to cause OOB access anyway.
Fix this by comparing the offset and the xattr size, which are
both uint64_t, before trying to compute the effective number of bytes
to read or write.
Suggested-by: Greg Kurz
Signed-off-by: Li Qiang
Reviewed-by: Greg Kurz
Reviewed-By: Guido Günther
Signed-off-by: Greg Kurz
(cherry picked from commit 7e55d65c56a03dcd2c5d7c49d37c5a74b55d4bd6)
[BR: CVE-2016-9104 BSC#1007493]
Signed-off-by: Bruce Rogers
---
hw/9pfs/9p.c | 32 ++++++++++++--------------------
1 file changed, 12 insertions(+), 20 deletions(-)
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index af07846..fc4f2cd 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -1628,20 +1628,17 @@ static int v9fs_xattr_read(V9fsState *s, V9fsPDU *pdu, V9fsFidState *fidp,
{
ssize_t err;
size_t offset = 7;
- int read_count;
- int64_t xattr_len;
+ uint64_t read_count;
V9fsVirtioState *v = container_of(s, V9fsVirtioState, state);
VirtQueueElement *elem = v->elems[pdu->idx];
- xattr_len = fidp->fs.xattr.len;
- read_count = xattr_len - off;
+ if (fidp->fs.xattr.len < off) {
+ read_count = 0;
+ } else {
+ read_count = fidp->fs.xattr.len - off;
+ }
if (read_count > max_count) {
read_count = max_count;
- } else if (read_count < 0) {
- /*
- * read beyond XATTR value
- */
- read_count = 0;
}
err = pdu_marshal(pdu, offset, "d", read_count);
if (err < 0) {
@@ -1969,23 +1966,18 @@ static int v9fs_xattr_write(V9fsState *s, V9fsPDU *pdu, V9fsFidState *fidp,
{
int i, to_copy;
ssize_t err = 0;
- int write_count;
- int64_t xattr_len;
+ uint64_t write_count;
size_t offset = 7;
- xattr_len = fidp->fs.xattr.len;
- write_count = xattr_len - off;
- if (write_count > count) {
- write_count = count;
- } else if (write_count < 0) {
- /*
- * write beyond XATTR value len specified in
- * xattrcreate
- */
+ if (fidp->fs.xattr.len < off) {
err = -ENOSPC;
goto out;
}
+ write_count = fidp->fs.xattr.len - off;
+ if (write_count > count) {
+ write_count = count;
+ }
err = pdu_marshal(pdu, offset, "d", write_count);
if (err < 0) {
return err;
++++++ 0067-dma-rc4030-limit-interval-timer-rel.patch ++++++
From 491b61b48cef566df12b5b2191111febd95d1a5c Mon Sep 17 00:00:00 2001
From: P J P
Date: Mon, 31 Oct 2016 15:55:14 -0600
Subject: [PATCH] dma: rc4030: limit interval timer reload value
The JAZZ RC4030 chipset emulator has a periodic timer and
associated interval reload register. The reload value is used
as divider when computing timer's next tick value. If reload
value is large, it could lead to divide by zero error. Limit
the interval reload value to avoid it.
Reported-by: Huawei PSIRT
Signed-off-by: Prasad J Pandit
[BR: CVE-2016-8667 BSC#1004702]
Signed-off-by: Bruce Rogers
---
hw/dma/rc4030.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/dma/rc4030.c b/hw/dma/rc4030.c
index 2f2576f..c1b4997 100644
--- a/hw/dma/rc4030.c
+++ b/hw/dma/rc4030.c
@@ -460,7 +460,7 @@ static void rc4030_write(void *opaque, hwaddr addr, uint64_t data,
break;
/* Interval timer reload */
case 0x0228:
- s->itr = val;
+ s->itr = val & 0x01FF;
qemu_irq_lower(s->timer_irq);
set_next_tick(s);
break;
++++++ 0068-net-imx-limit-buffer-descriptor-cou.patch ++++++
From b7f162a68696ea14af398de7584cfaf9f2de4509 Mon Sep 17 00:00:00 2001
From: P J P
Date: Mon, 31 Oct 2016 15:58:47 -0600
Subject: [PATCH] net: imx: limit buffer descriptor count
i.MX Fast Ethernet Controller uses buffer descriptors to manage
data flow to/fro receive & transmit queues. While transmitting
packets, it could continue to read buffer descriptors if a buffer
descriptor has length of zero and has crafted values in bd.flags.
Set an upper limit to number of buffer descriptors.
Reported-by: Li Qiang
Signed-off-by: Prasad J Pandit
[BR: CVE-2016-7907 BSC#1002549]
Signed-off-by: Bruce Rogers
---
hw/net/imx_fec.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c
index 1c415ab..1d74827 100644
--- a/hw/net/imx_fec.c
+++ b/hw/net/imx_fec.c
@@ -220,6 +220,8 @@ static const VMStateDescription vmstate_imx_eth = {
#define PHY_INT_PARFAULT (1 << 2)
#define PHY_INT_AUTONEG_PAGE (1 << 1)
+#define IMX_MAX_DESC 1024
+
static void imx_eth_update(IMXFECState *s);
/*
@@ -402,12 +404,12 @@ static void imx_eth_update(IMXFECState *s)
static void imx_fec_do_tx(IMXFECState *s)
{
- int frame_size = 0;
+ int frame_size = 0, descnt = 0;
uint8_t frame[ENET_MAX_FRAME_SIZE];
uint8_t *ptr = frame;
uint32_t addr = s->tx_descriptor;
- while (1) {
+ while (descnt++ < IMX_MAX_DESC) {
IMXFECBufDesc bd;
int len;
++++++ 0069-roms-Makefile-pass-a-packaging-time.patch ++++++
From 265aa090c4da5686ac3ed77285108606a79e4821 Mon Sep 17 00:00:00 2001
From: Bruce Rogers
Date: Sat, 19 Nov 2016 08:06:30 -0700
Subject: [PATCH] roms/Makefile: pass a packaging timestamp to subpackages with
date info
Certain rom subpackages build from qemu git-submodules call the date
program to include date information in the packaged binaries. This
causes repeated builds of the package to be different, wkere the only
real difference is due to the fact that time build timestamp has
changed. To promote reproducible builds and avoid customers being
prompted to update packages needlessly, we'll use the timestamp of the
VERSION file as the packaging timestamp for all packages that build in a
timestamp for whatever reason.
[BR: BSC#1011213]
Signed-off-by: Bruce Rogers
---
roms/Makefile | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/roms/Makefile b/roms/Makefile
index 88b3709..eb0640f 100644
--- a/roms/Makefile
+++ b/roms/Makefile
@@ -52,6 +52,12 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu-project.org"
#
EFIROM ?= $(shell which EfiRom 2>/dev/null)
+# NB: Certain SUSE qemu subpackages use date information, but we want
+# reproducible builds, so we use a pre-determined timestamp, rather
+# than the current timestamp to acheive consistent results build to
+# build.
+PACKAGING_TIMESTAMP = $(shell date -r ../VERSION +%s)
+
default:
@echo "nothing is build by default"
@echo "available build targets:"
@@ -105,7 +111,7 @@ build-lgplvgabios:
.PHONY: sgabios
sgabios:
- $(MAKE) -C sgabios
+ $(MAKE) -C sgabios PACKAGING_TIMESTAMP=$(PACKAGING_TIMESTAMP)
cp sgabios/sgabios.bin ../pc-bios
@@ -125,18 +131,22 @@ efi-rom-%: build-pxe-roms build-efi-roms
build-pxe-roms:
$(MAKE) -C ipxe/src CONFIG=qemu \
+ PACKAGING_TIMESTAMP=$(PACKAGING_TIMESTAMP) \
CROSS_COMPILE=$(x86_64_cross_prefix) \
$(patsubst %,bin/%.rom,$(pxerom_targets))
build-efi-roms: build-pxe-roms
$(MAKE) -C ipxe/src CONFIG=qemu \
+ PACKAGING_TIMESTAMP=$(PACKAGING_TIMESTAMP) \
CROSS_COMPILE=$(x86_64_cross_prefix) \
$(patsubst %,bin-i386-efi/%.efidrv,$(pxerom_targets)) \
$(patsubst %,bin-x86_64-efi/%.efidrv,$(pxerom_targets))
slof:
- $(MAKE) -C SLOF CROSS=$(powerpc64_cross_prefix) qemu
+ $(MAKE) -C SLOF CROSS=$(powerpc64_cross_prefix) \
+ PACKAGING_TIMESTAMP=$(PACKAGING_TIMESTAMP) \
+ qemu
cp SLOF/boot_rom.bin ../pc-bios/slof.bin
u-boot.e500:
++++++ ipxe-stable-buildid.patch ++++++
ipxe:Makefile: fix issues of build reproducibility
It is desirable to produce the same bits on subsequent
builds when the actual code of the package doesn't
change. (bsc#1011213)
Signed-off-by: Bruce Rogers
---
src/Makefile.housekeeping | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
--- a/src/Makefile.housekeeping
+++ b/src/Makefile.housekeeping
@@ -1079,11 +1079,18 @@ blib : $(BLIB)
# Command to generate build ID. Must be unique for each $(BIN)/%.tmp,
# even within the same build run.
#
-BUILD_ID_CMD := perl -e 'printf "0x%08x", int ( rand ( 0xffffffff ) );'
+# NB: In the case of the SUSE qemu-ipxe package we want reproducible
+# builds, so we just use the TGT_ROM_NAME variable, which is already
+# a unique (in the context of the files we generate) hex value suitable
+# for specifying the build_id. We no longer define a BUILD_ID_CMD, as
+# we need to use the TGT_ROM_NAME variable directly in the link command
# Build timestamp
#
-BUILD_TIMESTAMP := $(shell date +%s)
+# NB: In the case of the SUSE qemu-ipxe package we want reproducible
+# builds, so we use a pre-determined timestamp, rather than the current
+# timestamp
+BUILD_TIMESTAMP := $(PACKAGING_TIMESTAMP)
# Build version
#
@@ -1103,7 +1110,7 @@ $(BIN)/version.%.o : core/version.c $(MA
$(BIN)/%.tmp : $(BIN)/version.%.o $(BLIB) $(MAKEDEPS) $(LDSCRIPT)
$(QM)$(ECHO) " [LD] $@"
$(Q)$(LD) $(LDFLAGS) -T $(LDSCRIPT) $(TGT_LD_FLAGS) $< $(BLIB) -o $@ \
- --defsym _build_id=`$(BUILD_ID_CMD)` \
+ --defsym _build_id=`$(PRINTF) "0x%b" "$(TGT_ROM_NAME)"` \
--defsym _build_timestamp=$(BUILD_TIMESTAMP) \
-Map $(BIN)/$*.tmp.map
$(Q)$(OBJDUMP) -ht $@ | $(PERL) $(SORTOBJDUMP) >> $(BIN)/$*.tmp.map
++++++ kvm_stat ++++++
++++ 1195 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/qemu/kvm_stat
++++ and /work/SRC/openSUSE:Factory/.qemu.new/kvm_stat
++++++ qemu-2.6.1.tar.bz2 -> qemu-2.7.0.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/qemu/qemu-2.6.1.tar.bz2 /work/SRC/openSUSE:Factory/.qemu.new/qemu-2.7.0.tar.bz2 differ: char 11, line 1
++++++ qemu-linux-user.spec.in ++++++
--- /var/tmp/diff_new_pack.7N4b5K/_old 2017-01-19 10:36:44.933182135 +0100
+++ /var/tmp/diff_new_pack.7N4b5K/_new 2017-01-19 10:36:44.933182135 +0100
@@ -23,7 +23,7 @@
Group: System/Emulators/PC
QEMU_VERSION
Release: 0
-Source: http://wiki.qemu.org/download/qemu-2.6.1.tar.bz2
+Source: http://wiki.qemu.org/download/qemu-2.7.0.tar.bz2
# This patch queue is auto-generated from https://github.com/openSUSE/qemu
PATCH_FILES
# Please do not add patches manually here, run update_git.sh.
@@ -78,7 +78,7 @@
run cross-architecture builds.
%prep
-%setup -q -n qemu-2.6.1
+%setup -q -n qemu-2.7.0
PATCH_EXEC
%build
@@ -135,13 +135,13 @@
%install
make install DESTDIR=$RPM_BUILD_ROOT
rm -fr $RPM_BUILD_ROOT/%_datadir/doc
-rm -rf $RPM_BUILD_ROOT/%_mandir/man1/qemu.1
-rm -rf $RPM_BUILD_ROOT/%_mandir/man1/qemu-img.1
-rm -rf $RPM_BUILD_ROOT/%_mandir/man8/qemu-nbd.8
+rm -f $RPM_BUILD_ROOT/%_mandir/man1/qemu.1
+rm -f $RPM_BUILD_ROOT/%_mandir/man1/qemu-img.1
+rm -f $RPM_BUILD_ROOT/%_mandir/man8/qemu-nbd.8
rm -rf $RPM_BUILD_ROOT/%_datadir/qemu/keymaps
-rm -rf $RPM_BUILD_ROOT/%_datadir/qemu/trace-events
-rm -rf $RPM_BUILD_ROOT/%_sysconfdir/qemu/target-x86_64.conf
-rm -rf $RPM_BUILD_ROOT/%_libexecdir/qemu-bridge-helper
+rm -f $RPM_BUILD_ROOT/%_datadir/qemu/trace-events-all
+rm -f $RPM_BUILD_ROOT/%_sysconfdir/qemu/target-x86_64.conf
+rm -f $RPM_BUILD_ROOT/%_libexecdir/qemu-bridge-helper
install -d -m 755 $RPM_BUILD_ROOT/%_sbindir
install -m 755 scripts/qemu-binfmt-conf.sh $RPM_BUILD_ROOT/%_sbindir
%ifnarch %ix86 x86_64
++++++ qemu.spec.in ++++++
--- /var/tmp/diff_new_pack.7N4b5K/_old 2017-01-19 10:36:44.969177057 +0100
+++ /var/tmp/diff_new_pack.7N4b5K/_new 2017-01-19 10:36:44.969177057 +0100
@@ -44,7 +44,6 @@
%endif
%define noarch_supported 1110
-%if 0%{?is_opensuse} == 0
%ifarch x86_64
%if 0%{?suse_version} > 1320 || ( 0%{?suse_version} == 1315 && ( 0%{?is_opensuse} == 0 || 0%{?sle_version} > 120100 ) )
%define with_rbd 1
@@ -56,7 +55,6 @@
%define with_rbd 1
%endif
%endif
-%endif
%if 0%{?suse_version} > 1320
%define with_seccomp 1
@@ -66,6 +64,10 @@
%define with_seccomp 1
%endif
+%if 0%{?suse_version} >= 1140
+%define with_spice 1
+%endif
+
Name: qemu
Url: http://www.qemu.org/
Summary: Universal CPU emulator
@@ -73,8 +75,8 @@
Group: System/Emulators/PC
QEMU_VERSION
Release: 0
-Source: http://wiki.qemu.org/download/qemu-2.6.1.tar.bz2
-Source99: http://wiki.qemu.org/download/qemu-2.6.1.tar.bz2.sig
+Source: http://wiki.qemu.org/download/qemu-2.7.0.tar.bz2
+Source99: http://wiki.qemu.org/download/qemu-2.7.0.tar.bz2.sig
Source1: 80-kvm.rules
Source2: qemu-ifup
Source3: kvm_stat
@@ -92,20 +94,23 @@
# Run update_git.sh to regenerate this queue.
%if %{build_x86_fw_from_source}
-# SeaBIOS
+# SeaBIOS / SeaVGABIOS
# PATCH-FIX-OPENSUSE seabios_128kb.patch brogers@suse.com -- make it fit
Patch1000: seabios_128kb.patch
# ipxe
-Patch1100: ipxe-ath9k-Fix-buffer-overrun-for-ar9287.patch
-Patch1101: ipxe-mucurses-Fix-GCC-6-nonnull-compare-errors.patch
-Patch1102: ipxe-sis190-Fix-building-with-GCC-6.patch
-Patch1103: ipxe-skge-Fix-building-with-GCC-6.patch
-Patch1104: ipxe-ath-Fix-building-with-GCC-6.patch
-Patch1105: ipxe-legacy-Fix-building-with-GCC-6.patch
-Patch1106: ipxe-util-v5.24-perl-errors-on-redeclare.patch
-Patch1107: ipxe-efi-fix-garbage-bytes-in-device-path.patch
-Patch1108: ipxe-efi-fix-uninitialised-data-in-HII.patch
+# PATCH-FIX-OPENSUSE ipxe-stable-buildid.patch brogers@suse.com -- reproducible builds
+Patch1100: ipxe-stable-buildid.patch
+
+# sgabios
+# PATCH-FIX-OPENSUSE sgabios-stable-buildid.patch brogers@suse.com -- reproducible builds
+Patch1200: sgabios-stable-buildid.patch
+%endif
+
+%if %{build_slof_from_source}
+# SLOF
+# PATCH-FIX-UPSTREAM slof_xhci.patch afaerber@suse.de -- XHCI fixes
+Patch1300: slof_xhci.patch
%endif
# this is to make lint happy
@@ -196,6 +201,9 @@
%if 0%{?with_seccomp}
BuildRequires: libseccomp-devel
%endif
+%if 0%{?with_spice}
+BuildRequires: libspice-server-devel
+%endif
%if 0%{?suse_version} > 1140
BuildRequires: libssh2-devel
%endif
@@ -219,6 +227,9 @@
%if 0%{?suse_version} >= 1310
BuildRequires: snappy-devel
%endif
+%if 0%{?with_spice}
+BuildRequires: spice-protocol-devel
+%endif
%if 0%{?suse_version} >= 1210
BuildRequires: systemd
%{?systemd_requires}
@@ -253,12 +264,6 @@
BuildRequires: xz-devel
%endif
BuildRequires: zlib-devel
-%if 0%{?suse_version} >= 1140
-%ifarch %ix86 x86_64
-BuildRequires: libspice-server-devel
-BuildRequires: spice-protocol-devel
-%endif
-%endif
%if "%{name}" == "qemu-testsuite"
BuildRequires: bc
BuildRequires: qemu-arm = %version
@@ -277,6 +282,11 @@
%ifarch s390x
Requires(post): procps
%endif
+%if ! %{legacy_qemu_kvm}
+%if 0%{?suse_version} > 1320
+Recommends: kvm_stat
+%endif
+%endif
%endif
Recommends: qemu-block-curl
Recommends: qemu-tools
@@ -316,8 +326,8 @@
%endif
%ifarch x86_64
-%define x86_64_only_b_f_f {efi-e1000.rom efi-eepro100.rom \
-efi-pcnet.rom efi-ne2k_pci.rom efi-rtl8139.rom efi-virtio.rom}
+%define x86_64_only_b_f_f {efi-e1000.rom efi-e1000e.rom efi-eepro100.rom \
+efi-pcnet.rom efi-ne2k_pci.rom efi-rtl8139.rom efi-virtio.rom efi-vmxnet3.rom}
%endif
%define built_firmware_files {bios.bin bios-256k.bin sgabios.bin vgabios.bin \
vgabios-cirrus.bin vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin \
@@ -356,6 +366,8 @@
Summary: Universal CPU emulator -- Power Architecture
Group: System/Emulators/PC
Requires: qemu = %version
+Recommends: qemu-ipxe
+Recommends: qemu-vgabios
%description ppc
QEMU is an extremely well-performing CPU emulator that allows you to
@@ -384,6 +396,8 @@
Summary: Universal CPU emulator -- ARM
Group: System/Emulators/PC
Requires: qemu = %version
+Recommends: qemu-ipxe
+Recommends: qemu-vgabios
%description arm
QEMU is an extremely well-performing CPU emulator that allows you to
@@ -398,6 +412,8 @@
Summary: Universal CPU emulator -- extra architectures
Group: System/Emulators/PC
Requires: qemu = %version
+Recommends: qemu-ipxe
+Recommends: qemu-vgabios
%description extra
QEMU is an extremely well-performing CPU emulator that allows you to
@@ -421,6 +437,9 @@
%endif
Provides: kvm = %version
Obsoletes: kvm < %version
+%if 0%{?suse_version} > 1320
+Requires: kvm_stat
+%endif
Recommends: python-curses
%description kvm
@@ -667,7 +686,7 @@
%endif # !qemu-testsuite
%prep
-%setup -q -n qemu-2.6.1
+%setup -q -n qemu-2.7.0
PATCH_EXEC
%if %{build_x86_fw_from_source}
@@ -676,16 +695,10 @@
popd
pushd roms/ipxe
%patch1100 -p1
-%patch1101 -p1
-%patch1102 -p1
-%patch1103 -p1
-%patch1104 -p1
-%patch1105 -p1
-%patch1106 -p1
-%patch1107 -p1
-%patch1108 -p1
popd
-
+pushd roms/sgabios
+%patch1200 -p1
+popd
# as a safeguard, delete the firmware files that we intend to build
for i in %built_firmware_files
@@ -695,10 +708,14 @@
%endif
%if %{build_slof_from_source}
+pushd roms/SLOF
+%patch1300 -p1
+popd
rm -f pc-bios/slof.bin
%endif
%build
+echo '%{version}' > roms/seabios/.version
./configure \
--prefix=%_prefix \
--sysconfdir=%_sysconfdir \
@@ -746,6 +763,7 @@
%else
--with-gtkabi=2.0 \
%endif
+ --disable-jemalloc \
%if %{kvm_available}
--enable-kvm \
%else
@@ -813,15 +831,12 @@
%else
--disable-snappy \
%endif
-%if 0%{?suse_version} >= 1140
-%ifarch %ix86 x86_64
+%if 0%{?with_spice}
--enable-spice \
%else
--disable-spice \
%endif
-%else
- --disable-spice \
-%endif
+ --disable-tcmalloc \
--enable-tpm \
%if 0%{?sles_version} != 11
--enable-usb-redir \
@@ -974,7 +989,9 @@
chmod 644 %{buildroot}%{_sysconfdir}/sysctl.d/50-allow-kvm-on-s390x
%endif
install -D -m 755 %{SOURCE2} %{buildroot}/usr/share/qemu/qemu-ifup
+%if 0%{?suse_version} <= 1320
install -D -m 755 %{SOURCE3} %{buildroot}%{_bindir}/kvm_stat
+%endif
install -D -m 644 %{SOURCE4} %{buildroot}%{_mandir}/man1/qemu-kvm.1.gz
%endif
%if %{kvm_available}
@@ -1083,7 +1100,7 @@
%doc %_mandir/man1/qemu.1.gz
%dir %_datadir/%name
%_datadir/%name/keymaps
-%_datadir/%name/trace-events
+%_datadir/%name/trace-events-all
%_datadir/%name/qemu-icon.bmp
%_datadir/%name/qemu_logo_no_text.svg
%dir %_sysconfdir/%name
@@ -1108,6 +1125,7 @@
%_bindir/qemu-system-x86_64
%_datadir/%name/kvmvapic.bin
%_datadir/%name/linuxboot.bin
+%_datadir/%name/linuxboot_dma.bin
%_datadir/%name/multiboot.bin
%files ppc
@@ -1166,7 +1184,9 @@
%files kvm
%defattr(-,root,root)
%_bindir/qemu-kvm
+%if 0%{?suse_version} <= 1320
%_bindir/kvm_stat
+%endif
%_datadir/qemu/qemu-ifup
%_mandir/man1/qemu-kvm.1.gz
%endif
@@ -1236,11 +1256,13 @@
%_datadir/%name/pxe-rtl8139.rom
%_datadir/%name/pxe-virtio.rom
%_datadir/%name/efi-e1000.rom
+%_datadir/%name/efi-e1000e.rom
%_datadir/%name/efi-eepro100.rom
%_datadir/%name/efi-pcnet.rom
%_datadir/%name/efi-ne2k_pci.rom
%_datadir/%name/efi-rtl8139.rom
%_datadir/%name/efi-virtio.rom
+%_datadir/%name/efi-vmxnet3.rom
%endif
%files tools
++++++ sgabios-stable-buildid.patch ++++++
sgabios:Makefile: fix issues of build reproducibility
It is desirable to produce the same bits on subsequent
builds when the actual code of the package doesn't
change. (bsc#1011213)
Signed-off-by: Bruce Rogers
Signed-off-by: Andreas Färber
---
Makefile | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/Makefile
+++ b/Makefile
@@ -14,10 +14,10 @@
#
# $Id$
-BUILD_DATE = \"$(shell date -u)\"
-BUILD_SHORT_DATE = \"$(shell date -u +%D)\"
-BUILD_HOST = \"$(shell hostname)\"
-BUILD_USER = \"$(shell whoami)\"
+BUILD_DATE = \"$(shell date --date='@$(PACKAGING_TIMESTAMP)' -u)\"
+BUILD_SHORT_DATE = \"$(shell date --date='@$(PACKAGING_TIMESTAMP)' -u +%D)\"
+BUILD_HOST = \"buildhost\"
+BUILD_USER = \"geeko\"
CFLAGS := -Wall -Os -m32 -nostdlib
++++++ slof_xhci.patch ++++++
From ca8fb51e05feca057721d72cb194cd0636c73847 Mon Sep 17 00:00:00 2001
From: Nikunj A Dadhania
Date: Mon, 2 May 2016 10:16:44 +0530
Subject: [PATCH] xhci: fix missing keys from keyboard
Current handling of the keyboard polling was very slow and
keys were getting dropped. Done following for fixing this:
* Use multiple buffers per TRB
* Allocate buffers in xhci according to the number of TRBS.
This reduces the delay of key? processing by getting rid of wait in
the polling routine.
Reported-by: Dinar Valeev
Signed-off-by: Nikunj A Dadhania
Tested-by: Dinar Valeev
Tested-by: Thomas Huth
Signed-off-by: Alexey Kardashevskiy
---
lib/libusb/usb-xhci.c | 51 +++++++++++++++++++++++++++++++++++++-----------
lib/libusb/usb-xhci.h | 2 +
2 files changed, 41 insertions(+), 12 deletions(-)
diff --git a/lib/libusb/usb-xhci.c b/lib/libusb/usb-xhci.c
index 070c2ef..3bbc9af 100644
--- a/lib/libusb/usb-xhci.c
+++ b/lib/libusb/usb-xhci.c
@@ -238,7 +238,7 @@ static uint64_t xhci_poll_event(struct xhci_hcd *xhcd,
flags = le32_to_cpu(event->flags);
dprintf("Reading from event ptr %p %08x\n", event, flags);
- time = SLOF_GetTimer() + USB_TIMEOUT;
+ time = SLOF_GetTimer() + ((event_type == XHCI_POLL_NO_WAIT)? 0: USB_TIMEOUT);
while ((flags & TRB_CYCLE_STATE) != xhcd->ering.cycle_state) {
mb();
@@ -1148,11 +1148,36 @@ static inline void *xhci_get_trb(struct xhci_seg *seg)
return (void *)enq;
}
+static inline void *xhci_get_trb_deq(struct xhci_seg *seg)
+{
+ uint64_t deq_next, deq;
+ int index;
+
+ deq = seg->deq;
+ deq_next = deq + XHCI_TRB_SIZE;
+ index = (deq - (uint64_t)seg->trbs) / XHCI_TRB_SIZE + 1;
+ dprintf("%s: deq %llx, deq_next %llx index %x\n", __func__, deq, deq_next, index);
+ /* TRBs being a cyclic buffer, here we cycle back to beginning. */
+ if (index == (seg->size - 1)) {
+ dprintf("%s: rounding \n", __func__);
+ seg->deq = (uint64_t)seg->trbs;
+ }
+ else {
+ seg->deq = deq_next;
+ }
+ return (void *)deq;
+}
+
static uint64_t xhci_get_trb_phys(struct xhci_seg *seg, uint64_t trb)
{
return seg->trbs_dma + (trb - (uint64_t)seg->trbs);
}
+static uint32_t xhci_trb_get_index(struct xhci_seg *seg, struct xhci_transfer_trb *trb)
+{
+ return trb - (struct xhci_transfer_trb *)seg->trbs;
+}
+
static int usb_kb = false;
static int xhci_transfer_bulk(struct usb_pipe *pipe, void *td, void *td_phys,
void *data, int datalen)
@@ -1332,9 +1357,9 @@ static int xhci_get_pipe_intr(struct usb_pipe *pipe,
xhci_init_seg(seg, XHCI_EVENT_TRBS_SIZE, TYPE_BULK);
}
- xpipe->buf = buf;
- xpipe->buf_phys = SLOF_dma_map_in(buf, len, false);
- xpipe->buflen = len;
+ xpipe->buflen = pipe->mps * XHCI_INTR_TRBS_SIZE/(sizeof(struct xhci_transfer_trb));
+ xpipe->buf = SLOF_dma_alloc(xpipe->buflen);
+ xpipe->buf_phys = SLOF_dma_map_in(xpipe->buf, xpipe->buflen, false);
ctrl = xhci_get_control_ctx(&xdev->in_ctx);
x_epno = xhci_get_epno(pipe);
@@ -1350,7 +1375,8 @@ static int xhci_get_pipe_intr(struct usb_pipe *pipe,
xpipe->seg = seg;
trb = xhci_get_trb(seg);
- fill_normal_trb(trb, (void *)xpipe->buf_phys, pipe->mps);
+ buf = (char *)(xpipe->buf_phys + xhci_trb_get_index(seg, trb) * pipe->mps);
+ fill_normal_trb(trb, (void *)buf, pipe->mps);
return true;
}
@@ -1412,6 +1438,7 @@ static void xhci_put_pipe(struct usb_pipe *pipe)
} else if (pipe->type == USB_EP_TYPE_INTR) {
xpipe = xhci_pipe_get_xpipe(pipe);
SLOF_dma_map_out(xpipe->buf_phys, xpipe->buf, xpipe->buflen);
+ SLOF_dma_free(xpipe->buf, xpipe->buflen);
xpipe->seg = NULL;
}
if (xhcd->end)
@@ -1449,26 +1476,26 @@ static int xhci_poll_intr(struct usb_pipe *pipe, uint8_t *data)
if (usb_kb == true) {
/* This event was consumed by bulk transfer */
usb_kb = false;
+ xhci_get_trb_deq(seg);
goto skip_poll;
}
- buf = xpipe->buf;
- memset(buf, 0, 8);
- mb();
/* Ring the doorbell - x_epno */
dbr = xhcd->db_regs;
write_reg32(&dbr->db[xdev->slot_id], x_epno);
- if (!xhci_poll_event(xhcd, 0)) {
- printf("poll intr failed\n");
+ if (!xhci_poll_event(xhcd, XHCI_POLL_NO_WAIT)) {
return 0;
}
mb();
+ trb = xhci_get_trb_deq(seg);
+ buf = xpipe->buf + xhci_trb_get_index(seg, trb) * pipe->mps;
memcpy(data, buf, 8);
+ memset(buf, 0, 8);
skip_poll:
trb = xhci_get_trb(seg);
- fill_normal_trb(trb, (void *)xpipe->buf_phys, pipe->mps);
- mb();
+ buf = (uint8_t *)(xpipe->buf_phys + xhci_trb_get_index(seg, trb) * pipe->mps);
+ fill_normal_trb(trb, (void *)buf, pipe->mps);
return ret;
}
diff --git a/lib/libusb/usb-xhci.h b/lib/libusb/usb-xhci.h
index 3fc7e78..8172a37 100644
--- a/lib/libusb/usb-xhci.h
+++ b/lib/libusb/usb-xhci.h
@@ -269,6 +269,8 @@ struct xhci_seg {
#define XHCI_INTR_TRBS_SIZE 4096
#define XHCI_ERST_NUM_SEGS 1
+#define XHCI_POLL_NO_WAIT 1
+
#define XHCI_MAX_BULK_SIZE 0xF000
struct xhci_erst_entry {
--
1.7.0.4
++++++ update_git.sh ++++++
--- /var/tmp/diff_new_pack.7N4b5K/_old 2017-01-19 10:36:45.005171980 +0100
+++ /var/tmp/diff_new_pack.7N4b5K/_new 2017-01-19 10:36:45.009171416 +0100
@@ -13,8 +13,8 @@
GIT_TREE=git://github.com/openSUSE/qemu.git
GIT_LOCAL_TREE=~/git/qemu-opensuse
-GIT_BRANCH=opensuse-2.6
-GIT_UPSTREAM_TAG=v2.6.1
+GIT_BRANCH=opensuse-2.7
+GIT_UPSTREAM_TAG=v2.7.0
GIT_DIR=/dev/shm/qemu-factory-git-dir
CMP_DIR=/dev/shm/qemu-factory-cmp-dir