{"push_id":583893289,"size":7,"distinct_size":7,"ref":"refs/heads/stable-2.2-staging","head":"a97f9a7ec720d6f141cf4ee825f5c54c48747457","before":"251868f617fb58b2e0458956d493fc035739c89d","commits":[{"sha":"4d49de6b6f9b45446dd31990a177b13953f2e842","author":{"email":"7469de9b95ba379e2656fa9677689657c47a7690@redhat.com","name":"Alex Williamson"},"message":"vfio-pci: Fix missing unparent of dynamically allocated MemoryRegion\n\nCommit d8d95814609e added explicit object_unparent() calls for\ndynamically allocated MemoryRegions.  The VFIOMSIXInfo structure also\ncontains such a MemoryRegion, covering the mmap'd region of a PCI BAR\nabove the MSI-X table.  This structure is freed as part of the class\nexit function and therefore also needs an explicit object_unparent().\nFailing to do this results in random segfaults due to fields within\nthe structure, often the class pointer, being reclaimed and corrupted\nby the time object_finalize_child_property() is called for the object.\n\nSigned-off-by: Alex Williamson <alex.williamson@redhat.com>\nReviewed-by: Paolo Bonzini <pbonzini@redhat.com>\nCc: qemu-stable@nongnu.org # 2.2\n(cherry picked from commit 3a4dbe6aa934370a92372528c1255ee1504965ee)\nSigned-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>","distinct":true,"url":"https://api.github.com/repos/mdroth/qemu/commits/4d49de6b6f9b45446dd31990a177b13953f2e842"},{"sha":"a9eb2b60538e2cb48cc71824d2c6239a8aa85cb8","author":{"email":"69d3ebcf5ee4e7f05a50dc23cd96655b730804b4@redhat.com","name":"Paolo Bonzini"},"message":"qemu-thread: fix qemu_event without futexes\n\nThis had a possible deadlock that was visible with rcutorture.\n\n    qemu_event_set                    qemu_event_wait\n    ----------------------------------------------------------------\n                                      cmpxchg reads FREE, writes BUSY\n                                      futex_wait: pthread_mutex_lock\n                                      futex_wait: value == BUSY\n    xchg reads BUSY, writes SET\n    futex_wake: pthread_cond_broadcast\n                                      futex_wait: pthread_cond_wait\n                                      <deadlock>\n\nThe fix is simply to avoid condvar tricks and do the obvious locking\naround pthread_cond_broadcast:\n\n    qemu_event_set        qemu_event_wait\n    ----------------------------------------------------------------\n                                      cmpxchg reads FREE, writes BUSY\n                                      futex_wait: pthread_mutex_lock\n                                      futex_wait: value == BUSY\n    xchg reads BUSY, writes SET\n    futex_wake: pthread_mutex_lock\n    (blocks)\n                                      futex_wait: pthread_cond_wait\n    (mutex unlocked)\n    futex_wake: pthread_cond_broadcast\n    futex_wake: pthread_mutex_unlock\n                                      futex_wait: pthread_mutex_unlock\n\nCc: qemu-stable@nongnu.org\nSigned-off-by: Paolo Bonzini <pbonzini@redhat.com>\n(cherry picked from commit 158ef8cbb7e0fe8bb430310924b8bebe5f186e6e)\nSigned-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>","distinct":true,"url":"https://api.github.com/repos/mdroth/qemu/commits/a9eb2b60538e2cb48cc71824d2c6239a8aa85cb8"},{"sha":"6833856e868d752fe7d70302c7fc550272ff2679","author":{"email":"bb938cf255e055ff3507f2627d214e8e62118fcf@redhat.com","name":"Daniel P. Berrange"},"message":"libcacard: stop linking against every single 3rd party library\n\nBuilding QEMU results in a libcacard.so that links against\npractically the entire world\n\n\tlinux-vdso.so.1 =>  (0x00007fff71e99000)\n\tlibssl3.so => /usr/lib64/libssl3.so (0x00007f49f94b6000)\n\tlibsmime3.so => /usr/lib64/libsmime3.so (0x00007f49f928e000)\n\tlibnss3.so => /usr/lib64/libnss3.so (0x00007f49f8f67000)\n\tlibnssutil3.so => /usr/lib64/libnssutil3.so (0x00007f49f8d3b000)\n\tlibplds4.so => /usr/lib64/libplds4.so (0x00007f49f8b36000)\n\tlibplc4.so => /usr/lib64/libplc4.so (0x00007f49f8931000)\n\tlibnspr4.so => /usr/lib64/libnspr4.so (0x00007f49f86f2000)\n\tlibdl.so.2 => /usr/lib64/libdl.so.2 (0x00007f49f84ed000)\n\tlibm.so.6 => /usr/lib64/libm.so.6 (0x00007f49f81e5000)\n\tlibgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f49f7fe3000)\n\tlibrt.so.1 => /usr/lib64/librt.so.1 (0x00007f49f7dda000)\n\tlibz.so.1 => /usr/lib64/libz.so.1 (0x00007f49f7bc4000)\n\tlibcap-ng.so.0 => /usr/lib64/libcap-ng.so.0 (0x00007f49f79be000)\n\tlibuuid.so.1 => /usr/lib64/libuuid.so.1 (0x00007f49f77b8000)\n\tlibgnutls.so.28 => /usr/lib64/libgnutls.so.28 (0x00007f49f749a000)\n\tlibSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007f49f71fd000)\n\tlibpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007f49f6fe0000)\n\tlibvte.so.9 => /usr/lib64/libvte.so.9 (0x00007f49f6d3f000)\n\tlibXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f49f6b2d000)\n\tlibgtk-x11-2.0.so.0 => /usr/lib64/libgtk-x11-2.0.so.0 (0x00007f49f64a0000)\n\tlibgdk-x11-2.0.so.0 => /usr/lib64/libgdk-x11-2.0.so.0 (0x00007f49f61de000)\n\tlibpangocairo-1.0.so.0 => /usr/lib64/libpangocairo-1.0.so.0 (0x00007f49f5fd1000)\n\tlibatk-1.0.so.0 => /usr/lib64/libatk-1.0.so.0 (0x00007f49f5daa000)\n\tlibcairo.so.2 => /usr/lib64/libcairo.so.2 (0x00007f49f5a9d000)\n\tlibgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0 (0x00007f49f5878000)\n\tlibgio-2.0.so.0 => /usr/lib64/libgio-2.0.so.0 (0x00007f49f5500000)\n\tlibpangoft2-1.0.so.0 => /usr/lib64/libpangoft2-1.0.so.0 (0x00007f49f52eb000)\n\tlibpango-1.0.so.0 => /usr/lib64/libpango-1.0.so.0 (0x00007f49f50a0000)\n\tlibgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007f49f4e4e000)\n\tlibglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f49f4b15000)\n\tlibfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f49f48d6000)\n\tlibfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f49f462b000)\n\tlibX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f49f42e8000)\n\tlibxenstore.so.3.0 => /usr/lib64/libxenstore.so.3.0 (0x00007f49f40de000)\n\tlibxenctrl.so.4.4 => /usr/lib64/libxenctrl.so.4.4 (0x00007f49f3eb6000)\n\tlibxenguest.so.4.4 => /usr/lib64/libxenguest.so.4.4 (0x00007f49f3c8b000)\n\tlibseccomp.so.2 => /usr/lib64/libseccomp.so.2 (0x00007f49f3a74000)\n\tlibrdmacm.so.1 => /usr/lib64/librdmacm.so.1 (0x00007f49f385d000)\n\tlibibverbs.so.1 => /usr/lib64/libibverbs.so.1 (0x00007f49f364a000)\n\tlibutil.so.1 => /usr/lib64/libutil.so.1 (0x00007f49f3447000)\n\tlibc.so.6 => /usr/lib64/libc.so.6 (0x00007f49f3089000)\n\t/lib64/ld-linux-x86-64.so.2 (0x00007f49f9902000)\n\tlibp11-kit.so.0 => /usr/lib64/libp11-kit.so.0 (0x00007f49f2e23000)\n\tlibtspi.so.1 => /usr/lib64/libtspi.so.1 (0x00007f49f2bb2000)\n\tlibtasn1.so.6 => /usr/lib64/libtasn1.so.6 (0x00007f49f299f000)\n\tlibnettle.so.4 => /usr/lib64/libnettle.so.4 (0x00007f49f276d000)\n\tlibhogweed.so.2 => /usr/lib64/libhogweed.so.2 (0x00007f49f2545000)\n\tlibgmp.so.10 => /usr/lib64/libgmp.so.10 (0x00007f49f22cd000)\n\tlibncurses.so.5 => /usr/lib64/libncurses.so.5 (0x00007f49f20a5000)\n\tlibtinfo.so.5 => /usr/lib64/libtinfo.so.5 (0x00007f49f1e7a000)\n\tlibgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007f49f1c76000)\n\tlibXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007f49f1a6f000)\n\tlibXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007f49f1865000)\n\tlibXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00007f49f1662000)\n\tlibXi.so.6 => /usr/lib64/libXi.so.6 (0x00007f49f1452000)\n\tlibXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007f49f1247000)\n\tlibXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007f49f103c000)\n\tlibXcomposite.so.1 => /usr/lib64/libXcomposite.so.1 (0x00007f49f0e39000)\n\tlibXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007f49f0c35000)\n\tlibharfbuzz.so.0 => /usr/lib64/libharfbuzz.so.0 (0x00007f49f09dd000)\n\tlibpixman-1.so.0 => /usr/lib64/libpixman-1.so.0 (0x00007f49f072f000)\n\tlibEGL.so.1 => /usr/lib64/libEGL.so.1 (0x00007f49f0505000)\n\tlibpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007f49f02d2000)\n\tlibxcb-shm.so.0 => /usr/lib64/libxcb-shm.so.0 (0x00007f49f00cd000)\n\tlibxcb-render.so.0 => /usr/lib64/libxcb-render.so.0 (0x00007f49efec3000)\n\tlibxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f49efca1000)\n\tlibGL.so.1 => /usr/lib64/libGL.so.1 (0x00007f49efa06000)\n\tlibffi.so.6 => /usr/lib64/libffi.so.6 (0x00007f49ef7fe000)\n\tlibselinux.so.1 => /usr/lib64/libselinux.so.1 (0x00007f49ef5d8000)\n\tlibresolv.so.2 => /usr/lib64/libresolv.so.2 (0x00007f49ef3be000)\n\tlibexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007f49ef193000)\n\tlibbz2.so.1 => /usr/lib64/libbz2.so.1 (0x00007f49eef83000)\n\tlibgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007f49eed6c000)\n\tliblzma.so.5 => /usr/lib64/liblzma.so.5 (0x00007f49eeb46000)\n\tlibnl-route-3.so.200 => /usr/lib64/libnl-route-3.so.200 (0x00007f49ee8e2000)\n\tlibnl-3.so.200 => /usr/lib64/libnl-3.so.200 (0x00007f49ee6c4000)\n\tlibcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f49ee2d6000)\n\tlibssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f49ee067000)\n\tlibgraphite2.so.3 => /usr/lib64/libgraphite2.so.3 (0x00007f49ede48000)\n\tlibX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x00007f49edc46000)\n\tlibxcb-dri2.so.0 => /usr/lib64/libxcb-dri2.so.0 (0x00007f49eda41000)\n\tlibxcb-xfixes.so.0 => /usr/lib64/libxcb-xfixes.so.0 (0x00007f49ed838000)\n\tlibxcb-shape.so.0 => /usr/lib64/libxcb-shape.so.0 (0x00007f49ed634000)\n\tlibgbm.so.1 => /usr/lib64/libgbm.so.1 (0x00007f49ed426000)\n\tlibwayland-client.so.0 => /usr/lib64/libwayland-client.so.0 (0x00007f49ed217000)\n\tlibwayland-server.so.0 => /usr/lib64/libwayland-server.so.0 (0x00007f49ed005000)\n\tlibglapi.so.0 => /usr/lib64/libglapi.so.0 (0x00007f49ecddb000)\n\tlibdrm.so.2 => /usr/lib64/libdrm.so.2 (0x00007f49ecbce000)\n\tlibXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f49ec9ca000)\n\tlibxcb-glx.so.0 => /usr/lib64/libxcb-glx.so.0 (0x00007f49ec7b0000)\n\tlibxcb-dri3.so.0 => /usr/lib64/libxcb-dri3.so.0 (0x00007f49ec5ad000)\n\tlibxcb-present.so.0 => /usr/lib64/libxcb-present.so.0 (0x00007f49ec3aa000)\n\tlibxcb-randr.so.0 => /usr/lib64/libxcb-randr.so.0 (0x00007f49ec19b000)\n\tlibxcb-sync.so.1 => /usr/lib64/libxcb-sync.so.1 (0x00007f49ebf94000)\n\tlibxshmfence.so.1 => /usr/lib64/libxshmfence.so.1 (0x00007f49ebd91000)\n\tlibXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x00007f49ebb8a000)\n\tlibpcre.so.1 => /usr/lib64/libpcre.so.1 (0x00007f49eb91d000)\n\tlibgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00007f49eb6cf000)\n\tlibkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00007f49eb3ec000)\n\tlibcom_err.so.2 => /usr/lib64/libcom_err.so.2 (0x00007f49eb1e8000)\n\tlibk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x00007f49eafb4000)\n\tlibkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x00007f49eada5000)\n\tlibkeyutils.so.1 => /usr/lib64/libkeyutils.so.1 (0x00007f49eaba0000)\n\nAll libcacard actually needs are the NSS libs. Linking against the entire\nworld is a regression caused by\n\n  commit 9d171bd9375e4d08feff9adda15163e0811f5f42\n  Author: Michael Tokarev <mjt@tls.msk.ru>\n  Date:   Thu May 8 16:48:27 2014 +0400\n\n    libcacard: remove libcacard-specific CFLAGS and LIBS from global vars\n\nWhich removed the setting of the LIBS variable in libcacard/Makefile.\n\nAdding it back as an empty assignment brings the linked libs back to a more\nreasonable set\n\n\tlinux-vdso.so.1 =>  (0x00007fff575c1000)\n\tlibssl3.so => /usr/lib64/libssl3.so (0x00007f7f753b1000)\n\tlibsmime3.so => /usr/lib64/libsmime3.so (0x00007f7f75189000)\n\tlibnss3.so => /usr/lib64/libnss3.so (0x00007f7f74e62000)\n\tlibnssutil3.so => /usr/lib64/libnssutil3.so (0x00007f7f74c36000)\n\tlibplds4.so => /usr/lib64/libplds4.so (0x00007f7f74a31000)\n\tlibplc4.so => /usr/lib64/libplc4.so (0x00007f7f7482c000)\n\tlibnspr4.so => /usr/lib64/libnspr4.so (0x00007f7f745ed000)\n\tlibpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007f7f743d0000)\n\tlibdl.so.2 => /usr/lib64/libdl.so.2 (0x00007f7f741cc000)\n\tlibgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f7f73fca000)\n\tlibglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f7f73c90000)\n\tlibc.so.6 => /usr/lib64/libc.so.6 (0x00007f7f738d3000)\n\tlibz.so.1 => /usr/lib64/libz.so.1 (0x00007f7f736bd000)\n\tlibrt.so.1 => /usr/lib64/librt.so.1 (0x00007f7f734b4000)\n\t/lib64/ld-linux-x86-64.so.2 (0x00007f7f757fd000)\n\nSigned-off-by: Daniel P. Berrange <berrange@redhat.com>\nCc: <qemu-stable@nongnu.org>\nReviewed-by: Paolo Bonzini <pbonzini@redhat.com>\nSigned-off-by: Michael Tokarev <mjt@tls.msk.ru>\n(cherry picked from commit b41112c46b93f781669c0eb89e51d3a87af6bb49)\nSigned-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>","distinct":true,"url":"https://api.github.com/repos/mdroth/qemu/commits/6833856e868d752fe7d70302c7fc550272ff2679"},{"sha":"2a020d29dff124003728d517c1896ed6f14a53d6","author":{"email":"c19aaa755cdd45352183c03d238d269a79ffea33@sangfor.com.cn","name":"Zhang Haoyu"},"message":"fix mc146818rtc wrong subsection name to avoid vmstate_subsection_load() fail\n\nfix mc146818rtc wrong subsection name to avoid vmstate_subsection_load() fail\nduring incoming migration or loadvm.\n\nSigned-off-by: Zhang Haoyu <zhanghy@sangfor.com.cn>\nReviewed-by: Paolo Bonzini <pbonzini@redhat.com>\nSigned-off-by: Juan Quintela <quintela@redhat.com>\n(cherry picked from commit bb426311901776b95b021cece831b69dce4ef5ee)\nSigned-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>","distinct":true,"url":"https://api.github.com/repos/mdroth/qemu/commits/2a020d29dff124003728d517c1896ed6f14a53d6"},{"sha":"7d389a2138a3b31895cf40300d052eda71ef0722","author":{"email":"4b8373d016f277527198385ba72fda0feb5da015@lekensteyn.nl","name":"Peter Wu"},"message":"block/iscsi: fix uninitialized variable\n\n'ret' was never initialized in the success path.\n\nSigned-off-by: Peter Wu <peter@lekensteyn.nl>\nSigned-off-by: Paolo Bonzini <pbonzini@redhat.com>\n(cherry picked from commit debfb917a4f9c0784772c86f110f2bcd22e5a14f)\nSigned-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>","distinct":true,"url":"https://api.github.com/repos/mdroth/qemu/commits/7d389a2138a3b31895cf40300d052eda71ef0722"},{"sha":"987aba53db2e9e62e3f0ae0c22aa0381a735e282","author":{"email":"df9fd617995bad07eac70e27aa3fe5069270e3bd@redhat.com","name":"Fam Zheng"},"message":"qtest: Fix deadloop by running main loop AIO context's timers\n\nqemu_clock_run_timers() only takes care of main_loop_tlg, we shouldn't\nforget aio timer list groups.\n\nCurrently, the qemu_clock_deadline_ns_all (a few lines above) counts all\nthe timergroups of this clock type, including aio tlg, but we don't fire\nthem, so they are never cleared, which makes a dead loop.\n\nFor example, this function hangs when trying to drive throttled block\nrequest queue with qtest clock_step.\n\nSigned-off-by: Fam Zheng <famz@redhat.com>\nAcked-by: Paolo Bonzini <pbonzini@redhat.com>\nMessage-id: 1421661103-29153-1-git-send-email-famz@redhat.com\nSigned-off-by: Stefan Hajnoczi <stefanha@redhat.com>\n(cherry picked from commit efef88b3d9ad4325172ed288032807fa88d683cc)\nSigned-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>","distinct":true,"url":"https://api.github.com/repos/mdroth/qemu/commits/987aba53db2e9e62e3f0ae0c22aa0381a735e282"},{"sha":"a97f9a7ec720d6f141cf4ee825f5c54c48747457","author":{"email":"69d3ebcf5ee4e7f05a50dc23cd96655b730804b4@redhat.com","name":"Paolo Bonzini"},"message":"exec: change default exception_index value for migration to -1\n\nIn QEMU 2.2 the exception_index value was added to the migration stream\nthrough a subsection.  The default was set to 0, which is wrong and\nshould have been -1.\n\nHowever, 2.2 does not have commit e511b4d (cpu-exec: reset exception_index\ncorrectly, 2014-11-26), hence in 2.2 the exception_index is never used\nand is set to -1 on the next call to cpu_exec.  So we can change the\nmigration stream to make the default -1.  The effects are:\n\n- 2.2.1 -> 2.2.0: cpu->exception_index set incorrectly to 0 if it\nwere -1 on the source; then reset to -1 in cpu_exec.  This is TCG\nonly; KVM does not use exception_index.\n\n- 2.2.0 -> 2.2.1: cpu->exception_index set incorrectly to -1 if it\nwere 0 on the source; but it would be reset to -1 in cpu_exec anyway.\nThis is TCG only; KVM does not use exception_index.\n\n- 2.2.1 -> 2.1: two bugs fixed: 1) can migrate backwards if\ncpu->exception_index is set to -1; 2) should not migrate backwards\n(but 2.2.0 allows it) if cpu->exception_index is set to 0\n\n- 2.2.0 -> 2.3.0: 2.2.0 will send the subsection unnecessarily if\nexception_index is -1, but that is not a problem.  2.3.0 will set\ncpu->exception_index to -1 if it is 0 on the source, but this would\nbe anyway a problem for 2.2.0 -> 2.2.x migration (due to lack of\ncommit e511b4d in 2.2.x) so we can ignore it\n\n- 2.2.1 -> 2.3.0: everything works.\n\nIn addition, play it safe and never send the subsection unless TCG\nis in use.  KVM does not use exception_index (PPC KVM stores values\nin it for use in the subsequent call to ppc_cpu_do_interrupt, but\ndoes not need it as soon as kvm_handle_debug returns).  Xen and\nqtest do not run any code for the CPU at all.\n\nReported-by: Igor Mammedov <imammedo@redhat.com>\nTested-by: Laurent Desnogues <laurent.desnogues@gmail.com>\nTested-by: Eduardo Habkost <ehabkost@redhat.com>\nSigned-off-by: Paolo Bonzini <pbonzini@redhat.com>\nMessage-id: 1418989994-17244-3-git-send-email-pbonzini@redhat.com\nCc: qemu-stable@nongnu.org\nSigned-off-by: Paolo Bonzini <pbonzini@redhat.com>\nSigned-off-by: Peter Maydell <peter.maydell@linaro.org>\n(cherry picked from commit adee64249ee37e822d578e65a765750e7f2081f6)\nSigned-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>","distinct":true,"url":"https://api.github.com/repos/mdroth/qemu/commits/a97f9a7ec720d6f141cf4ee825f5c54c48747457"}]}