[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [linux-3.10 bisection] complete test-amd64-i386-freebsd10-amd64
branch xen-unstable xen branch xen-unstable job test-amd64-i386-freebsd10-amd64 test guest-saverestore Tree: linux git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git Tree: linuxfirmware git://xenbits.xen.org/osstest/linux-firmware.git Tree: qemu git://xenbits.xen.org/staging/qemu-xen-unstable.git Tree: qemuu git://xenbits.xen.org/staging/qemu-upstream-unstable.git Tree: xen git://xenbits.xen.org/xen.git *** Found and reproduced problem changeset *** Bug is in tree: qemuu git://xenbits.xen.org/staging/qemu-upstream-unstable.git Bug introduced: 2addb502cdb50bab00514b9723bf6e09c88ff75e Bug not present: 65fc9b78ba3d868a26952db0d8e51cecf01d47b4 commit 2addb502cdb50bab00514b9723bf6e09c88ff75e Merge: 1e1a328 65fc9b7 Author: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Date: Tue Jun 3 17:52:59 2014 +0000 Merge remote-tracking branch 'xen-staging/master' into xen-for-4.5-temp commit 1e1a3289f473a460bee7a8745574f61c9e2f8506 Author: Olaf Hering <olaf@xxxxxxxxx> Date: Wed May 7 13:40:04 2014 +0000 xen_disk: add discard support Implement discard support for xen_disk. It makes use of the existing discard code in qemu. The discard support is enabled unconditionally. The tool stack may provide a property "discard-enable" in the backend node to optionally disable discard support. This is helpful in case the backing file was intentionally created non-sparse to avoid fragmentation. Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 0b981bbcfeb4714969e96457c2f0497d584a309b Author: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Date: Wed May 7 13:48:37 2014 +0000 pass an inclusive address range to xc_domain_pin_memory_cacheattr xc_domain_pin_memory_cacheattr expects an inclusive address range: adjust the parameters. Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit afcd39182fdeee6638a216936bae24b9b63285d7 Author: Wei Liu <wei.liu2@xxxxxxxxxx> Date: Wed May 7 13:47:29 2014 +0000 xen: factor out common functions So common functions used by both HVM and PV are factored out from xen-all.c to xen-common.c. Finally rename xen-all.c to xen-hvm.c, as those functions are only useful to HVM guest. Create *-stub files and modify Makefile.target to reflect the changes. Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit a8aef208921d5a76d5ac2e2706ab300971abf9c8 Author: Wei Liu <wei.liu2@xxxxxxxxxx> Date: Wed May 7 13:43:39 2014 +0000 xen: move Xen HVM files under hw/i386/xen Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 276a6063748dcc54da6b0580161f7acb6b11cb63 Author: Wei Liu <wei.liu2@xxxxxxxxxx> Date: Wed May 7 13:43:37 2014 +0000 xen: move Xen PV machine files to hw/xenpv Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 5ecf46031c88d78fb29e6c8b1cff0e8266c6f1b2 Author: Zhenzhong Duan <zhenzhong.duan@xxxxxxxxxx> Date: Wed May 7 13:41:48 2014 +0000 qemu-xen: free all the pirqs for msi/msix when driver unload Pirqs are not freed when driver unload, then new pirqs are allocated when driver reload. This could exhaust pirqs if do it in a loop. This patch fixes the bug by freeing pirqs when ENABLE bit is cleared in msi/msix control reg. There is also other way of fixing it such as reuse pirqs between driver reload, but this way is better. Xen-devel: http://marc.info/?l=xen-devel&m=136800120304275&w=2 Signed-off-by: Zhenzhong Duan <zhenzhong.duan@xxxxxxxxxx> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 84bfadbb79d6301b5e03dfa6bc7ce65431226242 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Wed May 7 13:40:39 2014 +0000 exec: Limit translation limiting in address_space_translate to xen The address_space_translate() function cuts the returned plen (page size) to hardcoded TARGET_PAGE_SIZE. This function can be used on pages bigger than that so this limiting should not be used on such pages. Since originally the limiting was introduced for XEN, we can safely limit this piece of code to XEN. So does the patch. Suggested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit a9e8aeb3755bccb7b51174adcf4a3fc427e0d147 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Apr 17 13:41:45 2014 +0100 Update version for v2.0.0 release Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 851627352c52b5beebf119785885391fa05a44c5 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Apr 14 17:45:11 2014 +0100 Update version for v2.0.0-rc3 release Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 50212d6346f33d6e19489e81b025b5c3bb8759be Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Mon Apr 14 16:14:04 2014 +0400 Revert "fix return check for KVM_GET_DIRTY_LOG ioctl" This reverts commit b533f658a98325d0e47b36113bd9f5bcc046fdae. The original code was wrong, because effectively it ignored errors from kernel, because kernel does not return -1 on error case but returns -errno, and does not return -EPERM for this particular ioctl. But in some cases kernel actually returned unsuccessful result, namely, when the dirty bitmap in requested slot does not exist it returns -ENOENT. With new code this condition becomes an error when it shouldn't be. Revert that patch instead of fixing it properly this late in the release process. I disagree with this approach, but let's make things move _somewhere_, instead of arguing endlessly whch of the 2 proposed fixes is better. Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> Message-id: 1397477644-902-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c2b9af1d6c2dda4c58a1c0ff389d09dcd9601b9e Merge: 940973a 8611224 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Apr 14 14:02:12 2014 +0100 Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging acpi: SSDT update This has a fix by Igor for a regression introduced by bridge hotplug code. Expected test files were updated accordingly. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Mon 14 Apr 2014 13:13:35 BST using RSA key ID D28D5469 # gpg: Good signature from "Michael S. Tsirkin <mst@xxxxxxxxxx>" # gpg: aka "Michael S. Tsirkin <mst@xxxxxxxxxx>" * remotes/mst/tags/for_upstream: acpi-test: update expected files acpi: fix incorrect encoding for 0x{F-1}FFFF Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 940973ae0b45c9b6817bab8e4cf4df99a9ef83d7 Author: Benoît Canet <benoit.canet@xxxxxxxxxxx> Date: Sat Apr 12 22:59:50 2014 +0200 ide: Correct improper smart self test counter reset in ide core. The SMART self test counter was incorrectly being reset to zero, not 1. This had the effect that on every 21st SMART EXECUTE OFFLINE: * We would write off the beginning of a dynamically allocated buffer * We forgot the SMART history Fix this. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Message-id: 1397336390-24664-1-git-send-email-benoit.canet@xxxxxxxxxxx Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Acked-by: Kevin Wolf <kwolf@xxxxxxxxxx> [PMM: tweaked commit message as per suggestions from Markus] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8611224a7b21db8fa1b0d12fdd053443543dd708 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Apr 14 15:08:37 2014 +0300 acpi-test: update expected files commit 58b035c7354afc0c5351ea62264c01d74196ec26 acpi: fix incorrect encoding for 0x{F-1}FFFF changes the SSDT, update expected files accordingly. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 482f38b9488cb42939b92332ca7b5b42af882cd0 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Sun Apr 13 23:55:51 2014 +0200 acpi: fix incorrect encoding for 0x{F-1}FFFF Fix typo in build_append_int() which causes integer truncation when it's in range 0x{F-1}FFFF by packing it as WordConst instead of required DWordConst. In partucular this fixes a regression: hotplug in slots 16,17,18 and 19 didn't work, since SSDT had code like this: If (And (Arg0, 0x0000)) { Notify (S80, Arg1) } Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> commit 590e5dd98fcc926cc3b63aad35aed79235ca4c2a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Apr 11 17:13:52 2014 +0100 configure: Make stack-protector test check both compile and link Since we use the -fstack-protector argument at both compile and link time in the build, we must check that it works with both a compile and a link: * MacOSX only fails in the compile step, not linking * some gcc cross environments only fail at the link stage (if they require a libssp and it's not present for some reason) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1397232832-32301-1-git-send-email-peter.maydell@xxxxxxxxxx Tested-by: Alexey Kardashevskiy <aik@xxxxxxxxx> commit f12d048a523780dbda702027d4a91b62af1a08d7 Author: Dmitry Fleytman <dmitry@xxxxxxxxxx> Date: Fri Apr 4 12:45:22 2014 +0300 vmxnet3: validate queues configuration read on migration CVE-2013-4544 Signed-off-by: Dmitry Fleytman <dmitry@xxxxxxxxxx> Reported-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Message-id: 1396604722-11902-5-git-send-email-dmitry@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3c99afc779c2c78718a565ad8c5e98de7c2c7484 Author: Dmitry Fleytman <dmitry@xxxxxxxxxx> Date: Fri Apr 4 12:45:21 2014 +0300 vmxnet3: validate interrupt indices read on migration CVE-2013-4544 Signed-off-by: Dmitry Fleytman <dmitry@xxxxxxxxxx> Reported-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Message-id: 1396604722-11902-4-git-send-email-dmitry@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 9878d173f574df74bde0ff50b2f81009fbee81bb Author: Dmitry Fleytman <dmitry@xxxxxxxxxx> Date: Fri Apr 4 12:45:20 2014 +0300 vmxnet3: validate queues configuration coming from guest CVE-2013-4544 Signed-off-by: Dmitry Fleytman <dmitry@xxxxxxxxxx> Reported-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Message-id: 1396604722-11902-3-git-send-email-dmitry@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8c6c0478996e8f77374e69b6df68655b0b4ba689 Author: Dmitry Fleytman <dmitry@xxxxxxxxxx> Date: Fri Apr 4 12:45:19 2014 +0300 vmxnet3: validate interrupt indices coming from guest CVE-2013-4544 Signed-off-by: Dmitry Fleytman <dmitry@xxxxxxxxxx> Reported-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Message-id: 1396604722-11902-2-git-send-email-dmitry@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 92b3eeadd9bc72f1f4e5ba1f62a289dc0190e88f Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Thu Apr 10 14:47:38 2014 -0400 qom: Fix crash with qom-list and link properties Commit 9561fda8d90e176bef598ba87c42a1bd6ad03ef7 changed the type of 'opaque' for link properties, but missed updating this call site. Reproducer: ./x86_64-softmmu/qemu-system-x86_64 -qmp unix:./qmp.sock,server & ./scripts/qmp/qmp-shell ./qmp.sock (QEMU) qom-list path=//machine/i440fx/pci.0/child[2] Reported-by: Marcin GibuÅ?a <m.gibula@xxxxxxxxx> Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Message-id: 2f8f007ce2152ac3b65f0811199662799c509225.1397155389.git.crobinso@xxxxxxxxxx Acked-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit edc243851279e3393000b28b6b69454cae1190ef Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Fri Apr 11 15:18:08 2014 +0300 virtio-net: fix guest-triggerable buffer overrun When VM guest programs multicast addresses for a virtio net card, it supplies a 32 bit entries counter for the number of addresses. These addresses are read into tail portion of a fixed macs array which has size MAC_TABLE_ENTRIES, at offset equal to in_use. To avoid overflow of this array by guest, qemu attempts to test the size as follows: - if (in_use + mac_data.entries <= MAC_TABLE_ENTRIES) { however, as mac_data.entries is uint32_t, this sum can overflow, e.g. if in_use is 1 and mac_data.entries is 0xffffffff then in_use + mac_data.entries will be 0. Qemu will then read guest supplied buffer into this memory, overflowing buffer on heap. CVE-2014-0150 Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1397218574-25058-1-git-send-email-mst@xxxxxxxxxx Reviewed-by: Michael Tokarev <mjt@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 21e2db72601c48fa593ef7187faf17f324d925c5 Merge: 80fc7b1 5450466 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Apr 11 14:07:24 2014 +0100 Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging Block patches for 2.0.0-rc3 # gpg: Signature made Fri 11 Apr 2014 13:37:34 BST using RSA key ID C88F2FD6 # gpg: Good signature from "Kevin Wolf <kwolf@xxxxxxxxxx>" * remotes/kevin/tags/for-upstream: block-commit: speed is an optional parameter iscsi: Remember to set ret for iscsi_open in error case bochs: Fix catalog size check bochs: Fix memory leak in bochs_open() error path Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 80fc7b1755492a3698f78f7c4973751f6cf02e14 Merge: f516a5c 2d968ff Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Apr 11 13:51:15 2014 +0100 Merge remote-tracking branch 'remotes/kraxel/tags/pull-sdl-1' into staging sdl2 relative mouse mode fixes. # gpg: Signature made Fri 11 Apr 2014 11:36:46 BST using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-sdl-1: input: sdl2: Fix relative mode to match SDL1 behavior input: sdl2: Fix guest_cursor logic Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 5450466394c95cea8b661fb197ed215a4ab5d700 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Apr 10 19:36:25 2014 +0200 block-commit: speed is an optional parameter As speed is an optional parameter for the QMP block-commit command, it should be set to 0 if not given (as it is undefined if has_speed is false), that is, the speed should not be limited. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit cd82b6fb4daf87f17742f7971ba6cb90d23e6703 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Apr 10 09:33:55 2014 +0800 iscsi: Remember to set ret for iscsi_open in error case Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 715c3f60efa9801a777a71cd06eaf8efa7eaa2a8 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Apr 9 12:10:34 2014 +0200 bochs: Fix catalog size check The old check was off by a factor of 512 and didn't consider cases where we don't get an exact division. This could lead to an out-of-bounds array access in seek_to_sector(). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit 28ec11bc882387e51c7450558af5a49b8be95a36 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Apr 9 11:19:04 2014 +0200 bochs: Fix memory leak in bochs_open() error path Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit 2d968ffbae6b7899064f9f86f8508d9c19021e39 Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Tue Apr 1 16:37:11 2014 -0400 input: sdl2: Fix relative mode to match SDL1 behavior Right now relative mode accelerates too fast, and has the 'invisible wall' problem. SDL2 added an explicit API to handle this use case, so let's use it. Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit afbc0dd649809b34583c52f2bc99b5c82c06fd53 Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Tue Apr 1 16:37:10 2014 -0400 input: sdl2: Fix guest_cursor logic Unbreaks relative mouse mode with sdl2, just like was done with sdl.c in c3aa84b6. Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f516a5cc051db6e999e9e60dc968dcb5aeffe11f Merge: 0a9077e 7754784 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Apr 10 23:07:55 2014 +0100 Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging acpi: DSDT update Two fixes here: - Test fix to avoid warning with make check. - Hex file update so people building QEMU without installing iasl get exactly the same ACPI as with. Both should help avoid user confusion. As it's very easy to check that the produced ACPI binary didn't change, I think these are very low risk. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Thu 10 Apr 2014 17:09:43 BST using RSA key ID D28D5469 # gpg: Good signature from "Michael S. Tsirkin <mst@xxxxxxxxxx>" # gpg: aka "Michael S. Tsirkin <mst@xxxxxxxxxx>" * remotes/mst/tags/for_upstream: acpi: update generated hex files tests/acpi: update expected DSDT files Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0a9077ea144a7e6a6f456b94e2d2eaad21e74d34 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Apr 9 12:04:47 2014 +0100 configure: use do_cc when checking for -fstack-protector support MacOSX clang silently swallows unrecognized -f options when doing a link with '-framework' also on the command line, so to detect support for the various -fstack-protector options we must do a plain .c to .o compile, not a complete compile-and-link. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1397041487-28477-1-git-send-email-peter.maydell@xxxxxxxxxx commit 775478418a5244b28ce891e398e0232dc4e60b43 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Apr 10 19:03:18 2014 +0300 acpi: update generated hex files commit f2ccc311df55ec026a8f8ea9df998f26314f22b2 dsdt: tweak ACPI ID for hotplug resource device changes the DSDT, update hex files to match Otherwise the fix is only effective if QEMU is built with iasl. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 50329d3418c959ebce63c59d4c21473ac102d88f Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Apr 9 17:47:07 2014 +0300 tests/acpi: update expected DSDT files commit f2ccc311df55ec026a8f8ea9df998f26314f22b2 dsdt: tweak ACPI ID for hotplug resource device changes the DSDT, update test expected files to match Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reported-by: Igor Mammedov <imammedo@xxxxxxxxxx> commit efcc87d9aedb590b8506cd1a7c8abe557c760f9e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Apr 8 18:52:06 2014 +0100 Update version for v2.0.0-rc2 release Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7dc176bce49c61551b513508def136d5bb632b72 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Apr 8 16:51:11 2014 +0100 hw/pci-host/prep: Don't reverse IO accesses on bigendian hosts The raven_io_read() and raven_io_write() functions pass and return values in little-endian format (since the IO op struct is marked DEVICE_LITTLE_ENDIAN); however they were storing the values in the buffer to pass to address_space_read/write() in host-endian order, which meant that on big-endian hosts the values were inadvertently reversed. Use the *_le_p() accessors instead so that we are consistent regardless of host endianness. Strictly speaking the byte order of the buffer for address_space_rw() is target byte order (which for PPC will be BE) but it doesn't actually matter as long as we are consistent about the marking on the IO op struct and which stl_*_p(). This bug was probably introduced due to confusion caused by the two different versions of ldl_p() and friends: bswap.h defines versions meaning "host endianness access" cpu-all.h defines versions meaning "target endianness access" As a target-independent source file prep.c gets the bswap.h versions; the very similar looking code in ioport.c is compiled per-target and gets the cpu-all.h versions. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1396972271-22660-1-git-send-email-peter.maydell@xxxxxxxxxx Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 9bc1a1d817670702f642633a325da346047f7508 Merge: 093de72 f2ccc31 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Apr 8 13:59:28 2014 +0100 Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging acpi bug fix Here is a single last minute fix for 2.0 This changes the HID of the container used to claim resources for CPU hotplug. As a result, windows XP SP3 no longer brings up an annoying "found new hardware" wizard on boot. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Tue 08 Apr 2014 13:23:30 BST using RSA key ID D28D5469 # gpg: Good signature from "Michael S. Tsirkin <mst@xxxxxxxxxx>" # gpg: aka "Michael S. Tsirkin <mst@xxxxxxxxxx>" * remotes/mst/tags/for_upstream: dsdt: tweak ACPI ID for hotplug resource device Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f2ccc311df55ec026a8f8ea9df998f26314f22b2 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Apr 6 12:47:37 2014 +0300 dsdt: tweak ACPI ID for hotplug resource device ACPI0004 seems too new: Windows XP complains about an unrecognized device. This is a regression since 1.7. Use PNP0A06 instead - Generic Container Device. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-By: Igor Mammedov <imammedo@xxxxxxxxxx> commit 093de72b9c226fe007f330c70a0d4ccb0baec17d Merge: 9a4fb6a 800b0e8 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Apr 8 13:05:25 2014 +0100 Merge remote-tracking branch 'remotes/kraxel/tags/pull-gtk-5' into staging gtk: Implement grab-on-click behavior in relative mode # gpg: Signature made Tue 08 Apr 2014 12:58:49 BST using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-gtk-5: gtk: Implement grab-on-click behavior in relative mode Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 800b0e814bef7cd14ae2bce149c09d70676e93fb Author: Takashi Iwai <tiwai@xxxxxxx> Date: Tue Apr 8 11:26:45 2014 +0200 gtk: Implement grab-on-click behavior in relative mode This patch changes the behavior in the relative mode to be compatible with other UIs, namely, grabbing the input at the first left click. It improves the usability a lot; otherwise you have to press ctl-alt-G or select from menu at each time you want to move the pointer. Also, the input grab is cleared when the current mode is switched to the absolute mode. The automatic reset of the implicit grabbing is needed since the switching to the absolute mode happens always after the click even on Gtk. That is, we cannot check whether the absolute mode is already available at the first click time even though it should have been switched in X11 input driver side. Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 9a4fb6aa19d1aa8dfb3abb6210734b1a1df9e322 Merge: e792933 06f6e12 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Apr 8 10:58:31 2014 +0100 Merge remote-tracking branch 'remotes/agraf/tags/signed-ppc-for-upstream' into staging Patch queue for ppc - 2014-04-08 This is the final queue for 2.0! It fixes a lot of bugs people have seen during testing: - Fix e500 SMP - Fix book3s_64 DEC - Fix VSX (new feature in 2.0) for LE hosts - Fix PR KVM on top of pHyp (SLOF update) # gpg: Signature made Tue 08 Apr 2014 10:24:18 BST using RSA key ID 03FEDC60 # gpg: Can't check signature: public key not found * remotes/agraf/tags/signed-ppc-for-upstream: PPC: Add l1 cache sizes for 970 and above systems ppce500_spin: Initialize struct properly PPC: Only enter MSR_POW when no interrupts pending PPC: Clean up DECR implementation target-ppc: Correct VSX Integer to FP Conversion target-ppc: Correct VSX FP to Integer Conversion target-ppc: Correct VSX FP to FP Conversions target-ppc: Correct VSX Scalar Compares target-ppc: Correct Simple VSR LE Host Inversions target-ppc: Correct LE Host Inversion of Lower VSRs target-ppc: Define Endian-Correct Accessors for VSR Field Access target-ppc: Bug: VSX Convert to Integer Should Truncate softfloat: Introduce float32_to_uint64_round_to_zero pseries: Update SLOF firmware image to qemu-slof-20140404 PPC: E500: Set PIR default reset value rather than SPR value Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e792933ce1a9229d01b00f02caa39c39c30bcce8 Merge: 55519a4 9854202 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Apr 8 10:41:30 2014 +0100 Merge remote-tracking branch 'remotes/mdroth/qga-pull-2014-4-7' into staging * remotes/mdroth/qga-pull-2014-4-7: vss-win32: Fix build with mingw64-headers-3.1.0 Makefile: add qga-vss-dll-obj-y to nested variables Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 06f6e12491fd767b3b23573c438f925f6092e897 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Apr 8 01:42:53 2014 +0200 PPC: Add l1 cache sizes for 970 and above systems Book3s_64 guests expect the L1 cache size in device tree, so let's give them proper values for all CPU types we support. This fixes a "not compliant" warning with sles11 guests on -M pseries for me. Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 6a2b3d89fa49ec060db646d196864a8fd15c10cf Author: Alexander Graf <agraf@xxxxxxx> Date: Mon Apr 7 16:48:42 2014 +0200 ppce500_spin: Initialize struct properly The spinning struct is in guest endianness, so we need to initialize its variables in guest endianness too. This fixes booting e500 guests with SMP on x86 for me. Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 05edc26c61d416831822b3186df099e8e21745b9 Author: Alexander Graf <agraf@xxxxxxx> Date: Sun Apr 6 22:40:47 2014 +0200 PPC: Only enter MSR_POW when no interrupts pending We were entering the power saving state even when interrupts (like an external interrupt or a decrementer interrupt) were still in flight. In case we find a pending interrupt, don't enter power saving state. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Tom Musta <tmusta@xxxxxxxxx> commit e81a982aa5398269a2cc344091ffa4930bdd242f Author: Alexander Graf <agraf@xxxxxxx> Date: Sun Apr 6 01:32:06 2014 +0200 PPC: Clean up DECR implementation There are 3 different variants of the decrementor for BookE and BookS. The BookE variant sets TSR[DIS] to 1 when the DEC value becomes 1 or 0. TSR[DIS] is then the indicator whether the decrementor interrupt line is asserted or not. The old BookS variant treats DEC as an edge interrupt that gets triggered when the DEC value's top bit turns 1 from 0. The new BookS variant maintains the assertion bit inside DEC itself. Whenever the DEC value becomes negative (top bit set) the DEC interrupt line is asserted. So far we implemented mostly the old BookS variant. Let's do them all properly. This fixes booting pseries ppc64 guest images in TCG mode for me. Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 6cd7db3d92d44344d75feb432e3ece8587e1afd4 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Mar 31 16:04:03 2014 -0500 target-ppc: Correct VSX Integer to FP Conversion This patch corrects the VSX integer to floating point conversion instructions by using the endian correct accessors. The auxiliary "j" index used by the existing macros is now obsolete and is removed. The JOFFSET preprocessor macro is also obsolete and removed. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Tested-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit d1dec5ef550802f76ffb8cdec50e6d50467e877e Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Mar 31 16:04:02 2014 -0500 target-ppc: Correct VSX FP to Integer Conversion This patch corrects the VSX floating point to integer conversion instructions by using the endian correct accessors. The auxiliary "j" index used by the existing macros is now obsolete and is removed. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Tested-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 6bbad7a91efe49b080391a45bc6305449050465a Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Mar 31 16:04:01 2014 -0500 target-ppc: Correct VSX FP to FP Conversions This change corrects the VSX double precision to single precision and single precision to double precisions conversion routines. The endian correct accessors are now used. The auxiliary "j" index is no longer necessary and is eliminated. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Tested-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 50fc89e7b1a2837a2d92025aa2ed161d8439743b Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Mar 31 16:04:00 2014 -0500 target-ppc: Correct VSX Scalar Compares This change fixes the VSX scalar compare instructions. The existing usage of "x.f64[0]" is changed to "x.VsrD(0)". Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Tested-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit bcb7652e8dd185f2acc36fd2b9eb7b6dffcc8c47 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Mar 31 16:03:59 2014 -0500 target-ppc: Correct Simple VSR LE Host Inversions A common pattern in the VSX helper code macros is the use of "x.fld[i]" where "x" is a VSR and "fld" is an argument to a macro ("f64" or "f32" is passed). This is not always correct on LE hosts. This change addresses all instances of this pattern to be "x.fld" where "fld" is: - "VsrD(0)" for scalar instructions accessing 64-bit numbers - "VsrD(i)" for vector instructions accessing 64-bit numbers - "VsrW(i)" for vector instructions accessing 32-bit numbers Note that there are no instances of this pattern where a scalar instruction accesses a 32-bit number. Note also that it would be correct to use "VsrD(i)" for scalar instructions since the loop index is only ever "0". I have choosen to use "VsrD(0)" instead ... it seems a little clearer. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Tested-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit d359db00e6dfaf12cbdedd30e36f879110d4f9d1 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Mar 31 16:03:58 2014 -0500 target-ppc: Correct LE Host Inversion of Lower VSRs This change properly orders the doublewords of the VSRs 0-31. Because these registers are constructed from separate doublewords, they must be inverted on Little Endian hosts. The inversion is performed both when the VSR is read and when it is written. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Tested-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 80189035de73f30e42a7f933c45cccfc4b0c56e9 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Mar 31 16:03:57 2014 -0500 target-ppc: Define Endian-Correct Accessors for VSR Field Access This change defines accessors for VSR doubleword and word fields that are correct from a host Endian perspective. This allows code to use the Power ISA indexing numbers in code. For example, the xscvdpsxws instruction has a target VSR that looks like this: 0 32 64 127 +-----------+--------+-----------+-----------+ | undefined | SW | undefined | undefined | +-----------+--------+-----------+-----------+ VSX helper code will use VsrW(1) to access this field. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Tested-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 0453099b7d20c9fc2946ed74f1d965ae4d173d19 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Mar 31 16:03:56 2014 -0500 target-ppc: Bug: VSX Convert to Integer Should Truncate The various VSX Convert to Integer instructions should truncate the floating point number to an integer value, which is equivalent to a round-to-zero rounding mode. The existing VSX floating point to integer conversion helpers are erroneously using the rounding mode set int the PowerPC Floating Point Status and Control Register (FPSCR). This change corrects this defect by using the appropriate float*_to_*_round_to_zero() routines fro the softfloat library. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Tested-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit a13d44896854329581ba48607d66c6b2aec157f7 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Mar 31 16:03:55 2014 -0500 softfloat: Introduce float32_to_uint64_round_to_zero This change adds the float32_to_uint64_round_to_zero function to the softfloat library. This function fills out the complement of float32 to INT round-to-zero conversion rountines, where INT is {int32_t, uint32_t, int64_t, uint64_t}. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Tested-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3636226ae45a9b04af5202a18f445680c88473e7 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Apr 4 11:57:35 2014 +1100 pseries: Update SLOF firmware image to qemu-slof-20140404 The change log is: > Isolate sc 1 detection logic > build: auto-detect ppc64 architecture > cas: increase hcall buffer size to accomodate 256 cpus > usb: change device tree naming > usb-core: adjust port numbers in set_address > virtio-scsi: correct srplun comment > Fix kernel loading > Workaround to make grub2 assign server ip from dhcp ack packet only > ELF: Enter LE binary in LE mode > ELF loading should fail for virt != phys Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 6a450df9b8369c0cff7a1d6774d56f0862abd4e3 Author: Alexander Graf <agraf@xxxxxxx> Date: Thu Apr 3 20:45:27 2014 +0200 PPC: E500: Set PIR default reset value rather than SPR value We now reset SPRs to their reset values on CPU reset. So if we want to have an SPR persistently changed, we need to change its default reset value rather than the value itself manually. Do this for SPR_BOOKE_PIR, fixing e500v2 SMP boot. Reported-by: Frederic Konrad <fred.konrad@xxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> Tested-by: KONRAD Frederic <fred.konrad@xxxxxxxxxxxxx> commit 9854202b57e0ac197cf2bee3d7fbf79ba58f16c5 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Mar 26 14:28:51 2014 -0400 vss-win32: Fix build with mingw64-headers-3.1.0 In mingw64-headers-3.1.0, definition of _com_issue_error() is added, which conflicts with definition in install.cpp. This adds version checking for mingw headers to disable the definition when the headers>=3.1 is used. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 577a67234dd7bef8b0443804f3a81977072f8657 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Mar 26 14:28:45 2014 -0400 Makefile: add qga-vss-dll-obj-y to nested variables The build rule for qga/vss-win32/qga-vss.dll is broken by commit ba1183da9a10b94611cad88c44a5c6df005f9b55, because it misses qga-vss-dll-obj-y in the list of nested variables. This fixes build of qga-vss.dll by adding qga-vss-dll-obj-y to the list. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 55519a4b244e4822774b593e36647ecf7598286b Merge: 9c269f6 f85e345 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Apr 7 17:57:23 2014 +0100 Merge remote-tracking branch 'remotes/afaerber/tags/qom-devices-for-2.0' into staging QOM/QTest infrastructure fixes * Relicensing of FWPathProvider interface * Clean up all targets' qtests # gpg: Signature made Mon 07 Apr 2014 17:56:13 BST using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/qom-devices-for-2.0: tests: Update check-clean rule fw-path-provider: Change GPL version to 2+ Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f85e3457cea170b5a0c48e9aa67d316f9e3cbcba Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Apr 7 18:33:22 2014 +0200 tests: Update check-clean rule Only i386, x86_64, sparc and sparc64 qtests were cleaned up. Make this more generic to not miss any newly tested targets. Reported-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Suggested-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 9c269f6d7bfb81cbbf501576b979831478dac5d9 Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Sat Apr 5 18:25:46 2014 +0400 Makefile: remove bashism When installing modules (when --enable-modules is specified for ./configure), Makefile uses the following construct to replace all slashes with dashes in module name: ${s//\//-} This is a bash-specific substitution mechanism. POSIX does not have it, and some operating systems (for example Debian) does not implement this construct in default shell (for example dash). Use more traditional way to perform the substitution: use `tr' tool. Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> Message-id: 1396707946-21351-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit dffacd4654ec8bf2898aed230852154c6ed755ed Author: Don Slutz <dslutz@xxxxxxxxxxx> Date: Tue Mar 18 12:29:34 2014 -0400 char/serial: Fix emptyness handling The commit 88c1ee73d3231c74ff90bcfc084a7589670ec244 char/serial: Fix emptyness check Still causes extra NULL byte(s) to be sent. So if the fifo is empty, do not send an extra NULL byte. Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Don Slutz <dslutz@xxxxxxxxxxx> Message-id: 1395160174-16006-1-git-send-email-dslutz@xxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 20c50a955fdf02b02f8c75533f456e3fbdf13de1 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Mar 27 01:13:02 2014 +1100 fw-path-provider: Change GPL version to 2+ Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit bd7ce902ab2b5e4f5cd53e1e032d89789b6932a8 Merge: e20c016 dc491cf Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Apr 7 12:48:34 2014 +0100 Merge remote-tracking branch 'remotes/spice/tags/pull-spice-6' into staging spice: monitors_config: check pointer before dereferencing # gpg: Signature made Mon 07 Apr 2014 11:19:19 BST using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/spice/tags/pull-spice-6: spice: monitors_config: check pointer before dereferencing Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e20c016e322e0c977ab332322c3a882c119eb1d4 Merge: 466e6e9 25eccc3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Apr 7 12:27:10 2014 +0100 Merge remote-tracking branch 'remotes/kraxel/tags/pull-gtk-4' into staging gtk: pointer fixes from Takashi Iwai. # gpg: Signature made Mon 07 Apr 2014 09:51:52 BST using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-gtk-4: ui: Update MAINTAINERS entry. gtk: Remember the last grabbed pointer position gtk: Fix the relative pointer tracking mode gtk: Use gtk generic event signal instead of motion-notify-event Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit dc491cfc14074064ed54a872b62cce6ca1330644 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Apr 7 12:15:44 2014 +0200 spice: monitors_config: check pointer before dereferencing Reported-by: Fabio Fantoni <fabio.fantoni@xxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 25eccc37ff91254efdd123f5dafb37526a83a990 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Apr 7 10:42:03 2014 +0200 ui: Update MAINTAINERS entry. With Amazon eating Anthonys time status "Maintained" certainly isn't true any more. Update entry accordingly. Also add myself, so scripts/get_maintainer.pl will Cc: me, to reduce the chance ui patches fall through the cracks on our pretty loaded qemu-devel mailing list. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit ecce1929bcb0d8f4efde39df5ceb1aac42df75d4 Author: Takashi Iwai <tiwai@xxxxxxx> Date: Fri Apr 4 12:41:23 2014 +0200 gtk: Remember the last grabbed pointer position It's pretty annoying that the pointer reappears at a random place once after grabbing and ungrabbing the input. Better to restore to the original position where the pointer was grabbed. Reference: https://bugzilla.novell.com/show_bug.cgi?id=849587 Tested-by: Cole Robinson <crobinso@xxxxxxxxxx> Reviewed-by: Cole Robinson <crobinso@xxxxxxxxxx> Tested-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e61031cdd81826c433a8bbfa3aca2bae4ffaf845 Author: Takashi Iwai <tiwai@xxxxxxx> Date: Fri Apr 4 12:41:22 2014 +0200 gtk: Fix the relative pointer tracking mode The relative pointer tracking mode was still buggy even after the previous fix of the motion-notify-event since the events are filtered out when the pointer moves outside the drawing window due to the boundary check for the absolute mode. This patch fixes the issue by moving the unnecessary boundary check into the if block of absolute mode, and keep the coordinate in the relative mode even if it's outside the drawing area. But this makes the coordinate (last_x, last_y) possibly pointing to (-1,-1), introduce a new flag to indicate the last coordinate has been updated. Reference: https://bugzilla.novell.com/show_bug.cgi?id=849587 Tested-by: Cole Robinson <crobinso@xxxxxxxxxx> Reviewed-by: Cole Robinson <crobinso@xxxxxxxxxx> Tested-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 0d0e044dee0ed59628bb093a5be03528d6bde445 Author: Takashi Iwai <tiwai@xxxxxxx> Date: Fri Apr 4 12:41:21 2014 +0200 gtk: Use gtk generic event signal instead of motion-notify-event The GDK motion-notify-event isn't generated when the pointer goes out of the target window even if the pointer is grabbed, which essentially means to lose the pointer tracking in gtk-ui. Meanwhile the generic "event" signal is sent when the pointer is grabbed, so we can use this and pick the motion notify events manually there instead. Reference: https://bugzilla.novell.com/show_bug.cgi?id=849587 Tested-by: Cole Robinson <crobinso@xxxxxxxxxx> Reviewed-by: Cole Robinson <crobinso@xxxxxxxxxx> Tested-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 466e6e9d13d56bbb6da1d2396d7d6347df483af0 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Apr 2 17:33:02 2014 +0200 target-i386: reorder fields in cpu/msr_hyperv_hypercall subsection The subsection already exists in one well-known enterprise Linux distribution, but for some strange reason the fields were swapped when forward-porting the patch to upstream. Limit headaches for said enterprise Linux distributor when the time will come to rebase their version of QEMU. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Message-id: 1396452782-21473-1-git-send-email-pbonzini@xxxxxxxxxx Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8ae60ee85ceaea6bfc4c62fb8ed180a1ba8010a5 Merge: bae2c27 54bee5c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Apr 5 00:18:19 2014 +0100 Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging Block patches for 2.0.0 # gpg: Signature made Fri 04 Apr 2014 20:25:08 BST using RSA key ID C88F2FD6 # gpg: Good signature from "Kevin Wolf <kwolf@xxxxxxxxxx>" * remotes/kevin/tags/for-upstream: dataplane: replace iothread object_add() with embedded instance iothread: make IOThread struct definition public dma-helpers: Initialize DMAAIOCB in_cancel flag block: Check bdrv_getlength() return value in bdrv_append_temp_snapshot() block: Fix snapshot=on for protocol parsed from filename qemu-iotests: Remove CR line endings in reference output block: Don't parse 'filename' option qcow2: Put cache reference in error case qcow2: Flush metadata during read-only reopen iscsi: Don't set error if already set in iscsi_do_inquiry Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 54bee5c2b487250dcb8631ddff4307f329ec0541 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Mar 20 15:06:32 2014 +0100 dataplane: replace iothread object_add() with embedded instance Before IOThread was its own object, each virtio-blk device would create its own internal thread. We need to preserve this behavior for backwards compatibility when users do not specify -device virtio-blk-pci,iothread=<id>. This patch changes how the internal IOThread object is created. Previously we used the monitor object_add() function, which is really a layering violation. The problem is that this needs to assign a name but we don't have a name for this internal object. Generating names for internal objects is a pain but even worse is that they may collide with user-defined names. Paolo Bonzini <pbonzini@xxxxxxxxxx> suggested that the internal IOThread object should not be named. This way the conflict cannot happen and we no longer need object_add(). One gotcha is that internal IOThread objects will not be listed by the query-iothreads command since they are not named. This is okay though because query-iothreads is new and the internal IOThread is just for backwards compatibility. New users should explicitly define IOThread objects. Reported-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Tested-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8c2664d86917c987944f1ca9770d1f7bbbf8eca8 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Mar 20 15:06:31 2014 +0100 iothread: make IOThread struct definition public Make the IOThread struct definition public so objects can be embedded in parent structs. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Tested-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4d1cb6e6f51b0d8405f701806a203a73e7431fe5 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Mar 28 14:22:49 2014 +0000 dma-helpers: Initialize DMAAIOCB in_cancel flag Initialize the dbs->in_cancel flag in dma_bdrv_io(), since qemu_aio_get() does not return zero-initialized memory. Spotted by the clang sanitizer (which complained when the value loaded in dma_complete() was not valid for a bool type); this might have resulted in leaking the AIO block. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f187743acd39747cc8cc32111518142c924963b9 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Apr 4 17:07:19 2014 +0200 block: Check bdrv_getlength() return value in bdrv_append_temp_snapshot() Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit b998875dcf2b21678cffa8b9a83c09930523861f Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Apr 3 12:09:34 2014 +0200 block: Fix snapshot=on for protocol parsed from filename Since commit 9fd3171a, BDRV_O_SNAPSHOT uses an option QDict to specify the originally requested image as the backing file of the newly created temporary snapshot. This means that the filename is stored in "file.filename", which is an option that is not parsed for protocol names. Therefore things like -drive file=nbd:localhost:10809 were broken because it looked for a local file with the literal name 'nbd:localhost:10809'. This patch changes the way BDRV_O_SNAPSHOT works once again. We now open the originally requested image as normal, and then do a similar operation as for live snapshots to put the temporary snapshot on top. This way, both driver specific options and parsed filenames work. As a nice side effect, this results in code movement to factor bdrv_append_temp_snapshot() out. This is a good preparation for moving its call to drive_init() and friends eventually. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit bae2c270906475093e3d5f4c3103dbe67bf82009 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Apr 4 17:42:56 2014 +0100 cpu-exec: Unlock tb_lock if we longjmp out of code generation If the guest attempts to execute from unreadable memory, this will cause us to longjmp back to the main loop from inside the target frontend decoder. For linux-user mode, this means we will still hold the tb_ctx.tb_lock, and will deadlock when we try to start executing code again. Unlock the lock in the return-from-longjmp code path to avoid this. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Acked-by: Andrei Warkentin <andrey.warkentin@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit cd7ccc83512a0cba5aa0c778e7507f267cfb1b16 Author: Andrei Warkentin <andrey.warkentin@xxxxxxxxx> Date: Fri Apr 4 17:42:55 2014 +0100 page_check_range: don't bail out early after unprotecting page When checking a page range, if we found that a page was made read-only by QEMU because it contained translated code, we were incorrectly returning immediately after unprotecting that page, rather than continuing to check the entire range, so we might fail to unprotect pages later in the range, or might incorrectly return a "success" result even if later pages were not writable. In particular, this could cause segfaults in a case where signals are delivered back to back on a target architecture which uses trampoline code in the stack frame (as AArch64 currently does). The second signal causes a segfault because the frame cannot be written to (it was protected because we translated and executed the restorer trampoline, and the unprotect logic did not unprotect the whole range). Signed-off-by: Andrei Warkentin <andrey.warkentin@xxxxxxxxx [PMM: expanded commit message a bit] Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d097696eba076da781967827e59f66a7857c8ecb Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Apr 4 17:42:34 2014 +0100 hw/arm/vexpress, hw/arm/highbank: Don't insist that CPU has reset-cbar property For the machine models which can have a Cortex-A15 CPU (vexpress-a15 and midway), silently continue if the CPU object has no reset-cbar property rather than failing. This allows these boards to be used under KVM with the "-cpu host" option, since the 'host' CPU object has no reset-cbar property. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Rob Herring <rob.herring@xxxxxxxxxx> commit 3b418d0c45fccd850f9ad9eb4bf9bdcd96b8e6f7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Apr 4 17:42:33 2014 +0100 hw/arm/highbank: Don't segfault on unknown CPU names If the user passes an unknown CPU name via the '-cpu' option, exit with an error message rather than segfaulting. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Rob Herring <rob.herring@xxxxxxxxxx> commit cd40890816a40ba70d4cd2107629a417f0f3c648 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Apr 3 12:48:38 2014 +0200 qemu-iotests: Remove CR line endings in reference output qemu doesn't print these CRs any more. The test still didn't fail because the output comparison ignores line endings, but the change turns up each time when you want to update the output. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit e3fa4bfa72d5037bfc1de95cf243d8c57e38f5da Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Apr 3 12:45:51 2014 +0200 block: Don't parse 'filename' option When using the QDict option 'filename', it is supposed to be interpreted literally. The code did correctly avoid guessing the protocol from any string before the first colon, but it still called bdrv_parse_filename() which would, for example, incorrectly remove a 'file:' prefix in the raw-posix driver. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 8885eadedd0ea8b57c1baa367ee2c2d616700bd9 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Sat Feb 8 17:44:59 2014 +0100 qcow2: Put cache reference in error case When qcow2_get_cluster_offset() sees a zero cluster in a version 2 image, it (rightfully) returns an error. But in doing so it shouldn't leak an L2 table cache reference. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 4c2e5f8f46a17966dc45b5a3e07b97434c0eabdf Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Apr 3 13:47:50 2014 +0200 qcow2: Flush metadata during read-only reopen If lazy refcounts are enabled for a backing file, committing to this backing file may leave it in a dirty state even if the commit succeeds. The reason is that the bdrv_flush() call in bdrv_commit() doesn't flush refcount updates with lazy refcounts enabled, and qcow2_reopen_prepare() doesn't take care to flush metadata. In order to fix this, this patch also fixes qcow2_mark_clean(), which contains another ineffective bdrv_flush() call beause lazy refcounts are disabled only afterwards. All existing callers of qcow2_mark_clean() either don't modify refcounts or already flush manually, so that this fixes only a latent, but not yet actually triggerable bug. Another instance of the same problem is live snapshots. Again, a real corruption is prevented by an explicit flush for non-read-only images in external_snapshot_prepare(), but images using lazy refcounts stay dirty. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit cbee81f6de57ddc1b21ba28f01f6a3b5d87428a5 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Apr 4 19:53:29 2014 +0800 iscsi: Don't set error if already set in iscsi_do_inquiry This eliminates the possible assertion failure in error_setg(). Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 5913815a17387a5e9825c734ccab760588471ee5 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Apr 3 15:51:01 2014 +0100 Update version for v2.0.0-rc1 release Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 888157fe96f68488efcdf50cbdb6f72291ab903e Merge: de03c31 d25295d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Apr 3 14:31:20 2014 +0100 Merge remote-tracking branch 'remotes/riku/for-2.0' into staging * remotes/riku/for-2.0: linux-user: pass correct host flags to accept4() Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit de03c3164accc21311c39327601fcdd95da301f3 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Wed Apr 2 16:06:38 2014 +0200 bswap: Fix build on FreeBSD 10.0 FreeBSD 10.0-RELEASE has bswap16() etc. macros defined in sys/endian.h, which leads to a conflict with our static inline definitions. Force using the system version of the macros. Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> Tested-by: Ed Maste <emaste@xxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 87d8354de3560eb705bcee83142d775f703177a6 Author: Alexander Graf <agraf@xxxxxxx> Date: Wed Apr 2 11:41:58 2014 +0200 PPC: openpic_kvm: Filter memory events properly Commit 6f1834a2b exposed a bug in openpic_kvm where we don't filter for memory events that only happen to the region we want to know events about. Add proper filtering, fixing the e500plat target with KVM. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Message-id: 1396431718-14908-1-git-send-email-agraf@xxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 784a5592c9e7721d9035a83570f09a286cf75284 Merge: 97891af c97ca29 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Apr 3 12:24:35 2014 +0100 Merge remote-tracking branch 'remotes/bonzini/scsi-next' into staging * remotes/bonzini/scsi-next: iscsi: always query max WRITE SAME length iscsi: ignore flushes on scsi-generic devices iscsi: recognize "invalid field" ASCQ from WRITE SAME command scsi-bus: remove bogus assertion Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 97891afab801a31dc65e265ff9210a951b952e76 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Apr 2 23:31:11 2014 -0700 MAINTAINERS: Update Peter Crosthwaite's email Change over to my proper Xilinx email. s/petalogix.com/xilinx.com. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: cdff0c388c70df06217c467dcfb89267b7911feb.1396506607.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c97ca29db0a68deb281a901f535cec5ea4862244 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Apr 2 15:30:29 2014 +0200 iscsi: always query max WRITE SAME length Max WRITE SAME length is also used when the UNMAP bit is zero, so it should be queried even if LBPWS=0. Same for the optimal transfer length. However, the write_zeroes_alignment only matters for UNMAP=1 so we still restrict it to LBPWS=1. Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit b2f9c08a4f11f16ec101e95feab8e71d7cfcfee9 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Apr 2 15:04:41 2014 +0200 iscsi: ignore flushes on scsi-generic devices Non-block SCSI devices do not support flushing, but we may still send them requests via bdrv_flush_all. Just ignore them. Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 27898a5daa4c6d28adb32b401a011d7198494482 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Apr 2 12:12:50 2014 +0200 iscsi: recognize "invalid field" ASCQ from WRITE SAME command Some targets may return "invalid field" as the ASCQ from WRITE SAME if they support the command only without the UNMAP field. Recognize that, and return ENOTSUP just like for "invalid operation code". Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit d581eb7ca4b58649ade5fb7570ecf6b4b9a41879 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Apr 2 13:24:23 2014 +0200 scsi-bus: remove bogus assertion This assertion is invalid, because get_sg_list can return an empty sg-list even for commands that transfer no data (such as SYNCHRONIZE CACHE). Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 82c6f513735297ad76acaaf2e87f0c5a0b3647a7 Merge: 53e11bd 9bcec93 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Apr 1 20:45:42 2014 +0100 Merge remote-tracking branch 'remotes/stefanha/tags/tracing-pull-request' into staging Tracing pull request # gpg: Signature made Tue 01 Apr 2014 19:08:48 BST using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" * remotes/stefanha/tags/tracing-pull-request: trace: add workaround for SystemTap PR13296 Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 9bcec938aab22a1b7ced916a6895e5029d4ed04f Author: Frank Ch. Eigler <fche@xxxxxxxxxx> Date: Tue Mar 25 13:08:30 2014 +0100 trace: add workaround for SystemTap PR13296 SystemTap sdt.h sometimes results in compiled probes without sufficient information to extract arguments. This can be solved in a slightly hacky way by encouraging the compiler to place arguments into registers. This patch fixes the apic_reset_irq_delivered() trace event on Fedora 20 with gcc-4.8.2-7.fc20 and systemtap-sdt-devel-2.4-2.fc20 on x86_64. Signed-off-by: Frank Ch. Eigler <fche@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 53e11bd384a799c03884bd7d8b5be53f025f8e2d Merge: 507979a c792707 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Apr 1 18:23:28 2014 +0100 Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging Block pull request # gpg: Signature made Tue 01 Apr 2014 18:11:16 BST using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" * remotes/stefanha/tags/block-pull-request: (51 commits) qcow2: link all L2 meta updates in preallocate() parallels: Sanity check for s->tracks (CVE-2014-0142) parallels: Fix catalog size integer overflow (CVE-2014-0143) qcow2: Limit snapshot table size qcow2: Check maximum L1 size in qcow2_snapshot_load_tmp() (CVE-2014-0143) qcow2: Fix L1 allocation size in qcow2_snapshot_load_tmp() (CVE-2014-0145) qcow2: Fix NULL dereference in qcow2_open() error path (CVE-2014-0146) qcow2: Fix copy_sectors() with VM state block: Limit request size (CVE-2014-0143) block: vdi bounds check qemu-io tests dmg: prevent chunk buffer overflow (CVE-2014-0145) dmg: use uint64_t consistently for sectors and lengths dmg: sanitize chunk length and sectorcount (CVE-2014-0145) dmg: use appropriate types when reading chunks dmg: drop broken bdrv_pread() loop dmg: prevent out-of-bounds array access on terminator dmg: coding style and indentation cleanup qcow2: Fix new L1 table size check (CVE-2014-0143) qcow2: Protect against some integer overflows in bdrv_check qcow2: Fix types in qcow2_alloc_clusters and alloc_clusters_noref ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 507979a8bda895d56d02112907ccbca753dbbdce Merge: 95224e8 bdcc3a2 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Apr 1 16:58:04 2014 +0100 Merge remote-tracking branch 'remotes/kraxel/tags/pull-input-7' into staging input bugfixes for 2.0 # gpg: Signature made Tue 01 Apr 2014 10:16:43 BST using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-input-7: input: add sanity check input: mouse_set should check input device type. input: fix input_event_key_number trace event Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c792707f54aa445cfb63a42411c66594b52b8f79 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Apr 1 11:12:57 2014 +0200 qcow2: link all L2 meta updates in preallocate() preallocate() only links the first QCowL2Meta's data clusters into the L2 table and ignores any chained QCowL2Metas in the linked list. Chains of QCowL2Meta structs are built up when contiguous clusters span L2 tables. Each QCowL2Meta describes one L2 table update. This is a rare case in preallocate() but can happen. This patch fixes preallocate() by iterating over the whole list of QCowL2Metas. Compare with the qcow2_co_writev() function's implementation, which is similar but also also handles request dependencies. preallocate() only performs one allocation at a time so there can be no dependencies. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 9302e863aa8baa5d932fc078967050c055fa1a7f Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:06:09 2014 +0100 parallels: Sanity check for s->tracks (CVE-2014-0142) This avoids a possible division by zero. Convert s->tracks to unsigned as well because it feels better than surviving just because the results of calculations with s->tracks are converted to unsigned anyway. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit afbcc40bee4ef51731102d7d4b499ee12fc182e1 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:06:08 2014 +0100 parallels: Fix catalog size integer overflow (CVE-2014-0143) The first test case would cause a huge memory allocation, leading to a qemu abort; the second one to a too small malloc() for the catalog (smaller than s->catalog_size), which causes a read-only out-of-bounds array access and on big endian hosts an endianess conversion for an undefined memory area. The sample image used here is not an original Parallels image. It was created using an hexeditor on the basis of the struct that qemu uses. Good enough for trying to crash the driver, but not for ensuring compatibility. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5dae6e30c531feb31eed99f9039b52bf70832ce3 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:06:07 2014 +0100 qcow2: Limit snapshot table size Even with a limit of 64k snapshots, each snapshot could have a filename and an ID with up to 64k, which would still lead to pretty large allocations, which could potentially lead to qemu aborting. Limit the total size of the snapshot table to an average of 1k per entry when the limit of 64k snapshots is fully used. This should be plenty for any reasonable user. This also fixes potential integer overflows of s->snapshot_size. Suggested-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6a83f8b5bec6f59e56cc49bd49e4c3f8f805d56f Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:06:06 2014 +0100 qcow2: Check maximum L1 size in qcow2_snapshot_load_tmp() (CVE-2014-0143) This avoids an unbounded allocation. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c05e4667be91b46ab42b5a11babf8e84d476cc6b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:06:05 2014 +0100 qcow2: Fix L1 allocation size in qcow2_snapshot_load_tmp() (CVE-2014-0145) For the L1 table to loaded for an internal snapshot, the code allocated only enough memory to hold the currently active L1 table. If the snapshot's L1 table is actually larger than the current one, this leads to a buffer overflow. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 11b128f4062dd7f89b14abc8877ff20d41b28be9 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:06:04 2014 +0100 qcow2: Fix NULL dereference in qcow2_open() error path (CVE-2014-0146) The qcow2 code assumes that s->snapshots is non-NULL if s->nb_snapshots != 0. By having the initialisation of both fields separated in qcow2_open(), any error occuring in between would cause the error path to dereference NULL in qcow2_free_snapshots() if the image had any snapshots. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6b7d4c55586a849aa8313282d79432917eade3bf Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:06:03 2014 +0100 qcow2: Fix copy_sectors() with VM state bs->total_sectors is not the highest possible sector number that could be involved in a copy on write operation: VM state is after the end of the virtual disk. This resulted in wrong values for the number of sectors to be copied (n). The code that checks for the end of the image isn't required any more because the code hasn't been calling the block layer's bdrv_read() for a long time; instead, it directly calls qcow2_readv(), which doesn't error out on VM state sector numbers. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8f4754ede56e3f9ea3fd7207f4a7c4453e59285b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:06:02 2014 +0100 block: Limit request size (CVE-2014-0143) Limiting the size of a single request to INT_MAX not only fixes a direct integer overflow in bdrv_check_request() (which would only trigger bad behaviour with ridiculously huge images, as in close to 2^64 bytes), but can also prevent overflows in all block drivers. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1e7226f70c9d944ae7f233b65fb4adda8f910dfe Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Fri Mar 28 11:42:25 2014 -0400 block: vdi bounds check qemu-io tests This test checks for proper bounds checking of some VDI input headers. The following is checked: 1. Max image size (1024TB) with the appropriate Blocks In Image value (0x3fffffff) is detected as valid. 2. Image size exceeding max (1024TB) is seen as invalid 3. Valid image size but with Blocks In Image value that is too small fails 4. Blocks In Image size exceeding max (0x3fffffff) is seen as invalid 5. 64MB image, with 64 Blocks In Image, and 1MB Block Size is seen as valid 6. Block Size < 1MB not supported 7. Block Size > 1MB not supported [Max Reitz <mreitz@xxxxxxxxxx> pointed out that "1MB + 1" in the test case is wrong. Change to "1MB + 64KB" to match the 0x110000 value. --Stefan] Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f0dce23475b5af5da6b17b97c1765271307734b6 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 26 13:06:00 2014 +0100 dmg: prevent chunk buffer overflow (CVE-2014-0145) Both compressed and uncompressed I/O is buffered. dmg_open() calculates the maximum buffer size needed from the metadata in the image file. There is currently a buffer overflow since ->lengths[] is accounted against the maximum compressed buffer size but actually uses the uncompressed buffer: switch (s->types[chunk]) { case 1: /* copy */ ret = bdrv_pread(bs->file, s->offsets[chunk], s->uncompressed_chunk, s->lengths[chunk]); We must account against the maximum uncompressed buffer size for type=1 chunks. This patch fixes the maximum buffer size calculation to take into account the chunk type. It is critical that we update the correct maximum since there are two buffers ->compressed_chunk and ->uncompressed_chunk. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 686d7148ec23402a172628c800022b3a95a022c9 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 26 13:05:59 2014 +0100 dmg: use uint64_t consistently for sectors and lengths The DMG metadata is stored as uint64_t, so use the same type for sector_num. int was a particularly poor choice since it is only 32-bit and would truncate large values. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c165f7758009a4f793c1fc19ebb69cf55313450b Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 26 13:05:58 2014 +0100 dmg: sanitize chunk length and sectorcount (CVE-2014-0145) Chunk length and sectorcount are used for decompression buffers as well as the bdrv_pread() count argument. Ensure that they have reasonable values so neither memory allocation nor conversion from uint64_t to int will cause problems. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit eb71803b041f55779ea10d860c0f66df285c68de Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 26 13:05:57 2014 +0100 dmg: use appropriate types when reading chunks Use the right types instead of signed int: size_t new_size; This is a byte count for g_realloc() that is calculated from uint32_t and size_t values. uint32_t chunk_count; Use the same type as s->n_chunks, which is used together with chunk_count. This patch is a cleanup and does not fix bugs. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b404bf854217dbe8a5649449eb3ad33777f7d900 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 26 13:05:56 2014 +0100 dmg: drop broken bdrv_pread() loop It is not necessary to check errno for EINTR and the block layer does not produce short reads. Therefore we can drop the loop that attempts to read a compressed chunk. The loop is buggy because it incorrectly adds the transferred bytes twice: do { ret = bdrv_pread(...); i += ret; } while (ret >= 0 && ret + i < s->lengths[chunk]); Luckily we can drop the loop completely and perform a single bdrv_pread(). Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 73ed27ec28a1dbebdd2ae792284151f029950fbe Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 26 13:05:55 2014 +0100 dmg: prevent out-of-bounds array access on terminator When a terminator is reached the base for offsets and sectors is stored. The following records that are processed will use this base value. If the first record we encounter is a terminator, then calculating the base values would result in out-of-bounds array accesses. Don't do that. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2c1885adcf0312da80c7317b09f9adad97fa0fc6 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 26 13:05:54 2014 +0100 dmg: coding style and indentation cleanup Clean up the mix of tabs and spaces, as well as the coding style violations in block/dmg.c. There are no semantic changes since this patch simply reformats the code. This patch is necessary before we can make meaningful changes to this file, due to the inconsistent formatting and confusing indentation. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit cab60de930684c33f67d4e32c7509b567f8c445b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:53 2014 +0100 qcow2: Fix new L1 table size check (CVE-2014-0143) The size in bytes is assigned to an int later, so check that instead of the number of entries. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0abe740f1de899737242bcba1fb4a9857f7a3087 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:52 2014 +0100 qcow2: Protect against some integer overflows in bdrv_check Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bb572aefbdac290363bfa5ca0e810ccce0a14ed6 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:51 2014 +0100 qcow2: Fix types in qcow2_alloc_clusters and alloc_clusters_noref In order to avoid integer overflows. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2b5d5953eec0cc541857c3df812bdf8421596ab2 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:50 2014 +0100 qcow2: Check new refcount table size on growth If the size becomes larger than what qcow2_open() would accept, fail the growing operation. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit db8a31d11d6a60f48d6817530640d75aa72a9a2f Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:49 2014 +0100 qcow2: Avoid integer overflow in get_refcount (CVE-2014-0143) This ensures that the checks catch all invalid cluster indexes instead of returning the refcount of a wrong cluster. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b106ad9185f35fc4ad669555ad0e79e276083bd7 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Mar 28 18:06:31 2014 +0100 qcow2: Don't rely on free_cluster_index in alloc_refcount_block() (CVE-2014-0147) free_cluster_index is only correct if update_refcount() was called from an allocation function, and even there it's brittle because it's used to protect unfinished allocations which still have a refcount of 0 - if it moves in the wrong place, the unfinished allocation can be corrupted. So not using it any more seems to be a good idea. Instead, use the first requested cluster to do the calculations. Return -EAGAIN if unfinished allocations could become invalid and let the caller restart its search for some free clusters. The context of creating a snapsnot is one situation where update_refcount() is called outside of a cluster allocation. For this case, the change fixes a buffer overflow if a cluster is referenced in an L2 table that cannot be represented by an existing refcount block. (new_table[refcount_table_index] was out of bounds) [Bump the qemu-iotests 026 refblock_alloc.write leak count from 10 to 11. --Stefan] Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6d33e8e7dc9d40ea105feed4b39caa3e641569e8 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:47 2014 +0100 qcow2: Fix backing file name length check len could become negative and would pass the check then. Nothing bad happened because bdrv_pread() happens to return an error for negative length values, but make variables for sizes unsigned anyway. This patch also changes the behaviour to error out on invalid lengths instead of silently truncating it to 1023. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2d51c32c4b511db8bb9e58208f1e2c25e4c06c85 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:46 2014 +0100 qcow2: Validate active L1 table offset and size (CVE-2014-0144) This avoids an unbounded allocation. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ce48f2f441ca98885267af6fd636a7cb804ee646 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:45 2014 +0100 qcow2: Validate snapshot table offset/size (CVE-2014-0144) This avoid unbounded memory allocation and fixes a potential buffer overflow on 32 bit hosts. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8c7de28305a514d7f879fdfc677ca11fbf60d2e9 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:44 2014 +0100 qcow2: Validate refcount table offset The end of the refcount table must not exceed INT64_MAX so that integer overflows are avoided. Also check for misaligned refcount table. Such images are invalid and probably the result of data corruption. Error out to avoid further corruption. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5dab2faddc8eaa1fb1abdbe2f502001fc13a1b21 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:43 2014 +0100 qcow2: Check refcount table size (CVE-2014-0144) Limit the in-memory reference count table size to 8 MB, it's enough in practice. This fixes an unbounded allocation as well as a buffer overflow in qcow2_refcount_init(). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a1b3955c9415b1e767c130a2f59fee6aa28e575b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:42 2014 +0100 qcow2: Check backing_file_offset (CVE-2014-0144) Header, header extension and the backing file name must all be stored in the first cluster. Setting the backing file to a much higher value allowed header extensions to become much bigger than we want them to be (unbounded allocation). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 24342f2cae47d03911e346fe1e520b00dc2818e0 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:41 2014 +0100 qcow2: Check header_length (CVE-2014-0144) This fixes an unbounded allocation for s->unknown_header_fields. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6d4b9e55fc625514a38d27cff4b9933f617fa7dc Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Mar 26 13:05:40 2014 +0100 curl: check data size before memcpy to local buffer. (CVE-2014-0144) curl_read_cb is callback function for libcurl when data arrives. The data size passed in here is not guaranteed to be within the range of request we submitted, so we may overflow the guest IO buffer. Check the real size we have before memcpy to buffer to avoid overflow. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1d7678dec4761acdc43439da6ceda41a703ba1a6 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Mar 26 13:05:39 2014 +0100 vhdx: Bounds checking for block_size and logical_sector_size (CVE-2014-0148) Other variables (e.g. sectors_per_block) are calculated using these variables, and if not range-checked illegal values could be obtained causing infinite loops and other potential issues when calculating BAT entries. The 1.00 VHDX spec requires BlockSize to be min 1MB, max 256MB. LogicalSectorSize is required to be either 512 or 4096 bytes. Reported-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 63fa06dc978f3669dbfd9443b33cde9e2a7f4b41 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Fri Mar 28 11:42:24 2014 -0400 vdi: add bounds checks for blocks_in_image and disk_size header fields (CVE-2014-0144) The maximum blocks_in_image is 0xffffffff / 4, which also limits the maximum disk_size for a VDI image to 1024TB. Note that this is the maximum size that QEMU will currently support with this driver, not necessarily the maximum size allowed by the image format. This also fixes an incorrect error message, a bug introduced by commit 5b7aa9b56d1bfc79916262f380c3fc7961becb50 (Reported by Stefan Weil) Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5e71dfad763d67bb64be79e20e93411c0c30ad25 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:37 2014 +0100 vpc: Validate block size (CVE-2014-0142) This fixes some cases of division by zero crashes. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 97f1c45c6f456572e5b504b8614e4a69e23b8e3a Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Mar 26 13:05:36 2014 +0100 vpc/vhd: add bounds check for max_table_entries and block_size (CVE-2014-0144) This adds checks to make sure that max_table_entries and block_size are in sane ranges. Memory is allocated based on max_table_entries, and block_size is used to calculate indices into that allocated memory, so if these values are incorrect that can lead to potential unbounded memory allocation, or invalid memory accesses. Also, the allocation of the pagetable is changed from g_malloc0() to qemu_blockalign(). Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a9ba36a45dfac645a810c31ce15ab393b69d820a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:35 2014 +0100 bochs: Fix bitmap offset calculation 32 bit truncation could let us access the wrong offset in the image. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8e53abbc20d08ae3ec30c2054e1161314ad9501d Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:34 2014 +0100 bochs: Check extent_size header field (CVE-2014-0142) This fixes two possible division by zero crashes: In bochs_open() and in seek_to_sector(). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e3737b820b45e54b059656dc3f914f895ac7a88b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:33 2014 +0100 bochs: Check catalog_size header field (CVE-2014-0143) It should neither become negative nor allow unbounded memory allocations. This fixes aborts in g_malloc() and an s->catalog_bitmap buffer overflow on big endian hosts. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 246f65838d19db6db55bfb41117c35645a2c4789 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:32 2014 +0100 bochs: Use unsigned variables for offsets and sizes (CVE-2014-0147) Gets us rid of integer overflows resulting in negative sizes which aren't correctly checked. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3dd8a6763bcc50dfc3de8da9279b741c0dea9fb1 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:31 2014 +0100 bochs: Unify header structs and make them QEMU_PACKED This is an on-disk structure, so offsets must be accurate. Before this patch, sizeof(bochs) != sizeof(header_v1), which makes the memcpy() between both invalid. We're lucky enough that the destination buffer happened to be the larger one, and the memcpy size to be taken from the smaller one, so we didn't get a buffer overflow in practice. This patch unifies the both structures, eliminating the need to do a memcpy in the first place. The common fields are extracted to the top level of the struct and the actually differing part gets a union of the two versions. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 24f3078a049c52070adfc659fc3a1a71a11a7765 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 26 13:05:30 2014 +0100 qemu-iotests: Support for bochs format Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 42d43d35d907579179a39c924d169da924786f65 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 26 13:05:29 2014 +0100 block/cloop: fix offsets[] size off-by-one cloop stores the number of compressed blocks in the n_blocks header field. The file actually contains n_blocks + 1 offsets, where the extra offset is the end-of-file offset. The following line in cloop_read_block() results in an out-of-bounds offsets[] access: uint32_t bytes = s->offsets[block_num + 1] - s->offsets[block_num]; This patch allocates and loads the extra offset so that cloop_read_block() works correctly when the last block is accessed. Notice that we must free s->offsets[] unconditionally now since there is always an end-of-file offset. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f56b9bc3ae20fc93815b34aa022be919941406ce Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 26 13:05:28 2014 +0100 block/cloop: refuse images with bogus offsets (CVE-2014-0144) The offsets[] array allows efficient seeking and tells us the maximum compressed data size. If the offsets are bogus the maximum compressed data size will be unrealistic. This could cause g_malloc() to abort and bogus offsets mean the image is broken anyway. Therefore we should refuse such images. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7b103b36d6ef3b11827c203d3a793bf7da50ecd6 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 26 13:05:27 2014 +0100 block/cloop: refuse images with huge offsets arrays (CVE-2014-0144) Limit offsets_size to 512 MB so that: 1. g_malloc() does not abort due to an unreasonable size argument. 2. offsets_size does not overflow the bdrv_pread() int size argument. This limit imposes a maximum image size of 16 TB at 256 KB block size. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 509a41bab5306181044b5fff02eadf96d9c8676a Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 26 13:05:26 2014 +0100 block/cloop: prevent offsets_size integer overflow (CVE-2014-0143) The following integer overflow in offsets_size can lead to out-of-bounds memory stores when n_blocks has a huge value: uint32_t n_blocks, offsets_size; [...] ret = bdrv_pread(bs->file, 128 + 4, &s->n_blocks, 4); [...] s->n_blocks = be32_to_cpu(s->n_blocks); /* read offsets */ offsets_size = s->n_blocks * sizeof(uint64_t); s->offsets = g_malloc(offsets_size); [...] for(i=0;i<s->n_blocks;i++) { s->offsets[i] = be64_to_cpu(s->offsets[i]); offsets_size can be smaller than n_blocks due to integer overflow. Therefore s->offsets[] is too small when the for loop byteswaps offsets. This patch refuses to open files if offsets_size would overflow. Note that changing the type of offsets_size is not a fix since 32-bit hosts still only have 32-bit size_t. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d65f97a82c4ed48374a764c769d4ba1ea9724e97 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 26 13:05:25 2014 +0100 block/cloop: validate block_size header field (CVE-2014-0144) Avoid unbounded s->uncompressed_block memory allocation by checking that the block_size header field has a reasonable value. Also enforce the assumption that the value is a non-zero multiple of 512. These constraints conform to cloop 2.639's code so we accept existing image files. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 05560fcebb1528f4354f6f24d1eb8cdbcdf2c4b2 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 26 13:05:24 2014 +0100 qemu-iotests: add cloop input validation tests Add a cloop format-specific test case. Later patches add tests for input validation to the script. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 47f73da0a7d36e399eaa353d93afce90de9b599d Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 26 13:05:23 2014 +0100 qemu-iotests: add ./check -cloop support Add the cloop block driver to qemu-iotests. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c5a33ee9eee031c9bae362b9bd7045cd8ff24d86 Author: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Date: Fri Mar 28 23:08:58 2014 +0530 qcow2: fix two memory leaks in qcow2_open error code path Signed-off-by: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4c7096607d0378de8d999c996802a73e601b2722 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Mar 27 13:35:31 2014 +0100 vvfat: Fix :floppy: option to suppress partition table Regressed in commit 7ad9be6, v1.5.0. Reported-by: Kiyokazu SUTO <suto@xxxxxxxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bdf866fe6cce1f949227c32fcc9b7320fcdc60c6 Author: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Date: Wed Mar 26 01:55:53 2014 +0530 qemu-img: Release reference to BlockDriverState Signed-off-by: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bdcc3a28b7f6ed6b90ad8b8af7b5d17e0d3f1f06 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Mar 31 16:07:30 2014 +0200 input: add sanity check Check we've actually found a input handler before trying to call it. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 0419f78fae1d70bb5de0d44be62ec9741c5a742b Author: Hani Benhabiles <kroosec@xxxxxxxxx> Date: Mon Mar 31 23:09:06 2014 +0100 input: mouse_set should check input device type. Otherwise, the index of an input device like a usb-kbd is silently accepted. (qemu) info mice Mouse #2: QEMU PS/2 Mouse * Mouse #3: QEMU HID Mouse (qemu) mouse_set 1 (qemu) info mice Mouse #2: QEMU PS/2 Mouse * Mouse #3: QEMU HID Mouse Also replace monitor_printf() call in do_mouse_set() with error_report() and adjust error message. Signed-off-by: Hani Benhabiles <hani@xxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e82597f6f83bf872677cde37e540882880dcbafe Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Mar 25 12:41:46 2014 +0100 input: fix input_event_key_number trace event Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit d25295d4efc53bf8521adf967445b8d087fe8d39 Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Mon Mar 31 17:41:23 2014 +0200 linux-user: pass correct host flags to accept4() Flags NONBLOCK and CLOEXEC can have different values on the host and the guest, so set correct host values before calling accept4(). This fixes several issues with accept4 system call and user-mode of QEMU. Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 95224e87a71d3190f46bf543ec9bc59ae36050eb Merge: 63678e1 7373fc7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 31 22:11:29 2014 +0100 Merge remote-tracking branch 'remotes/afaerber/tags/qom-devices-for-2.0' into staging QOM/QTest infrastructure fixes * Revised QTest SIGABRT fix * Test cleanups for non-POSIX hosts * QTest test cases for NVMe, virtio-9p, pvpanic, i82801b11 * QTest API addition for reading events * TMP105 fix and regression test # gpg: Signature made Mon 31 Mar 2014 22:08:10 BST using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/qom-devices-for-2.0: tmp105-test: Test QOM property and precision tmp105-test: Add a second sensor and test that one tmp105-test: Wrap simple building blocks for testing tmp105: Read temperature in milli-celsius tests: Add i82801b11 qtest pvpanic-test: Assert pause event qtest: Factor out qtest_qmp_receive() tests: Add pvpanic qtest tests: Add virtio-9p qtest tests: Add nvme qtest nvme: Permit zero-length block devices tests: Correctly skip qtest on non-POSIX hosts tests: Skip POSIX-only tests on Windows tests: Remove unsupported tests for MinGW qtest: Keep list of qtest instances for SIGABRT handler Revert "qtest: Fix crash if SIGABRT during qtest_init()" Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7373fc76930fc0994bab1bc2defd1d3a2b2adaa3 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Mar 31 18:26:35 2014 +0200 tmp105-test: Test QOM property and precision This adds a regression test for commit efdf6a56a7c73753dd135ed085a223a119b5d805 (tmp105: Read temperature in milli-celsius). Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a4ec5bb7188490ad65b916a4a2e6ea7129602b60 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Mar 31 18:26:34 2014 +0200 tmp105-test: Add a second sensor and test that one This will make it easier to reach the device under test via QOM. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit cebac614983a7479f2cd3b903e2127edd865c013 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Mar 31 18:26:33 2014 +0200 tmp105-test: Wrap simple building blocks for testing The next patches will add more reads and writes. Add a simple testing API for this. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit efdf6a56a7c73753dd135ed085a223a119b5d805 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Mar 31 18:26:32 2014 +0200 tmp105: Read temperature in milli-celsius Right now, the temperature property must be written in milli-celsius, but it reads back the value in 8.8 fixed point. Fix this by letting the property read back the original value (possibly rounded). Also simplify the code that does the conversion. Before: (QEMU) qom-set path=/machine/peripheral/sensor property=temperature value=20000 {u'return': {}} (QEMU) qom-get path=sensor property=temperature {u'return': 5120} After: (QEMU) qom-set path=/machine/peripheral/sensor property=temperature value=20000 {u'return': {}} (QEMU) qom-get path=sensor property=temperature {u'return': 20000} Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit e683eb9ecc5cb72a6e89ddacaf097cb8fa839584 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Feb 21 22:43:43 2014 +0100 tests: Add i82801b11 qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 627b1a17ced89e13df34a85feef54a50e9b94191 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Feb 21 21:17:17 2014 +0100 pvpanic-test: Assert pause event Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 66e0c7b187e130f5059e45e12832951deda31668 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Feb 21 20:55:30 2014 +0100 qtest: Factor out qtest_qmp_receive() Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit abc53733f34a8a29cc49c1ecb6475a11a44dcb7a Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Feb 21 20:38:48 2014 +0100 tests: Add pvpanic qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 2d888c099cb89eea0c5329d66abf6cd2865eed8a Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Feb 21 17:15:21 2014 +0100 tests: Add virtio-9p qtest Make it conditional to 9p availability. Create a temporary directory to share. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit fc9677915cc1273b4757a911f27f2f5038168053 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Feb 21 22:19:43 2014 +0100 tests: Add nvme qtest Acked-by: Keith Busch <keith.busch@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 592408b8cab08bb4ec4771d7b1e20343b7f072fc Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Feb 21 22:18:31 2014 +0100 nvme: Permit zero-length block devices It may not be sensible for normal use cases, but it allows to use /dev/null in QTest. Acked-by: Keith Busch <keith.busch@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5c4e24c1516b6b8c21b6defcd4ffcf05f21202f7 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Fri Mar 28 10:55:54 2014 +0100 tests: Correctly skip qtest on non-POSIX hosts qtest test cases only work on POSIX hosts. The following line only defines dependencies for qtest binaries on POSIX hosts: check-qtest-$(CONFIG_POSIX)=$(foreach TARGET,$(TARGETS),$(check-qtest-$(TARGET)-y)) But the QTEST_TARGETS definition earlier in the Makefile fails to check CONFIG_POSIX. This causes make targets to be generated for qtest test cases even though we don't know how to build the binaries. The following error message is printed when trying to run gtester on a binary that was never built: GLib-WARNING **: Failed to execute test binary: tests/endianness-test.exe: Failed to execute child process "tests/endianness-test.exe" (No such file or directory) This patch makes QTEST_TARGETS empty on non-POSIX hosts. This prevents the targets from being generated. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d597a32a6dc5b2ef58b280100cd551b7fb30c963 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Fri Mar 28 10:55:53 2014 +0100 tests: Skip POSIX-only tests on Windows test-rfifolock and test-vmstate only build on POSIX hosts. Exclude them if building for Windows. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 087570942994db2550b0aa377fedca2235373004 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Fri Mar 28 10:55:52 2014 +0100 tests: Remove unsupported tests for MinGW test_timer_schedule and test_source_timer_schedule don't compile for MinGW because some functions are not implemented for MinGW (qemu_pipe, aio_set_fd_handler). Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d766825190615bc0b1b57d2837475cdec1a075de Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Mar 27 15:09:50 2014 +0100 qtest: Keep list of qtest instances for SIGABRT handler Keep track of active qtest instances so we can kill them when the test aborts. This ensures no QEMU processes are left running after test failure. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 96b8ca47f8f21ba32a60930cddbf5da27d36b20d Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Mar 27 15:09:49 2014 +0100 Revert "qtest: Fix crash if SIGABRT during qtest_init()" It turns out there are test cases that use multiple libqtest instances. We cannot use a global qtest instance in the SIGABRT handler. This reverts commit cb201b4872f16dfbce63f8648b2584631e2e965f. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 63678e17cf399ff81b93417fe7bee8d6ef6b6b1b Author: Steven Noonan <steven@xxxxxxxxxxxxxx> Date: Fri Mar 28 17:19:02 2014 +0100 configure: add option to disable -fstack-protector flags The -fstack-protector flag family is useful for ensuring safety and for debugging, but has a performance impact. Here are some boot time comparisons of the various versions of -fstack-protector using qemu-system-arm on an x86_64 host: # -fstack-protector-all Startup finished in 1.810s (kernel) + 12.331s (initrd) + 49.016s (userspace) = 1min 3.159s Startup finished in 1.801s (kernel) + 12.287s (initrd) + 47.925s (userspace) = 1min 2.013s Startup finished in 1.812s (kernel) + 12.302s (initrd) + 47.995s (userspace) = 1min 2.111s # -fstack-protector-strong Startup finished in 1.744s (kernel) + 11.223s (initrd) + 44.688s (userspace) = 57.657s Startup finished in 1.721s (kernel) + 11.222s (initrd) + 44.194s (userspace) = 57.138s Startup finished in 1.693s (kernel) + 11.250s (initrd) + 44.426s (userspace) = 57.370s # -fstack-protector Startup finished in 1.705s (kernel) + 11.409s (initrd) + 43.563s (userspace) = 56.677s Startup finished in 1.877s (kernel) + 11.137s (initrd) + 43.719s (userspace) = 56.734s Startup finished in 1.708s (kernel) + 11.141s (initrd) + 43.628s (userspace) = 56.478s # no stack protector Startup finished in 1.743s (kernel) + 11.190s (initrd) + 43.709s (userspace) = 56.643s Startup finished in 1.763s (kernel) + 11.216s (initrd) + 43.767s (userspace) = 56.747s Startup finished in 1.711s (kernel) + 11.283s (initrd) + 43.878s (userspace) = 56.873s This patch introduces a configure option to disable the stack protector entirely, and conditional stack protector flag selection (in order, based on availability): -fstack-protector-strong, -fstack-protector-all, no stack protector. Signed-off-by: Steven Noonan <snoonan@xxxxxxxxxx> Cc: Anthony Liguori <aliguori@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> [Prefer -fstack-protector-all to -fstack-protector, suggested by Laurent Desnogues. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 58b590148ca1b19f64f533d40e32b5acce5c21e7 Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Mon Mar 31 14:31:44 2014 -0400 pci: Fix clearing IRQs on reset irq_state is cleared before calling pci_device_deassert_intx, but the latter misbehaves if the former isn't accurate. In this case, any raised IRQs are not cleared, which hits an assertion in pcibus_reset: qemu-system-x86_64: hw/pci/pci.c:250: pcibus_reset: Assertion `bus->irq_count[i] == 0' failed. pci_device_deassert_intx should clear irq_state anyways, so add an assert. This fixes migration with usb2 + usb-tablet. Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Message-id: 7da1ad94ce027183b4049c2de370cb191b0073c1.1396290569.git.crobinso@xxxxxxxxxx Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7d4d7975e58b66de6a67ecb5aa9656653653a658 Merge: 8648fcd 0d6d1ab Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 31 18:47:14 2014 +0100 Merge remote-tracking branch 'remotes/afaerber/tags/qom-cpu-for-2.0' into staging QOM CPUState refactorings / X86CPU * X86CPU IA32e 1GB paging support * Performance quickfix for CPU() cast macro # gpg: Signature made Mon 31 Mar 2014 18:33:27 BST using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/qom-cpu-for-2.0: cpu: Avoid QOM casts for CPU() target-i386: x86_cpu_get_phys_page_debug(): support 1GB page translation Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0d6d1ab4990b6e8c6f24e9b1308801d657d411ad Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Mar 28 16:25:07 2014 +0100 cpu: Avoid QOM casts for CPU() CPU address spaces touching load and store helpers as well as the movement of (almost) all fields from CPU_COMMON to CPUState have led to a noticeable increase of CPU() usage in "hot" paths for both TCG and KVM. While CPU()'s OBJECT_CHECK() might help detect development errors, i.e. in form of crashes due to QOM vs. non-QOM mismatches rather than QOM type mismatches, it is not really needed at runtime since mostly used in CPU-specific paths, coming from a target-specific CPU subtype. If that pointer is damaged, other errors are highly likely to occur elsewhere anyway. Keep the CPU() macro for a consistent developer experience and for flexibility to exchange its implementation, but turn it into a pure, unchecked C cast for now. Compare commit 6e42be7cd10260fd3a006d94f6c870692bf7a2c0. Reported-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Suggested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c8c14bcb72e436fb4aff99b4b2b92e44f2e715b5 Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Wed Mar 19 17:03:53 2014 -0400 target-i386: x86_cpu_get_phys_page_debug(): support 1GB page translation Linux guests, when using more than 4GB of RAM, may end up using 1GB pages to store (kernel) data. When this happens, we're unable to debug a running Linux kernel with GDB: (gdb) p node_data[0]->node_id Cannot access memory at address 0xffff88013fffd3a0 (gdb) GDB returns this error because x86_cpu_get_phys_page_debug() doesn't support translating 1GB pages in IA-32e paging mode and returns an error to GDB. This commit adds support for 1GB page translation for IA32e paging. Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 8648fcd52a9bcc2aa415cbe87b7c636e545acb38 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Mar 20 02:01:55 2014 +0100 make-release: Record SeaBIOS version Before deleting .git, determine the version and save it in .version file. Cc: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Message-id: 1395277315-7806-1-git-send-email-afaerber@xxxxxxx Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit b3706faf0d8e4f9275c73895d93a16fbffb9d370 Merge: 3b6144b 1a8e80d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Mar 28 14:52:27 2014 +0000 Merge remote-tracking branch 'remotes/rth/tcg-arm-unaligned' into staging * remotes/rth/tcg-arm-unaligned: tcg-arm: Avoid ldrd/strd for user-only emulation Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3b6144bdbb42705c95e3ed0e8c7bbe277352c0b8 Merge: 9c5793c b89834f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Mar 28 13:46:28 2014 +0000 Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging acpi,pc,build bug fixes Here are some bugfixes for 2.0. A bugfix for acpi for pci bridges, and a build fix for old systems without pthread_setname_np: both fix regressions so we definitely want to include them. HPET fix is not for a regression but looks very safe, fixes a nasty bug and has been on list for a while. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Fri 28 Mar 2014 12:00:12 GMT using RSA key ID D28D5469 # gpg: Good signature from "Michael S. Tsirkin <mst@xxxxxxxxxx>" # gpg: aka "Michael S. Tsirkin <mst@xxxxxxxxxx>" * remotes/mst/tags/for_upstream: acpi: fix ACPI generation for pci bridges Don't enable a HPET timer if HPET is disabled Detect pthread_setname_np at configure time Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit b89834f4d79070a26536cb73fe5216a2364551eb Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Mar 27 17:35:36 2014 +0200 acpi: fix ACPI generation for pci bridges Commit 8dcf525abc5dff785251a881f9764dd961065c0d acpi-build: append description for non-hotplug appended description for all occupied non hotpluggable PCI slots. However the bridge devices are already added to SSDT, adding them again will create an incorrect SSDT table. Fixed by skipping the pci bridge devices, marking them as 'system'. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 1a8e80d7e82aa385ad887dba5d039e399a18264b Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Mar 25 17:11:37 2014 -0400 tcg-arm: Avoid ldrd/strd for user-only emulation The arm ldrd/strd insns must cause alignment traps, whereas at least for armv7 ldr/str must handle unaligned operations. While this is hardly the only problem facing user-only emu, this solves one problem for i386 on armv7 emulation. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reported-by: Huw Davies <huw@xxxxxxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 9c5793c5036c7608ff2c87846c6d11f904c08b58 Merge: c6c09ba 76ac994 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 27 17:08:30 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/ppc-for-2.0' into staging PowerPC queue for 2.0 * OpenPIC fix * MSR fixes for POWER7 upwards * TCG instruction set support fix for POWER8 # gpg: Signature made Thu 27 Mar 2014 16:12:12 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/ppc-for-2.0: target-ppc: MSR_POW not supported on POWER7/7+/8 target-ppc: POWER7+ supports the MSR_VSX bit target-ppc: POWER8 supports isel target-ppc: POWER8 supports the MSR_LE bit intc/openpic_kvm: Fix MemListener delete region callback function Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c6c09ba9950407a075bfe19c7604f09b71499a20 Merge: 6ff45f0 3768d50 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 27 16:38:58 2014 +0000 Merge remote-tracking branch 'remotes/mjt/tags/trivial-patches-2014-03-27' into staging trivial patches for 2014-03-27 # gpg: Signature made Thu 27 Mar 2014 15:23:53 GMT using RSA key ID 74F0C838 # gpg: Good signature from "Michael Tokarev <mjt@xxxxxxxxxx>" # gpg: aka "Michael Tokarev <mjt@xxxxxxxxx>" # gpg: aka "Michael Tokarev <mjt@xxxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 6EE1 95D1 886E 8FFB 810D 4324 457C E0A0 8044 65C5 # Subkey fingerprint: E190 8639 3B10 B51B AC2C 8B73 5253 C5AD 74F0 C838 * remotes/mjt/tags/trivial-patches-2014-03-27: (23 commits) linux-user: remove duplicate statement hw/timer/grlib_gptimer: remove unnecessary assignment hw/pci-host/apb.c: Avoid shifting left into sign bit hw/intc/xilinx_intc: Avoid shifting left into sign bit hw/intc/slavio_intctl: Avoid shifting left into sign bit tests/libqos/pci-pc: Avoid shifting left into sign bit hw/ppc: Avoid shifting left into sign bit hw/intc/openpic: Avoid shifting left into sign bit hw/usb/hcd-ohci.c: Avoid shifting left into sign bit target-mips: Avoid shifting left into sign bit hw/i386/acpi_build.c: Avoid shifting left into sign bit hw/pci/pci_host.c: Avoid shifting left into sign bit hw/intc/apic.c: Use uint32_t for mask word in foreach_apic target-i386: Avoid shifting left into sign bit CODING_STYLE: Section about mixed declarations doc: update default PowerPC framebuffer settings doc: update sun4m documentation fix return check for KVM_GET_DIRTY_LOG ioctl target-i386: Add missing 'static' and 'const' attributes util: Add 'static' attribute to function implementation ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c36ad13fe9ece9a21a8c1dd082473a2b182298ee Author: Matt Lupfer <mlupfer@xxxxxxx> Date: Fri Feb 21 21:37:23 2014 -0700 Don't enable a HPET timer if HPET is disabled A HPET timer can be started when HPET is not yet enabled. This will not generate an interrupt to the guest, but causes problems when HPET is later enabled. A timer that is created and expires at least once before HPET is enabled will have an initialized comparator based on a hpet_offset of 0 (uninitialized). When HPET is enabled, hpet_set_timer() is called a second time, which modifies the timer expiry to a time based on the difference between current ticks (measured with the newly initialized hpet_offset) and the timer's comparator (which was generated before hpet_offset was initialized). This results in a long period of no HPET timer ticks. When this occurs with a CentOS 5.x guest, the guest may not receive timer interrupts during its narrow timer check window and panic on boot. Signed-off-by: Matt Lupfer <mlupfer@xxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 5c312079417908381ffca44d18150b6a990c4f0b Author: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Date: Wed Mar 12 11:48:18 2014 +0000 Detect pthread_setname_np at configure time Warn if no way of setting thread name is available. Signed-off-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 6ff45f01c734e1ad051f19913449e2577c9f4b7d Merge: 9ad665d a7a5544 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 27 15:29:33 2014 +0000 Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20140327' into staging target-arm queue: * Don't default to integratorcp board if no machine specified # gpg: Signature made Thu 27 Mar 2014 14:09:12 GMT using RSA key ID 14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@xxxxxxxxxx>" * remotes/pmaydell/tags/pull-target-arm-20140327: vl.c: Improve message when no default machine is found hw/arm: Stop specifying integratorcp as the default board Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3768d505adcd6c3fe819432d7dabd312995fa678 Author: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Date: Sun Mar 23 14:58:42 2014 +0530 linux-user: remove duplicate statement Signed-off-by: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Acked-by: Riku Voipio <riku.voipio@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit c9f2d70cc88346d50020d01face2135481e5acde Author: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Date: Sun Mar 23 14:58:41 2014 +0530 hw/timer/grlib_gptimer: remove unnecessary assignment Signed-off-by: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit af23906d50c7d7c28e7e5ff49f7cbf0fa5c6228a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:00:41 2014 +0000 hw/pci-host/apb.c: Avoid shifting left into sign bit Add U suffix to avoid undefined behaviour. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 0bc60bd7b34ad6e59b47dbf91179ba9427a85df7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:00:40 2014 +0000 hw/intc/xilinx_intc: Avoid shifting left into sign bit Avoid undefined behaviour shifting left into the sign bit. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 7d45e784015971e70239e33256fd606638107a3e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:00:39 2014 +0000 hw/intc/slavio_intctl: Avoid shifting left into sign bit Add 'U' suffix to avoid undefined behaviour. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit a879125b47c3ae554c01824f996a64a45a86556e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:00:38 2014 +0000 tests/libqos/pci-pc: Avoid shifting left into sign bit Add U suffix when doing "1 << 31" to avoid undefined behaviour. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit a1f7f97b950a46393b0e55a9a0082e70f540cbbd Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:00:37 2014 +0000 hw/ppc: Avoid shifting left into sign bit Add U suffix to various places where we were doing "1 << 31", which is undefined behaviour, and also to other constant definitions in the same groups, for consistency. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit def60298825ccff006688ab9ee0ebb266c98b7e7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:00:36 2014 +0000 hw/intc/openpic: Avoid shifting left into sign bit Add U suffix to avoid undefined behaviour. This is only strictly necessary for the 1 << 31 cases; for consistency we extend it to other constants in the same group. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 00b0179347bae12c5856c1195b67ef5dc7887b9b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:00:35 2014 +0000 hw/usb/hcd-ohci.c: Avoid shifting left into sign bit Add U suffix to avoid undefined behaviour. This is only strictly necessary for the 1<<31 cases, but we add it for the other constants in these groups for consistency. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit f45cb2f43f5bb0a4122a64e61c746048b59a84ed Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:00:34 2014 +0000 target-mips: Avoid shifting left into sign bit Add U suffix to various places where we shift a 1 left by 31, to avoid undefined behaviour. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit d9631b90da6ac592ea76b41a654dd5d29b2645d4 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:00:33 2014 +0000 hw/i386/acpi_build.c: Avoid shifting left into sign bit Add U suffix to avoid undefined behaviour. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ac43fa508cc1cfe6d6f67c8eb99dc012e52c164e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:00:32 2014 +0000 hw/pci/pci_host.c: Avoid shifting left into sign bit Add U suffix to avoid undefined behaviour. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 6d55574a656f3a533a370156aaefedcf7980d4d8 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:00:31 2014 +0000 hw/intc/apic.c: Use uint32_t for mask word in foreach_apic Use unsigned arithmetic for operations on the mask word in the foreach_apic() macro, to avoid relying on undefined behaviour when shifting into the sign bit. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2cd49cbfab0dd294de421893048ab614518fa263 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:00:30 2014 +0000 target-i386: Avoid shifting left into sign bit Add 'U' suffixes where necessary to avoid (1 << 31) which shifts left into the sign bit, which is undefined behaviour. Add the suffix also for other constants in the same groupings even if they don't shift into bit 31, for consistency. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit e939c6ed619e2cf98c379318f6ee389c97163f18 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Mon Mar 17 15:26:31 2014 -0300 CODING_STYLE: Section about mixed declarations We had an unwritten rule about declarations having to be at beginning of blocks. Make it a written rule. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 340fb41b311356d66b280468698b1f2d7b0c1a56 Author: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Date: Mon Mar 17 21:46:26 2014 +0000 doc: update default PowerPC framebuffer settings Since 1.7, the default framebuffer settings for PowerPC are 800x600x32. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> CC: qemu-ppc@xxxxxxxxxx Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 33632788089531a4452976ff40bbb15551d37fea Author: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Date: Mon Mar 17 21:46:25 2014 +0000 doc: update sun4m documentation A few minor tidy-ups, plus add reference to the new -vga tcx and cg3 options. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit b533f658a98325d0e47b36113bd9f5bcc046fdae Author: Mario Smarduch <m.smarduch@xxxxxxxxxxx> Date: Wed Mar 19 10:24:26 2014 -0700 fix return check for KVM_GET_DIRTY_LOG ioctl Fix return condition check from kvm_vm_ioctl(s, KVM_GET_DIRTY_LOG, &d) to handle internal failures or no support for memory slot dirty bitmap. Otherwise the ioctl succeeds and continues with migration. Addresses BUG# 1294227 Signed-off-by: Mario Smarduch <m.smarduch@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit a443bc3496658c9e144ad914933607ebc8418979 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Mar 16 15:03:41 2014 +0100 target-i386: Add missing 'static' and 'const' attributes This fixes warnings from the static code analysis (smatch). Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 08cf99629d5de859aad0d54bafb2f18803a86dfe Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Mar 16 19:02:52 2014 +0100 util: Add 'static' attribute to function implementation The static code analyzer smatch complains because of a missing 'static' attribute: util/module.c:166:6: warning: symbol 'module_load' was not declared. Should it be static? 'static' is used in the forward declaration, but not in the implementation. Add it there, too. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 06ab66cfab317741ab55d164ec3530c08ce1a547 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Mar 16 19:13:18 2014 +0100 hw/ide: Add missing 'static' attributes This fixes a warning from the static code analysis (smatch). Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 6df05bdd172d26b699fecf162c277286579f2c16 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Mar 16 19:07:55 2014 +0100 target-arm: Add missing 'static' attribute This fixes a warning from the static code analysis (smatch). Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ecb4e01e3449074576ae866c4547b5ff3849ddd7 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Mar 16 14:49:11 2014 +0100 target-s390x: Add missing 'static' and 'const' attributes This fixes warnings from the static code analysis (smatch). Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 76ac9940c3114db35df92582f3549d9a64a369c4 Author: Anton Blanchard <anton@xxxxxxxxx> Date: Tue Mar 25 13:40:29 2014 +1100 target-ppc: MSR_POW not supported on POWER7/7+/8 Remove MSR_POW from the msr_mask for POWER7/7P/8. Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Reviewed-by: Cédric Le Goater <clg@xxxxxxxxxx> Tested-by: Cédric Le Goater <clg@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5b2b7dc4e5ed10d439d1aac86879299d9f620f5b Author: Anton Blanchard <anton@xxxxxxxxx> Date: Tue Mar 25 13:40:28 2014 +1100 target-ppc: POWER7+ supports the MSR_VSX bit Without MSR_VSX we die early during a Linux boot. Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Reviewed-by: Cédric Le Goater <clg@xxxxxxxxxx> Tested-by: Cédric Le Goater <clg@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 536492ebb3934a827a981be1f207cf7835a53c30 Author: Anton Blanchard <anton@xxxxxxxxx> Date: Tue Mar 25 13:40:27 2014 +1100 target-ppc: POWER8 supports isel Add PPC_ISEL to insns_flags. Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Reviewed-by: Cédric Le Goater <clg@xxxxxxxxxx> Tested-by: Cédric Le Goater <clg@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d6fb330f70831180c69899a4f8ba1a7a5fdce45c Author: Anton Blanchard <anton@xxxxxxxxx> Date: Tue Mar 25 13:40:26 2014 +1100 target-ppc: POWER8 supports the MSR_LE bit Add MSR_LE to the msr_mask for POWER8. Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Reviewed-by: Cédric Le Goater <clg@xxxxxxxxxx> Tested-by: Cédric Le Goater <clg@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 6f1834a2baa2f2688efaa7756d000876c7898d13 Author: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Date: Sun Mar 23 14:58:39 2014 +0530 intc/openpic_kvm: Fix MemListener delete region callback function Fixes d85937e683f6ff4d68293cb24c780fb1f6820d2c. Signed-off-by: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 9ad665df2a9eeb8ed6f3501896e45c1a3cd9dd5f Merge: bea4acd 9013dca Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 27 14:32:17 2014 +0000 Merge remote-tracking branch 'remotes/amit-migration/tags/for_upstream' into staging migration: traces Adds trace messages to migration path. Patches have been on list for a while, and have been reviewed by Juan. # gpg: Signature made Thu 27 Mar 2014 10:44:21 GMT using RSA key ID 854083B6 # gpg: Can't check signature: public key not found * remotes/amit-migration/tags/for_upstream: migration: add more traces util: add qemu_ether_ntoa Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a7a5544a3a59600f30f29985397f56ee40929850 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 27 14:00:52 2014 +0000 vl.c: Improve message when no default machine is found Improve the clarity of the message QEMU prints when the user doesn't specify a machine model to use and there is no default. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> commit d4715c4183043c5e977f821b6f9ca88b17d90bbb Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 27 14:00:52 2014 +0000 hw/arm: Stop specifying integratorcp as the default board Currently for both qemu-system-arm and qemu-system-aarch64 the default board model if the user doesn't specify one is the 'integratorcp'. This is a totally arbitrary historical accident since it was the first board to be modelled. That board is now just one target among many for us, and is a very poor choice of default: * it's an ancient board that is now only found in the junkpiles of longtime ARM/Linux hackers, if at all * it's an ARMv5 CPU, when most distros are now assuming ARMv7 * it's pretty much unmaintained in QEMU * it doesn't even have versatilepb's advantage of supporting PCI Making it or any other board the default serves only to confuse people new to ARM who expect something more like the x86 monoculture. Remove the is_default marker from integratorcp, and don't set it for any other board, to give users a nudge that they need to think about which board they want a QEMU model of. (QEMU will produce the admittedly slightly cryptic error "No machine found.") Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit bea4acda3bff00e98cb00d5354f23de9e74a928f Merge: db237e3 6a5b69a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 27 10:54:17 2014 +0000 Merge remote-tracking branch 'remotes/mcayland/qemu-sparc' into staging * remotes/mcayland/qemu-sparc: target-sparc: fix 32bit integer division overflow Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 9013dca5539186ddca018bebcf2d5da63d061365 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Mar 11 10:42:29 2014 +1100 migration: add more traces This replaces DPRINTF macro with tracepoints. This moves some messages from migration.c to savevm.c. This adds tracepoint to signal about fileds failed to migrate. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Juan Quintela <quintela@xxxxxxxxxx> Signed-off-by: Amit Shah <amit.shah@xxxxxxxxxx> commit 4297c8ee6f0ef70e5a71e3387a0fccaa20b04f94 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Mar 11 10:42:26 2014 +1100 util: add qemu_ether_ntoa This adds a helper to format ethernet MAC address. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Juan Quintela <quintela@xxxxxxxxxx> Signed-off-by: Amit Shah <amit.shah@xxxxxxxxxx> commit 6a5b69a959483c7404576a7dc54221ced41e6515 Author: Olivier Danet <odanet@xxxxxxxxxxxx> Date: Fri Mar 21 02:25:19 2014 +0100 target-sparc: fix 32bit integer division overflow The signed integer division -0x8000_0000_0000_0000 / -1 must be handled separately to avoid an overflow on the QEMU host. Negative overflow must be a negative number for correct sign extension in Sparc64 mode. Use <stdint.h> constants. Signed-off-by: Olivier Danet <odanet@xxxxxxxxxxxx> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> commit db237e33c08a279f0179f8f5128a6d10d9adc38a Merge: 61898bc ad1c7e0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 26 17:10:15 2014 +0000 Merge remote-tracking branch 'remotes/riku/for-2.0' into staging * remotes/riku/for-2.0: linux-user: Correct DLINFO_ITEMS Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 61898bc020c3367c629a99a2abdaa1c60fce76cd Merge: 0a87466 ec8929a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 26 16:17:36 2014 +0000 Merge remote-tracking branch 'remotes/bonzini/scsi-next' into staging * remotes/bonzini/scsi-next: spapr_vscsi: remove duplicate condition check scsi: check req pointer before dereferencing it Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0a87466ef3fe3d9a062195f801727569ab886bde Merge: 0acf0a5 f7bc8ef Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 26 15:15:19 2014 +0000 Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging acpi,virtio bug fixes Two bugfixes for virtio-net, and one for a recent regression in acpi. Both issues have been reported in the wild, so I think it's preferable to merge these ASAP so that reporters can make sure RC fixes their issue. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Wed 26 Mar 2014 10:52:16 GMT using RSA key ID D28D5469 # gpg: Good signature from "Michael S. Tsirkin <mst@xxxxxxxxxx>" # gpg: aka "Michael S. Tsirkin <mst@xxxxxxxxxx>" * remotes/mst/tags/for_upstream: virtio-net: add vlan receive state to RxFilterInfo virtio-net: Do not filter VLANs without F_CTRL_VLAN Revert "acpi-test: rebuild SSDT" acpi: make SSDT 1.0 spec compliant when possible Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0acf0a50c8ae6a4e146e00df5dba9f763d7b75a6 Merge: 7f6613c bbbf9bf Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 26 14:07:25 2014 +0000 Merge remote-tracking branch 'remotes/weil/qemu-2.0' into staging * remotes/weil/qemu-2.0: gtk: Support GTK without VTE Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit ec8929a55512606456e364ffa80586219f67c904 Author: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Date: Mon Mar 24 21:14:46 2014 +0530 spapr_vscsi: remove duplicate condition check Signed-off-by: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit b0f49d138777fb6609aa2ea96d2c59fb872d2c2d Author: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Date: Wed Mar 19 07:10:32 2014 +0530 scsi: check req pointer before dereferencing it Signed-off-by: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit ad1c7e0faac82eeb654cba7f99d4e6d88273e0f9 Author: James Hogan <james.hogan@xxxxxxxxxx> Date: Tue Mar 25 21:47:28 2014 +0000 linux-user: Correct DLINFO_ITEMS Commit a07c67dfccb1 (Implement AT_CLKTCK.) back in March 2008 added a new auxvec entry but didn't increment DLINFO_ITEMS, so it's been out of sync ever since. Bump it up to 14 so that it matches the number of NEW_AUX_ENT's that need to be counted in create_elf_tables(). Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx> Cc: Riku Voipio <riku.voipio@xxxxxx> Cc: Paul Brook <paul@xxxxxxxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit f7bc8ef8091229a4bec0e2a40af90abb8dcb3834 Author: Amos Kong <akong@xxxxxxxxxx> Date: Wed Mar 26 08:19:43 2014 +0800 virtio-net: add vlan receive state to RxFilterInfo Stefan Fritsch just fixed a virtio-net driver bug [1], virtio-net won't filter out VLAN-tagged packets if VIRTIO_NET_F_CTRL_VLAN isn't negotiated. This patch added a new field to @RxFilterInfo to indicate vlan receive state ('normal', 'none', 'all'). If VIRTIO_NET_F_CTRL_VLAN isn't negotiated, vlan receive state will be 'all', then all VLAN-tagged packets will be received by guest. This patch also fixed a boundary issue in visiting vlan table. [1] http://lists.nongnu.org/archive/html/qemu-devel/2014-02/msg02604.html Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 0b1eaa8803e680de9a05727355dfe3d306b81e17 Author: Stefan Fritsch <sf@xxxxxxxxxxx> Date: Wed Mar 26 18:29:52 2014 +0800 virtio-net: Do not filter VLANs without F_CTRL_VLAN If VIRTIO_NET_F_CTRL_VLAN is not negotiated, do not filter out all VLAN-tagged packets but send them to the guest. This fixes VLANs with OpenBSD guests (and probably NetBSD, too, because the OpenBSD driver started as a port from NetBSD). Signed-off-by: Stefan Fritsch <sf@xxxxxxxxxxx> Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 53a786acac7b4d53288d603504021d928f734513 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Mar 26 12:42:31 2014 +0200 Revert "acpi-test: rebuild SSDT" This reverts commit d07e0e9cddf02dd2abedbbf7ab0e069c8f5dabfd. Since commit b4f4d54812624581ce429c805e5179c78222c707 acpi: make SSDT 1.0 spec compliant when possible We are back to old encoding. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit b4f4d54812624581ce429c805e5179c78222c707 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Mar 26 12:31:31 2014 +0200 acpi: make SSDT 1.0 spec compliant when possible The ACPI specification says: The ASL compiler can emit two different AML opcodes for a Package declaration, either PackageOp or VarPackageOp. For small, fixed-length packages, the PackageOp is used and this opcode is compatible with ACPI 1.0. A VarPackageOp will be emitted if any of the following conditions are true: . The NumElements argument is a TermArg that can only be resolved at runtime. . At compile time, NumElements resolves to a constant that is larger than 255. . The PackageList contains more than 255 initializer elements. Note: The ability to create variable-sized packages was first introduced in ACPI 2.0. ACPI 1.0 only allowed fixed-size packages with up to 255 elements. So the spec seems to say a fixed value up to 255 must always be used with PackageOp and not VarPackageOp, and some guests (windows up to win2k8) seem to interpret it like this. Let's do just this, choosing the encoding depending on the number of elements. Fixes 9bcc80cd71892df42605e0c097d85c0237ff45d1 (i386/acpi-build: allow more than 255 elements in CPON). https://bugs.launchpad.net/bugs/1297651 Reported-by: Robert Hu <robert.hu@xxxxxxxxx> Cc: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit bbbf9bfb9c27e389340cf50a11c22fa46c572150 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Feb 19 07:04:34 2014 +0100 gtk: Support GTK without VTE GTK without VTE is needed for hosts which don't support VTE (for example all variants of MinGW), but it can also be reasonable for other hosts. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 7f6613cedc59fa849105668ae971dc31004bca1c Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Tue Mar 25 14:35:18 2014 +0100 target-mips: fix MTHC1 and MFHC1 when FPU in FR=0 mode Previous implementation presumed that FPU registers are 64-bit and are working in 64-bit mode. This change first checks MIPS_HFLAG_F64 and if not set, it does load/store from the odd numbered register pair. Patch by Matthew Fortune. Signed-off-by: Matthew Fortune <matthew.fortune@xxxxxxxxxx> Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit b9bf8a1abb1cafe7184e3dbad9bf8819b3cb620a Merge: 169e487 4e505dd Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 25 18:30:52 2014 +0000 Merge remote-tracking branch 'remotes/awilliam/tags/vfio-pci-for-qemu-20140325.0' into staging A couple trivial fixes for QEMU 2.0: - Coding correction that allowed attempts to read the device ROM after we'd already marked it failed (Bandan) - Cosmetic error reporting fixes to remove unnecessary new lines and fix a cut-n-paste wording error (Alex) # gpg: Signature made Tue 25 Mar 2014 18:18:57 GMT using RSA key ID 3BB08B22 # gpg: Can't check signature: public key not found * remotes/awilliam/tags/vfio-pci-for-qemu-20140325.0: vfio: Cosmetic error reporting fixes vfio: Correction in vfio_rom_read when attempting rom loading Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4e505ddd9af1d5810378a4e7b851f788b1c075ba Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Tue Mar 25 12:08:52 2014 -0600 vfio: Cosmetic error reporting fixes * Remove terminating newlines from hw_error() and error_report() calls * Fix cut-n-paste error in text (s/to/from/) Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 169e4878ee96b7d6dec929e0cd400a0395865a85 Merge: d4cc1a2 131e744 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 25 17:49:45 2014 +0000 Merge remote-tracking branch 'remotes/stefanha/tags/net-pull-request' into staging Net patches # gpg: Signature made Tue 25 Mar 2014 15:02:48 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/net-pull-request: net: netmap_poll must update both read/write poll state Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d4cc1a213f8cb22fa0861ae2a907c60cf00796ff Merge: 839a554 7b770c7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 25 15:23:08 2014 +0000 Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging Block pull request # gpg: Signature made Tue 25 Mar 2014 14:34:45 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/block-pull-request: mirror: fix early wake from sleep due to aio mirror: fix throttling delay calculation Fixed various typos qemu-img: mandate argument to 'qemu-img check --repair' osdep: initialize glib threads in all QEMU tools Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit db01eedb6d883a1fed5b4079f8a6ff048b9c1217 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Tue Mar 25 08:24:20 2014 -0600 vfio: Correction in vfio_rom_read when attempting rom loading commit e638073c569e801ce9de added a flag to track whether a previous rom read had failed. Accidentally, the code ended up adding vfio_load_option_rom twice. (Thanks to Alex for spotting it) Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 7b770c720b28b8ac5b82ae431f2f354b7f8add91 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Fri Mar 21 13:55:19 2014 +0100 mirror: fix early wake from sleep due to aio The mirror blockjob coroutine rate-limits itself by sleeping. The coroutine also performs I/O asynchronously so it's important that the aio callback doesn't wake the coroutine early as that breaks rate-limiting. Reported-by: Joaquim Barrera <jbarrera@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit cc8c9d6c6f28e4e376a6561a2a31524fd069bc2d Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Mar 21 13:55:18 2014 +0100 mirror: fix throttling delay calculation The throttling delay calculation was using an inaccurate sector count to calculate the time to sleep. This broke rate-limiting for the block mirror job. Move the delay calculation into mirror_iteration() where we know how many sectors were transferred. This lets us calculate an accurate delay time. Reported-by: Joaquim Barrera <jbarrera@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit dc6fb73d219472e011d93867f5e7eebfffde0319 Author: Deepak Kathayat <deepak.mk17@xxxxxxxxx> Date: Mon Mar 24 16:30:17 2014 +0800 Fixed various typos Signed-off-by: Deepak Kathayat <deepak.mk17@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4fd6a984b93701fcb40a0053098ae5c2c4ee27f4 Author: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Date: Tue Mar 25 00:08:54 2014 +0530 qemu-img: mandate argument to 'qemu-img check --repair' qemu-img check --repair option accepts an argument. The argument to --repair switch can either be 'all' or 'leak'. Fix the long option to mandate argument with --repair switch. The patch fixes following segmentation fault Core was generated by `qemu-img check -f qcow2 --repair all t.qcow2'. Program terminated with signal 11, Segmentation fault. 0 in img_check (argc=6, argv=0x7fffab9b8a10) at qemu-img.c:588 588 if (!strcmp(optarg, "leaks")) { (gdb) bt 0 img_check (argc=6, argv=0x7fffab9b8a10) at qemu-img.c:588 1 __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6 2 _start () (gdb) Signed-off-by: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Reviewed-by: Leandro Dorileo <l@xxxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ae2990c259abec198879c362dc13f7047f26c2cf Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Oct 8 11:58:31 2013 +0200 osdep: initialize glib threads in all QEMU tools glib versions prior to 2.31.0 require an explicit g_thread_init() call to enable multi-threading. Failure to initialize threading causes glib to take single-threaded code paths without synchronization. For example, the g_slice allocator will crash due to race conditions. Fix this for all QEMU tool programs (qemu-nbd, qemu-io, qemu-img) by moving the g_thread_init() call from vl.c:main() into a new osdep.c:thread_init() constructor function. thread_init() has __attribute__((constructor)) and is automatically invoked by the runtime during startup. We can now drop the "simple" trace backend's g_thread_init() call since thread_init() already called it. Note that we must keep coroutine-gthread.c's g_thread_init() call which is located in a constructor function. There is no guarantee for constructor function ordering so thread_init() may only be called later. Reported-by: Mario de Chenno <mario.dechenno@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 131e744a15c54f0bad3d3925eeca1acf47996e06 Author: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Date: Sun Mar 23 14:58:43 2014 +0530 net: netmap_poll must update both read/write poll state Signed-off-by: Prasad Joshi <prasadjoshi.linux@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 839a5547574e57cce62f49bfc50fe1f04b00589a Merge: 90c49ef da0af40 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 24 19:25:09 2014 +0000 Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20140324' into staging target-arm queue for 2.0: * Fix wrong-results bug in A64 Neon MLS instruction * Fix loading of ELF images for 32 bit boards in qemu-system-aarch64 # gpg: Signature made Mon 24 Mar 2014 17:14:07 GMT using RSA key ID 14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@xxxxxxxxxx>" * remotes/pmaydell/tags/pull-target-arm-20140324: target-arm: Load ELF images with the correct machine type for CPU target-arm: Fix A64 Neon MLS Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 90c49ef1650698cff1288e0d22aa858d89f820fa Merge: e12b2a4 dac23a6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 24 19:00:02 2014 +0000 Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging acpi,pc,test bug fixes More small fixes all over the place. Notably fixes for big-endian hosts by Marcel. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Mon 24 Mar 2014 10:41:07 GMT using RSA key ID D28D5469 # gpg: Good signature from "Michael S. Tsirkin <mst@xxxxxxxxxx>" # gpg: aka "Michael S. Tsirkin <mst@xxxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 0270 606B 6F3C DF3D 0B17 0970 C350 3912 AFBE 8E67 # Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA 8A0D 281F 0DB8 D28D 5469 * remotes/mst/tags/for_upstream: tests/acpi-test: do not fail if iasl is broken vl.c: Use MAX_CPUMASK_BITS macro instead of hardcoded constant sysemu.h: Document what MAX_CPUMASK_BITS really limits acpi: fix endian-ness for table ids acpi-test: signature endian-ness fixes i386/acpi-build: support hotplug of VCPU with APIC ID 0xFF acpi-test: rebuild SSDT i386/acpi-build: allow more than 255 elements in CPON pc: Refuse max_cpus if it results in too large APIC ID acpi: Don't use MAX_CPUMASK_BITS for APIC ID bitmap acpi: Assert sts array limit on AcpiCpuHotplug_add() pc: Refuse CPU hotplug if the resulting APIC ID is too large acpi: Add ACPI_CPU_HOTPLUG_ID_LIMIT macro acpi-test: update expected SSDT files acpi-build: fix misaligned access Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e12b2a4fab75c0771ed21ac6ce06120cbb27b68e Merge: e279e25 b2c494c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 24 18:47:19 2014 +0000 Merge remote-tracking branch 'remotes/spice/tags/pull-spice-5' into staging spice: input: Fix absolute mouse y coordinates # gpg: Signature made Mon 24 Mar 2014 07:44:11 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/spice/tags/pull-spice-5: spice: input: Fix absolute mouse y coordinates Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e279e252ac7ea99b58eaf20d0aec4288de0386bb Author: Richard W.M. Jones <rjones@xxxxxxxxxx> Date: Fri Mar 21 21:29:37 2014 +0000 backends/baum.c: Fix compilation when SDL is not available. backends/baum.c: In function â??chr_baum_initâ??: backends/baum.c:569:64: error: missing binary operator before token "(" #if defined(CONFIG_SDL) && SDL_COMPILEDVERSION < SDL_VERSIONNUM(2, 0, 0) ^ backends/baum.c:598:64: error: missing binary operator before token "(" #if defined(CONFIG_SDL) && SDL_COMPILEDVERSION < SDL_VERSIONNUM(2, 0, 0) Signed-off-by: Richard W.M. Jones <rjones@xxxxxxxxxx> Message-id: 1395437377-5779-1-git-send-email-rjones@xxxxxxxxxx Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit da0af40dd70c8f8f821d79c367aecb08618af28e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Mar 21 18:44:36 2014 +0000 target-arm: Load ELF images with the correct machine type for CPU When trying to load an ELF file specified via -kernel, we need to pass load_elf() the ELF machine type corresponding to the CPU we're booting with, not the one corresponding to the softmmu binary we happen to be running. (The two are different in the case of loading a 32-bit ARM ELF file into a 32 bit CPU being emulated by qemu-system aarch64.) This was causing us to incorrectly fail to load ELF images in this situation. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Message-id: 1395427476-25546-1-git-send-email-peter.maydell@xxxxxxxxxx commit d108609bf9ba160d2e2044ce7d553f691ac96dbd Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 24 15:59:02 2014 +0000 target-arm: Fix A64 Neon MLS The order of operands for the accumulate step in disas_simd_3same_int() was reversed. This only affected the MLS instruction, since all the other accumulating instructions in this category perform an addition rather than a subtraction. Reported-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Tested-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit dac23a6c05e543590508b48b8ed31d89b0c99c61 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Mar 24 12:02:33 2014 +0200 tests/acpi-test: do not fail if iasl is broken There is an issue with iasl on big endian machines: It cannot disassemble acpi tables taken from little endian machines, so we cannot check the expected tables. The acpi test will check if the expected aml files can be disassembled, and will issue an warning not failing the test on those machines until this problem is solved by the acpica community. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit b2c494c3a473adf654144c845e04bebffb05dee0 Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Fri Mar 21 14:28:49 2014 -0400 spice: input: Fix absolute mouse y coordinates Current tablet + spice is unusable. Regressed with the UI input rework. Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 3a87f8b6859e6221b827ab4737779dddb37553ec Merge: 06c1bee 71461b0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 20 11:45:37 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/ppc-for-2.0' into staging PowerPC queue for 2.0 * sPAPR loop fix * SPR reset fix * Reduce allocation size of indirect opcode tables * Restrict number of CPU threads * sPAPR H_SET_MODE fixes * sPAPR firmware path fixes * Static and constness cleanups # gpg: Signature made Thu 20 Mar 2014 01:46:14 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/ppc-for-2.0: spapr: Implement interface to fix device pathname spapr: QOM'ify pseries machine spapr_vio: Fix firmware names spapr_llan: Add to boot device list qdev: Introduce FWPathProvider interface vl.c: Extend get_boot_devices_list() to ignore suffixes spapr_hcall: Fix little-endian resource handling in H_SET_MODE target-ppc: Introduce powerisa-207-server flag target-ppc: Force CPU threads count to be a power of 2 target-ppc: Fix overallocation of opcode tables target-ppc: Reset SPRs on CPU reset spapr_hcall: Fix h_enter to loop correctly target-ppc: Add missing 'static' and 'const' attributes Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 71461b0fef53467d2a85dbd72304dba0e01d8370 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Mar 17 13:40:27 2014 +1100 spapr: Implement interface to fix device pathname This extends the pseries machine type with the interface to fix firmware pathnames for devices which have @bootindex property. This fixes SCSI disks' device node names (which are wildcard nodes in the device-tree), for spapr-vscsi, virtio-scsi and usb-storage. This fixes PHB name from "pci" to "pci@XXXX" where XXXX is a BUID as there is no bus on top of sPAPRPHBState where PHB firmware name could be fixed using the BusClass::get_fw_dev_path() mechanism. This stores the boot list in the /chosen/qemu,boot-list property of the device tree. "\n" are replaced by spaces to support OF1275. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 29ee324740fa7af4b7cf0ce9295a07296e9a0f24 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Mar 17 13:40:26 2014 +1100 spapr: QOM'ify pseries machine Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5a06393f1d7edc6274233533aac99a5ded1785ce Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Mar 17 13:40:25 2014 +1100 spapr_vio: Fix firmware names This changes VIO bridge fw name from spapr-vio-bridge to vdevice and vscsi/veth node names from QEMU object names to VIO specific device tree names. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ad4f62d0159fa2967195d095e7b532b9497fa6b0 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Mar 17 13:40:24 2014 +1100 spapr_llan: Add to boot device list Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 6b1566cbe372660c77ca4aa7aa0071fa30f5f930 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Mar 17 13:40:23 2014 +1100 qdev: Introduce FWPathProvider interface QEMU supports firmware names for all devices in the QEMU tree but some architectures expect some parts of firmware path names in different format. This introduces a firmware-pathname-change interface definition. If some machines needs to redefine the firmware path format, it has to add the TYPE_FW_PATH_PROVIDER interface to an object that is above the device on the QOM tree (typically /machine). Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 30e32af7466841f5fc08a5339e2184884a7bc6f3 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Mar 17 13:40:22 2014 +1100 vl.c: Extend get_boot_devices_list() to ignore suffixes As suffixes do not make sense for sPAPR's device tree and there is no way to filter them out on the BusState::get_fw_dev_path() level, let's add an ability for the external caller to specify whether to apply suffixes or not. We could handle suffixes in SLOF (ignored for now) but this would require serious rework in the node opening code in SLOF, which has no obvious benefit for the currently emulated sPAPR machine. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a46622fd07edc6fd3c66f8ab79b4782a78b115f3 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Mar 7 15:37:40 2014 +1100 spapr_hcall: Fix little-endian resource handling in H_SET_MODE This changes resource code definitions to ones used in the host kernel. This fixes H_SET_MODE_RESOURCE_LE (switch between big endian and little endian) to sync registers from KVM before changing LPCR value. This adds a set_spr() helper to update an SPR in a CPU's context to avoid possible races and makes use of it to change LPCR. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit df99d30d4e0dd22be5572235a5213de429e00747 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Mar 7 15:37:39 2014 +1100 target-ppc: Introduce powerisa-207-server flag This flag will be used to decide whether to emulate some bits of H_SET_MODE hypercall because some are POWER8-only. While we are here, add 2.05 flag to POWER8 family too. POWER7/7+ already have it. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5ec83c73e5ece590538878b24dfcb422904533e0 Author: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Date: Wed Mar 5 14:02:36 2014 +0530 target-ppc: Force CPU threads count to be a power of 2 PowerPC kernel expects the number of SMT threads in a core to be a power of 2. Since QEMU doesn't enforce this, it leads to an early guest kernel crash if invalid threads count is specified. Prevent this crash and make it a graceful exit from QEMU itself by validating the user-supplied threads count. Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Stewart Smith <stewart@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a80172a4762465a40f6b59d10d64360bd272b700 Author: Stuart Brady <sdb@xxxxxxxxxxxx> Date: Wed Mar 19 14:07:26 2014 +0000 target-ppc: Fix overallocation of opcode tables create_new_table() should allocate 0x20 opc_handler_t pointers, but actually allocates 0x20 opc_handler_t structs. Fix this. Signed-off-by: Stuart Brady <sdb@xxxxxxxxxxxx> Reviewed-by: Tom Musta <tommusta@xxxxxxxxx> Tested-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d197fdbc3b83655f3c145722805f0998c04dce16 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Mar 20 00:03:57 2014 +1100 target-ppc: Reset SPRs on CPU reset This resets SPR values to defaults on CPU reset. This should help with little-endian guests reboot issues. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 7aaf4957efad2bf6ac449d0caa9a1535f61006bc Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Fri Mar 14 19:21:49 2014 +0530 spapr_hcall: Fix h_enter to loop correctly We wanted to loop till index is 8. On 8 we return with H_PTEG_FULL. If we are successful in loading hpte with any other index, we continue with that index value. Reported-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 06c1bee85a7def8d0139ee6829728a891efe623f Merge: d1a1451 f205da6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 19 23:34:42 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/prep-for-2.0' into staging PReP machine and devices * Raven PCI host bridge memory fixes (remainder) # gpg: Signature made Wed 19 Mar 2014 23:35:08 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/prep-for-2.0: raven: Use raven_ for all function prefixes raven: Fix PCI bus accesses with size > 1 raven: Add PCI bus mastering address space raven: Set a correct PCI memory region raven: Set a correct PCI I/O memory region raven: Implement non-contiguous I/O region raven: Rename intack region to pci_intack Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f205da688b3dc8f6f54220b6997ed5b910afcc54 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Mon Mar 17 23:00:25 2014 +0100 raven: Use raven_ for all function prefixes Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 2403837e67eca7eb5dfdadda25cdd38ef2dc9ad0 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Mon Mar 17 23:00:24 2014 +0100 raven: Fix PCI bus accesses with size > 1 Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Reviewed-by: Artyom Tarasenko <atar4qemu@xxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit d16644ec4ce1da5db24dd0a1618d814feaaf8ccb Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Mon Mar 17 23:00:23 2014 +0100 raven: Add PCI bus mastering address space This has been tested on Linux 2.4/PPC with the lsi53c895a SCSI adapter. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 1fe9e2626f00b237a7e79d3eba4891da1bff6671 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Mon Mar 17 23:00:22 2014 +0100 raven: Set a correct PCI memory region PCI memory region is 0x3f000000 bytes starting at 0xc0000000. However, keep compatibility with Open Hack'Ware expectations by adding a hack for Open Hack'Ware display. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 1ae1dc5ba241a6dd22b7359ec1b2d21dd8e66f5b Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Mon Mar 17 23:00:21 2014 +0100 raven: Set a correct PCI I/O memory region PCI I/O region is 0x3f800000 bytes starting at 0x80000000. Do not use global QEMU I/O region, which is only 64KB. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 9a1839164c9c8f06f4645e8207d7faee771ec78e Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Mon Mar 17 23:00:20 2014 +0100 raven: Implement non-contiguous I/O region Remove now duplicated code from prep board. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 49a4e21251d89cdf9db8662a0d7138831f85d427 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Mon Mar 17 23:00:19 2014 +0100 raven: Rename intack region to pci_intack Regions added subsequently will also have the pci_ prefix. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit d1a1451cd3a60df7dbfd4fb7f616443d22be1beb Merge: 037b7ad 7e4fb26 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 19 22:36:44 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/qom-cpu-for-2.0' into staging QOM CPUState refactorings / X86CPU * CPUState layout optimization for TCG # gpg: Signature made Wed 19 Mar 2014 21:51:46 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/qom-cpu-for-2.0: cpu: Move tcg_exit_req to the end of CPUState Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 037b7addb7f9ad5dc52c3d05da8b2f60386252ff Merge: f71e769 abdffd1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 19 21:45:41 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/qom-devices-for-2.0' into staging QOM/QTest infrastructure fixes * QOM machine memory and build fixes * QOM link<> and child<> property reference counting fixes # gpg: Signature made Wed 19 Mar 2014 21:44:04 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/qom-devices-for-2.0: virtio-rng: Avoid default_backend refcount leak qom: Add check() argument to object_property_add_link() qom: Make QOM link property unref optional qom: Don't make link NULL on object_property_set_link() failure qom: Split object_property_set_link() vl.c: Fix OpenBSD compilation issue due to namespace collisions vl.c: Fix memory leak in qemu_register_machine() Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit abdffd1fb78c1b98bda925d3d59123beca6761a3 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 19 08:58:57 2014 +0100 virtio-rng: Avoid default_backend refcount leak QOM child properties take a reference to the object and release it when the property is deleted. Therefore we should unref the default_backend after we have added it as a child property. Cc: KONRAD Frederic <fred.konrad@xxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 39f72ef94ba74701d18daf82b44c18a60f94eb60 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 19 08:58:56 2014 +0100 qom: Add check() argument to object_property_add_link() There are currently three types of object_property_add_link() callers: 1. The link property may be set at any time. 2. The link property of a DeviceState instance may only be set before realize. 3. The link property may never be set, it is read-only. Something similar can already be achieved with object_property_add_str()'s set() argument. Follow its example and add a check() argument to object_property_add_link(). Also provide default check() functions for case #1 and #2. Case #3 is covered by passing a NULL function pointer. Cc: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxxxxx> Cc: Alexander Graf <agraf@xxxxxxx> Cc: Anthony Liguori <aliguori@xxxxxxxxxx> Cc: "Michael S. Tsirkin" <mst@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> [AF: Tweaked documentation comment] Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 7e4fb26d757b460de5b80b4220bcd926f7175cb2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Mar 14 15:30:10 2014 -0700 cpu: Move tcg_exit_req to the end of CPUState Reverse an increase in the size of generated code. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 9561fda8d90e176bef598ba87c42a1bd6ad03ef7 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 19 08:58:55 2014 +0100 qom: Make QOM link property unref optional Some object_property_add_link() callers expect property deletion to unref the link property object. Other callers expect to manage the refcount themselves. The former are currently broken and therefore leak the link property object. This patch adds a flags argument to object_property_add_link() so the caller can specify which refcount behavior they require. The new OBJ_PROP_LINK_UNREF_ON_RELEASE flag causes the link pointer to be unreferenced when the property is deleted. This fixes refcount leaks in qdev.c, xilinx_axidma.c, xilinx_axienet.c, s390-virtio-bus.c, virtio-pci.c, virtio-rng.c, and ui/console.c. Rationale for refcount behavior: * hw/core/qdev.c - bus children are explicitly unreferenced, don't interfere - parent_bus is essentially a read-only property that doesn't hold a refcount, don't unref - hotplug_handler is leaked, do unref * hw/dma/xilinx_axidma.c - rx stream "dma" links are set using set_link, therefore they need unref - tx streams are set using set_link, therefore they need unref * hw/net/xilinx_axienet.c - same reasoning as hw/dma/xilinx_axidma.c * hw/pcmcia/pxa2xx.c - pxa2xx bypasses set_link and therefore does not use refcounts * hw/s390x/s390-virtio-bus.c * hw/virtio/virtio-pci.c * hw/virtio/virtio-rng.c * ui/console.c - set_link is used and there is no explicit unref, do unref Cc: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxxxxx> Cc: Alexander Graf <agraf@xxxxxxx> Cc: Anthony Liguori <aliguori@xxxxxxxxxx> Cc: "Michael S. Tsirkin" <mst@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c6aed9833419eed9de19919ff31aa021a6171521 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 19 08:58:54 2014 +0100 qom: Don't make link NULL on object_property_set_link() failure The error behavior of object_property_set_link() is dangerous. It sets the link property object to NULL if an error occurs. A setter function should either succeed or fail, it shouldn't leave the value NULL on failure. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f5ec6704c73932291c303d0cf72352ac26411d0d Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Mar 19 08:58:53 2014 +0100 qom: Split object_property_set_link() The path resolution logic in object_property_set_link() should be a separate function. This makes the code easier to read and maintain. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c8897e8eb965c0d091683ffaf127c50f8231d048 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Tue Mar 18 17:26:35 2014 +0200 vl.c: Fix OpenBSD compilation issue due to namespace collisions Machine rewriting added MACHINE() macro which is already in use by other OpenBSD library. Since qemu/sockets.h exposes the OpenBSD namespace, the minimalistic approach is to add it as the first QEMU include. Reported-by: Brad Smith <brad@xxxxxxxxxxxx> Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f5946dbab388050da6d9343978a38c81cce0508d Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Wed Mar 19 12:24:27 2014 +0100 vl.c: Fix memory leak in qemu_register_machine() Since commit 261747f176f6 (vl: Use MachineClass instead of global QEMUMachine list) valgrind complains about the following: ==54082== 57 bytes in 3 blocks are definitely lost in loss record 365 of 729 ==54082== at 0x4031AFE: malloc (vg_replace_malloc.c:292) ==54082== by 0x4145569: g_malloc (in /usr/lib64/libglib-2.0.so.0.3400.2) ==54082== by 0x415F9E9: g_strconcat (in /usr/lib64/libglib-2.0.so.0.3400.2) ==54082== by 0x80157FE7: qemu_register_machine (vl.c:1597) ==54082== by 0x80208E6B: module_call_init (module.c:105) ==54082== by 0x80013B91: main (vl.c:3000) Turns out that valgrind is right. We simply forget the memory that g_strconcat() has allocated. Lets free it after the type_register(). We need a 2nd variable due to constness of the name part of the type structure. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f71e769d0754dc9a593a9e17ec6693a261b29f82 Merge: ec86487 c01a71c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 19 19:05:13 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/qom-cpu-for-2.0' into staging QOM CPUState refactorings / X86CPU * Fix pointer type mismatch # gpg: Signature made Wed 19 Mar 2014 18:51:47 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/qom-cpu-for-2.0: exec: Fix CPU rework fallout Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c01a71c1a56fa27f43449ff59e5d03b2483658a2 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Mon Mar 17 17:13:12 2014 +0100 exec: Fix CPU rework fallout Commit 259186a7d2f7184efc96ae99bc5658e6159f53ad (cpu: Move halted and interrupt_request fields to CPUState) passed CPUState::env_ptr to tlb_flush() directory rather than through a typed variable. Commit 00c8cb0a36f51a6866a83c08962d12a0eb21864b (cputlb: Change tlb_flush() argument to CPUState) now changed the argument type. This was unnoticed by gcc because env_ptr is a void pointer. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ec864874bd1c1e13c82f4096fd3957d26c70a680 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 19 16:07:30 2014 +0000 linux-user: Fix build if headers don't define _LINUX_CAPABILITY_VERSION_1 Older kernel headers don't define _LINUX_CAPABILITY_VERSION_1. Switch to using the older _LINUX_CAPABILITY_VERSION; newer headers still define this for source compatibility. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reported-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Reviewed-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Acked-by: Riku Voipio <riku.voipio@xxxxxx> commit cfd54a0409c92cbf3b2e6af39ce44a13f6940dd0 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Mar 16 14:49:54 2014 +0100 target-ppc: Add missing 'static' and 'const' attributes This fixes warnings from the static code analysis (smatch). Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 4c8821d13405056776d0255bb78925dac91996c3 Merge: c1b94a0 e0eb210 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 19 14:14:15 2014 +0000 Merge remote-tracking branch 'remotes/riku/linux-user-for-upstream' into staging * remotes/riku/linux-user-for-upstream: linux-user: Implement capget, capset linux-user: Don't allow guest to block SIGSEGV signal: added a wrapper for sigprocmask function linux-user: Don't reserve space for commpage for AArch64 linux-user: implement F_[GS]ETOWN_EX linux-user: Don't return uninitialized value for atomic_barrier syscall linux-user/signal.c: Correct error path for AArch64 do_rt_sigreturn Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c1b94a0ed2332b08ea7799c003c3ee9996782a3c Merge: 319c66d 198fd05 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 19 13:47:22 2014 +0000 Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging Block patches for 2.0.0-rc1 # gpg: Signature made Wed 19 Mar 2014 13:03:27 GMT using RSA key ID C88F2FD6 # gpg: Good signature from "Kevin Wolf <kwolf@xxxxxxxxxx>" * remotes/kevin/tags/for-upstream: dataplane: fix implicit IOThread refcount block/nfs: report errors from libnfs block/nfs: bump libnfs requirement to 1.9.3 qcow2: Fix fail path in realloc_refcount_block() qcow2: Correct comment for realloc_refcount_block() qemu-io: Extended "--cmd" description in usage text qemu-io-cmds: Fixed typo in example for writev. block: Add error handling to bdrv_invalidate_cache() Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 319c66d5abfb30553895589d24b70043639ad06d Merge: 059b352 09e0373 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 19 13:00:41 2014 +0000 Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20140319' into staging target-arm queue: * last few A64 Neon instructions * fix some PL011 UART bugs causing occasional serial lockups * fix the non-PCI AHCI device # gpg: Signature made Wed 19 Mar 2014 12:00:59 GMT using RSA key ID 14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@xxxxxxxxxx>" * remotes/pmaydell/tags/pull-target-arm-20140319: target-arm: A64: Add saturating accumulate ops (USQADD/SUQADD) target-arm: A64: Add saturating int ops (SQNEG/SQABS) pl011: fix incorrect logic to set the RXFF flag pl011: fix UARTRSR accesses corrupting the UARTCR value pl011: reset the fifo when enabled or disabled ahci: fix sysbus support Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit af67ee9264c135f4b213b4bc1a3871c4e9ec7da3 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Tue Mar 18 16:29:24 2014 -0300 vl.c: Use MAX_CPUMASK_BITS macro instead of hardcoded constant Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d2995916ea262bca40788f275c7f53f1c0a0b606 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Tue Mar 18 16:29:23 2014 -0300 sysemu.h: Document what MAX_CPUMASK_BITS really limits Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 198fd05c357afff22f0b0e02639937519ed49b1f Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Mar 18 17:50:52 2014 +0100 dataplane: fix implicit IOThread refcount When creating an IOThread implicitly (the user did not specify x-iothread=<id>) remember that iothread_find() does not return the object with an incremented refcount. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 20fccb187c54105177a7859360e3cb7166c8f22f Author: Peter Lieven <pl@xxxxxxx> Date: Mon Mar 17 09:37:21 2014 +0100 block/nfs: report errors from libnfs if an NFS operation fails we should report what libnfs knows about the failure. It is likely more than just an error code. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b7d769c93214bd6e58d16009f47e61ccb541025c Author: Peter Lieven <pl@xxxxxxx> Date: Mon Mar 17 09:37:33 2014 +0100 block/nfs: bump libnfs requirement to 1.9.3 libnfs prior to 1.9.3 contains a bug that will report wrong transfer sizes if the file offset grows beyond 4GB and RPC responses are received out of order. this error is not detectable and fixable in qemu. additionally 1.9.3 introduces support for handling short read/writes in general and takes care of the necessary retransmissions internally. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a134d90f50806597c5da4fd191352fe62d40f71a Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Mar 17 23:04:52 2014 +0100 qcow2: Fix fail path in realloc_refcount_block() If qcow2_alloc_clusters() fails, new_offset and ret will both be negative after the fail label, thus passing the first if condition and subsequently resulting in a call of qcow2_free_clusters() with an invalid (negative) offset parameter. Fix this by introducing a new label "fail_free_cluster" which is only invoked if new_offset is indeed pointing to a newly allocated cluster that should be cleaned up by freeing it. While we're at it, clean up the whole fail path. qcow2_cache_put() should (and actually can) never fail, hence the return value can safely be ignored (aside from asserting that it indeed did not fail). Furthermore, there is no reason to give QCOW2_DISCARD_ALWAYS to qcow2_free_clusters(), a mere QCOW2_DISCARD_OTHER will suffice. Ultimately, rename the "fail" label to "done", as it is invoked both on failure and success. Suggested-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8a15b813e6034856d4177c6ab242791795434c15 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Mar 17 23:04:51 2014 +0100 qcow2: Correct comment for realloc_refcount_block() Contrary to the comment describing this function's behavior, it does not return 0 on success, but rather the offset of the newly allocated cluster. This patch adjusts the comment accordingly to reflect the actual behavior. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d208cc353a2860dc9614ba651439713e4ecdf9d3 Author: Maria Kustova <maxa@xxxxxxxx> Date: Tue Mar 18 09:59:19 2014 +0400 qemu-io: Extended "--cmd" description in usage text It's not clear from the usage description that "--cmd" option accepts its argument as a string, so any special symbols have to be quoted from the shell. Updates in usage text: - Specified parameter format for "--cmd" option. - Added an instruction how to get help for "--cmd" option. Signed-off-by: Maria Kustova <maria.k@xxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 6e6507c06beb28e0551f68b13aa843ed1303f0f0 Author: Maria Kustova <maxa@xxxxxxxx> Date: Tue Mar 18 09:59:17 2014 +0400 qemu-io-cmds: Fixed typo in example for writev. Signed-off-by: Maria Kustova <maria.k@xxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 5a8a30db4771675480829d7d3bf35a138e9c35f1 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 12 15:59:16 2014 +0100 block: Add error handling to bdrv_invalidate_cache() If it returns an error, the migrated VM will not be started, but qemu exits with an error message. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 09e037354b6f940c18f417f23355cffd23f4fde5 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Tue Mar 18 23:10:06 2014 +0000 target-arm: A64: Add saturating accumulate ops (USQADD/SUQADD) Add the saturating accumulate operations USQADD and SUQADD to the A64 instruction set. This completes coverage of A64 Neon. These operations (which are unsigned + signed -> signed and signed + unsigned -> unsigned) don't exist in the A32/T32 instruction set, so require a complete new set of helper functions. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0a79bc87c3acf8364abf2d47b261fa898db15885 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Tue Mar 18 23:10:06 2014 +0000 target-arm: A64: Add saturating int ops (SQNEG/SQABS) This mostly re-uses the existing NEON helpers with an additional two for the 64 bit case. I also took the opportunity to add TCG_CALL_NO_RWG options to the helpers as they don't modify globals (saturation flags are in the CPU Environment). Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f72dbf3d2629be75d50b4c98816c360d82e8a848 Author: Rob Herring <rob.herring@xxxxxxxxxx> Date: Tue Mar 18 13:18:41 2014 -0500 pl011: fix incorrect logic to set the RXFF flag The receive fifo full bit should be set when 1 character is received and the fifo is disabled or when 16 characters are in the fifo. Signed-off-by: Rob Herring <rob.herring@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1395166721-15716-4-git-send-email-robherring2@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit ce8f0905a59232982c8a220169e11c14c73e7dea Author: Rob Herring <rob.herring@xxxxxxxxxx> Date: Tue Mar 18 13:18:40 2014 -0500 pl011: fix UARTRSR accesses corrupting the UARTCR value Offset 4 is UARTRSR/UARTECR, not the UARTCR. The UARTCR would be corrupted if the UARTRSR is ever written. Fix by implementing a correct model of the UARTRSR/UARTECR register. Reads of this register simply reflect the error bits in data register. Only breaks can be triggered in QEMU. With the pl011_can_receive function, we effectively have flow control between the host and the model. Framing and parity errors simply don't make sense in the model and will never occur. Signed-off-by: Rob Herring <rob.herring@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1395166721-15716-3-git-send-email-robherring2@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 22709e90a270a36418f1b1d5d3277016eec1edc2 Author: Rob Herring <rob.herring@xxxxxxxxxx> Date: Tue Mar 18 13:18:39 2014 -0500 pl011: reset the fifo when enabled or disabled Intermittent issues have been seen where no serial input occurs. It appears the pl011 gets in a state where the rx interrupt never fires because the rx interrupt only asserts when crossing the fifo trigger level. The fifo state appears to get out of sync when the pl011 is re-configured. This combined with the rx timeout interrupt not being modeled results in no more rx interrupts. Disabling the fifo is the recommended way to clear the tx fifo in the TRM (section 3.3.8). The behavior in this case for the rx fifo is undefined in the TRM, but having fifo contents to be maintained during configuration changes is not likely expected behavior. Reseting the fifo state when the fifo size is changed is the simplest solution. Signed-off-by: Rob Herring <rob.herring@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1395166721-15716-2-git-send-email-robherring2@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit bd16430777cc3d25930e479fdbe290d92cec0888 Author: Rob Herring <rob.herring@xxxxxxxxxx> Date: Tue Mar 18 19:36:13 2014 +0000 ahci: fix sysbus support Non-PCI AHCI support is broken due to assertion failures when trying to convert AHCIState to a PCIDevice pointer as AHCIState can have different container structs. Fix this by using the non-asserting object cast and checking the returned pointer is not NULL. The AddressSpace pointer is also being initialized to NULL and causing dma_memory_map call to fail. Fix this by initializing to address_space_memory for sysbus instances. Also correct AHCI_VMSTATE to use the correct container SysbusAHCIState for sysbus instances. Signed-off-by: Rob Herring <rob.herring@xxxxxxxxxx> Message-id: 1392073373-3295-1-git-send-email-robherring2@xxxxxxxxx [PMM: added linebreaks to fix overlong lines] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 059b3527f0229f4d60fd77a317503d42abd5e50f Merge: 2dda43b 2f487a3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 18 16:39:29 2014 +0000 Merge remote-tracking branch 'remotes/kraxel/tags/pull-vnc-2' into staging vnc: fix vmware VGA incompatiblities # gpg: Signature made Tue 18 Mar 2014 07:23:10 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-vnc-2: ui/vnc: fix vmware VGA incompatiblities Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 821e3227863ea8db057190e578efa0f1f57ed9de Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Mar 18 15:49:41 2014 +0200 acpi: fix endian-ness for table ids when using signature for table ID, we forgot to byte-swap it. signatures are really ASCII strings, let's treat them as such. While at it, get rid of most of _SIGNATURE macros. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c225aa3c6de64f61fe68de2e5f4e3897544daf0d Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Mar 18 16:42:05 2014 +0200 acpi-test: signature endian-ness fixes acpi table signature is really an ASCII string. Treat it as such in tests. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 2dda43bacc79f8e283702614745cd700c637de64 Merge: 315b593 1ed27a1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 18 14:31:42 2014 +0000 Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20140317' into staging target-arm queue: * more A64 Neon instructions * fixes to reset CBAR values for A9 and A15 boards * fix accesses to PMCR register in -icount mode # gpg: Signature made Mon 17 Mar 2014 22:04:52 GMT using RSA key ID 14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@xxxxxxxxxx>" * remotes/pmaydell/tags/pull-target-arm-20140317: (30 commits) scripts/qemu-binfmt-conf.sh: Add AArch64 registration target-arm: A64: Add [UF]RSQRTE (reciprocal root estimate) target-arm: A64: Implement FCVTXN target-arm: A64: Implement scalar saturating narrow ops target-arm: A64: Move handle_2misc_narrow function target-arm: A64: Implement AdvSIMD reciprocal estimate insns URECPE, FRECPE softfloat: export squash_input_denormal functions target-arm: A64: Implement FCVTZS, FCVTZU in the shift-imm categories target-arm: A64: Handle saturating left shifts SQSHL, SQSHLU, UQSHL exec-all.h: Increase MAX_OP_PER_INSTR for ARM A64 decoder target-arm: A64: Implement FRINT* target-arm: A64: Implement SRI target-arm: A64: Add FRECPX (reciprocal exponent) target-arm: A64: List unsupported shift-imm opcodes target-arm: A64: Implement FCVTL target-arm: A64: Implement FCVTN target-arm: A64: Implement FCVT[NMAPZ][SU] SIMD instructions target-arm: A64: Implement SHLL, SHLL2 target-arm: A64: Implement SADDLP, UADDLP, SADALP, UADALP target-arm: A64: Saturating and narrowing shift ops ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2fd71f1be2a2554b790fa63fc14b6b4c7683f1f3 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Mon Mar 17 17:05:17 2014 +0100 i386/acpi-build: support hotplug of VCPU with APIC ID 0xFF Building on the previous patch, raise the maximal count of processor objects / NTFY branches / CPON elements from 255 to 256. This allows the VCPU with APIC ID 0xFF to be hotplugged. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d07e0e9cddf02dd2abedbbf7ab0e069c8f5dabfd Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Mar 18 16:14:59 2014 +0200 acpi-test: rebuild SSDT commit 9bcc80cd71892df42605e0c097d85c0237ff45d1 i386/acpi-build: allow more than 255 elements in CPON Replaces 0x1 with a smaller One constant. rebuild expected SSDT. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9bcc80cd71892df42605e0c097d85c0237ff45d1 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Mon Mar 17 17:05:16 2014 +0100 i386/acpi-build: allow more than 255 elements in CPON The build_ssdt() function builds a number of AML objects that are related to CPU hotplug, and whose IDs form a contiguous sequence of APIC IDs. (APIC IDs are in fact discontiguous, but this is the traditional interface: build a contiguous sequence from zero up that covers all possible APIC IDs.) These objects are: - a Processor() object for each VCPU, - a NTFY method, with one branch for each VCPU, - a CPON package with one element (hotplug status byte) for each VCPU. The build_ssdt() function currently limits the *count* of processor objects, and NTFY branches, and CPON elements, in 0xFF (see the assignment to "acpi_cpus"). This allows for an inclusive APIC ID range of [0..254]. This is incorrect, because the highest APIC ID that we otherwise allow a VCPU to take is 255. In order to extend the maximum count to 256, and the traversed APIC ID range correspondingly to [0..255]: - the Processor() objects need no change, - the NTFY method also needs no change, - the CPON package must be updated, because it is defined with a DefPackage, and the number of elements in such a package can be at most 255. We pick a DefVarPackage instead. We replace the Op byte, and the encoding of the number of elements. Compare: DefPackage := PackageOp PkgLength NumElements PackageElementList DefVarPackage := VarPackageOp PkgLength VarNumElements PackageElementList PackageOp := 0x12 VarPackageOp := 0x13 NumElements := ByteData VarNumElements := TermArg => Integer The build_append_int() function implements precisely the following TermArg encodings (a subset of what the ACPI spec describes): TermArg := DataObject DataObject := ComputationalData ComputationalData := ConstObj | ByteConst | WordConst | DWordConst directly encoded in the function, with build_append_byte(): ConstObj := ZeroOp | OneOp ZeroOp := 0x00 OneOp := 0x01 call to build_append_value(..., 1): ByteConst := BytePrefix ByteData BytePrefix := 0x0A ByteData := 0x00 - 0xFF call to build_append_value(..., 2): WordConst := WordPrefix WordData WordPrefix := 0x0B WordData := ByteData[0:7] ByteData[8:15] call to build_append_value(..., 4): DWordConst := DWordPrefix DWordData DWordPrefix := 0x0C DWordData := WordData[0:15] WordData[16:31] Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit f03bd716a2935532379cff1c71c6f0f399921b70 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Fri Mar 14 16:33:54 2014 -0300 pc: Refuse max_cpus if it results in too large APIC ID This changes the PC initialization code to reject max_cpus if it results in an APIC ID that's too large, instead of aborting or erroring out when it is already too late. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 798325ed3856bc1e2f2b640b7e0db60044fdddf9 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Fri Mar 14 16:33:53 2014 -0300 acpi: Don't use MAX_CPUMASK_BITS for APIC ID bitmap MAX_CPUMASK_BITS is a limit for max_cpus and CPU indexes, not for APIC IDs. ACPI_CPU_HOTPLUG_ID_LIMIT is the right macro for the limit on APIC IDs on the ACPI and CPU hotplug code. There are no functional changes introduced by this patch, as MAX_CPUMASK_BITS + 1 == 255 + 1 == 256 == ACPI_CPU_HOTPLUG_ID_LIMIT. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 39ee3af3a85fedb55b9eeb1a0bc81a2460eeaa01 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Fri Mar 14 16:33:52 2014 -0300 acpi: Assert sts array limit on AcpiCpuHotplug_add() AcpiCpuHotplug_add() can't handle vCPU arch IDs larger than ACPI_CPU_HOTPLUG_ID_LIMIT. Instead of corrupting memory in case the vCPU ID is too large, use g_assert() to ensure we are not over the limit. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 5ff020b7b02dce36a66c106df986ff68f8452542 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Fri Mar 14 16:33:51 2014 -0300 pc: Refuse CPU hotplug if the resulting APIC ID is too large The ACPI CPU hotplug code requires APIC IDs to be smaller than ACPI_CPU_HOTPLUG_ID_LIMIT, so enforce the limit before trying to hotplug a new vCPU, returning an error instead of crashing. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 1d14ac5af04fab9ee734cc4c810f022df6745278 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Fri Mar 14 16:33:50 2014 -0300 acpi: Add ACPI_CPU_HOTPLUG_ID_LIMIT macro The new macro will be helpful to allow us to detect too large SMP limits before it is too late. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 3dd46eb4969baaf32f490eaf57ed23672f1daad2 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Mar 10 21:13:59 2014 +0200 acpi-test: update expected SSDT files commit 13f65b2e1073cf7e2c8fb3880c77d8a53fa2f95e acpi-test: update expected SSDT files set an incorrect SSDT. rebuild it. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 2f487a3d40faff1772e14da6b921900915501f9a Author: Peter Lieven <pl@xxxxxxx> Date: Mon Mar 17 18:38:58 2014 +0100 ui/vnc: fix vmware VGA incompatiblities this fixes invalid rectangle updates observed after commit 12b316d with the vmware VGA driver. The issues occured because the server and client surface update seems to be out of sync at some points and the max width of the surface is not dividable by VNC_DIRTY_BITS_PER_PIXEL (16). Reported-by: Serge Hallyn <serge.hallyn@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 315b59344126beab85a62b53582794b14436a5a4 Merge: cdf0592 4f3ed19 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 22:31:32 2014 +0000 Merge remote-tracking branch 'remotes/borntraeger/tags/kvm-s390-20140317' into staging 4 small patches: - Fixing findings of valgrind regarding minor memory leaks: Currently we forget the pointer of qemu_allocate_irqs. Since we never free the irqs, this is not critical, but obviously not good programming style. While we are at it, we dont need the irq infrastructure for the sclp consoles. - Handle new ELF error codes for BIOS loading # gpg: Signature made Mon 17 Mar 2014 21:34:12 GMT using RSA key ID B5A61C7C # gpg: Can't check signature: public key not found * remotes/borntraeger/tags/kvm-s390-20140317: s390x/sclpconsole-lm: Fix and simplify irq setup s390x/sclpconsole: Fix and simplify interrupt injection s390x/cpu hotplug: Fix memory leak s390/ipl: Fix error path on BIOS loading Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit cdf0592cb888d071e4b4f37048ad8646ac9fbc8c Merge: 87f6396 cab0a7e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 22:15:52 2014 +0000 Merge remote-tracking branch 'remotes/rth/tcg-v8p-2' into staging * remotes/rth/tcg-v8p-2: tcg-sparc: Convert to new ldst opcodes tcg-sparc: Convert to new ldst helpers tcg-sparc: Tidy tcg_out_tlb_load interface tcg-sparc: Use TCGMemOp within qemu_ldst routines tcg-sparc: Improve tcg_out_movi tcg-sparc: Dont handle constant arguments to ext32 ops tcg-sparc: Don't handle remainder tcg-sparc: Use intptr_t as appropriate tcg-sparc: Tidy call+jump patterns tcg-sparc: Fix tlb read tcg-sparc: Fix ld64 for 32-bit mode Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4f3ed190a673c0020c3ccebb4882ae4675cb5f4d Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Mon Mar 10 14:19:52 2014 +0100 s390x/sclpconsole-lm: Fix and simplify irq setup valgrind complains about a memory leak in irq setup of sclpconsole: ==42117== 8 bytes in 1 blocks are definitely lost in loss record 89of 833 ==42117== at 0x4031AFE: malloc (vg_replace_malloc.c:292) ==42117== by 0x8022F855: malloc_and_trace (vl.c:2715) ==42117== by 0x4145569: g_malloc (in /usr/lib64/libglib-2.0.so.0.3400.2) ==42117== by 0x800F696D: qemu_extend_irqs (irq.c:51) ==42117== by 0x800F6AF7: qemu_allocate_irqs (irq.c:68) ==42117== by 0x800F5685: console_init (sclpconsole.c:235) ==42117== by 0x80297C79: event_realize (event-facility.c:386) ==42117== by 0x80105071: device_set_realized (qdev.c:693) ==42117== by 0x801CDC4B: property_set_bool (object.c:1337) ==42117== by 0x801CBD7F: object_property_set (object.c:819) [...] We dont need the indirection of an qemu irq to inject an slcp interrupt. Fixes a valgrind error and makes the code simpler. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Acked-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> commit b074e6220542107afb9fad480a184775be591d2a Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Mon Mar 10 14:17:04 2014 +0100 s390x/sclpconsole: Fix and simplify interrupt injection valgrind complains about a memory leak in irq setup of sclpconsole: ==42117== 8 bytes in 1 blocks are definitely lost in loss record 89 of 833 ==42117== at 0x4031AFE: malloc (vg_replace_malloc.c:292) ==42117== by 0x8022F855: malloc_and_trace (vl.c:2715) ==42117== by 0x4145569: g_malloc (in /usr/lib64/libglib-2.0.so.0.3400.2) ==42117== by 0x800F696D: qemu_extend_irqs (irq.c:51) ==42117== by 0x800F6AF7: qemu_allocate_irqs (irq.c:68) ==42117== by 0x800F5685: console_init (sclpconsole.c:235) ==42117== by 0x80297C79: event_realize (event-facility.c:386) ==42117== by 0x80105071: device_set_realized (qdev.c:693) ==42117== by 0x801CDC4B: property_set_bool (object.c:1337) ==42117== by 0x801CBD7F: object_property_set (object.c:819) [...] Turns out that we actually dont need the indirection, so trigger the sclp interrupt directly. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Acked-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> commit 7b53f2940e3bf43ae50c929330a4837ca4da7a94 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Mon Mar 10 15:03:16 2014 +0100 s390x/cpu hotplug: Fix memory leak valgrind complains about the following: ==42117== 8 bytes in 1 blocks are definitely lost in loss record 88 of 833 ==42117== at 0x4031AFE: malloc (vg_replace_malloc.c:292) ==42117== by 0x8022F855: malloc_and_trace (vl.c:2715) ==42117== by 0x4145569: g_malloc (in /usr/lib64/libglib-2.0.so.0.3400.2) ==42117== by 0x800F696D: qemu_extend_irqs (irq.c:51) ==42117== by 0x800F6AF7: qemu_allocate_irqs (irq.c:68) ==42117== by 0x8029FA4B: irq_cpu_hotplug_init (sclpcpu.c:84) ==42117== by 0x80297C79: event_realize (event-facility.c:386) ==42117== by 0x80105071: device_set_realized (qdev.c:693) [...] Right it is. Don't drop the pointer of the irq. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Reviewed-by: Jason J. Herne <jjherne@xxxxxxxxxx> commit 0a1bec8a4e1c55bb581521c60db30e3f4867ceb1 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Fri Mar 14 13:38:57 2014 +0100 s390/ipl: Fix error path on BIOS loading commit 18674b26788a9e47f1157170234e32ece2044367 (elf-loader: add more return codes) enabled the elf loader to return other errors than -1. Lets also handle that case for our "BIOS" on s390. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> CC: Alexey Kardashevskiy <aik@xxxxxxxxx> CC: Alexander Graf <agraf@xxxxxxx> commit cab0a7ea002b0a01ebfbde5d3c8ace0b6848ffcc Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Sep 9 19:51:21 2013 -0700 tcg-sparc: Convert to new ldst opcodes Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7ea5d7256d06a04e8953b25f7766c9e32fa408e8 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Mar 5 09:42:08 2014 -0800 tcg-sparc: Convert to new ldst helpers All of the helpers with the explicit big/little endian option require the return address as a parameter. Acquire this via a trampoline. Move the load of areg0 into the trampoline. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a8b12c108c364587213396c3cd3e22d740f87e2e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Sep 6 15:01:14 2013 -0700 tcg-sparc: Tidy tcg_out_tlb_load interface Pass address registers explicitly, rather than as indicies of args[]. It's two argument registers either way. Use more TCGReg as appropriate. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit eef0d9e740be3fb3b8226d8dffb0871455d45ce5 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 3 20:12:01 2013 -0700 tcg-sparc: Use TCGMemOp within qemu_ldst routines Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a9c7d27bd189c8df698fac1369f718e7fa30d9d9 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Sep 9 21:07:09 2013 -0700 tcg-sparc: Improve tcg_out_movi If bits 31:13 are zero, reduce the insn count by one. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1d0a60681a287e5697fa5b537dabb77f9c9c7f04 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Mar 4 15:24:04 2014 -0800 tcg-sparc: Dont handle constant arguments to ext32 ops Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5f9eb02555e743bdeb2e22ea3c43a36cb9dad72f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 19:22:15 2013 -0700 tcg-sparc: Don't handle remainder The generic fallback is exactly what we implemented. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c8fc56cedda388641a3a5e1650db9a58c2280549 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 18:31:45 2013 -0700 tcg-sparc: Use intptr_t as appropriate Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit aad2f06a7f03d06945e727373e4e059997220529 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 18:25:38 2013 -0700 tcg-sparc: Tidy call+jump patterns Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d801a8f2ce9b89aef6006992ea1c573be817d80b Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Sep 6 17:19:12 2013 -0700 tcg-sparc: Fix tlb read We were computing the full address into %o0 and then not using it. Adjust some of the computation to rely less on having to pull immediate values into registers. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e7bc9004e729d4db1fdced5ccc09a322df53723f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Sep 6 14:20:00 2013 -0700 tcg-sparc: Fix ld64 for 32-bit mode Since were not using an annulled branch, we need to put a nop in the delay slot. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1ed27a17cd9d9ebec8963bc358d74060b1dd6127 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:53 2014 +0000 scripts/qemu-binfmt-conf.sh: Add AArch64 registration Add the binfmt-misc magic needed to register QEMU for handling AArch64 ELF binaries. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-26-git-send-email-peter.maydell@xxxxxxxxxx commit c2fb418e35be3eb1f60987174f94c029f7d4dd7d Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Mar 17 16:31:53 2014 +0000 target-arm: A64: Add [UF]RSQRTE (reciprocal root estimate) This adds support for [UF]RSQRTE instructions. It utilises the existing NEON helpers with some changes. The changes include an explicit passing of fpstatus (so the correct one is used between arm32 and aarch64), denormilzation, more correct error handling and also proper scaling of the fraction going into the estimate. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-25-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 5553955eb6ec890f324a2ff6c6cc1365b98b981f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:53 2014 +0000 target-arm: A64: Implement FCVTXN Implement the FCVTXN operation, which does a narrowing fp precision conversion using the "round to odd" (von Neumann) mode. This can conveniently be implemented as "do operation using round to zero; then set the LSB of the mantissa to 1 if the Inexact flag was set". Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-24-git-send-email-peter.maydell@xxxxxxxxxx commit 5201c13654c35e5e0173a9947848f3a9f9a5a8bc Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Mar 17 16:31:52 2014 +0000 target-arm: A64: Implement scalar saturating narrow ops This completes the set of integer narrowing saturating ops including: SQXTN, SQXTN2 SQXTUN, SQXTUN2 UQXTN, UQXTN2 Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-23-git-send-email-peter.maydell@xxxxxxxxxx commit 8b092ca9ef06fd308ecf1d46c805f938a95acc21 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Mar 17 16:31:52 2014 +0000 target-arm: A64: Move handle_2misc_narrow function Move the handle_2misc_narrow() function up the file so that it can be called from disas_simd_scalar_two_reg_misc(). Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-22-git-send-email-peter.maydell@xxxxxxxxxx commit b6d4443a7bf607c5ca5d4b8dabffc421e571f4eb Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Mar 17 16:31:52 2014 +0000 target-arm: A64: Implement AdvSIMD reciprocal estimate insns URECPE, FRECPE Implement URECPE and FRECPE instructions in both scalar and vector forms. The actual reciprocal estimate function is shared with the A32/T32 Neon code. However in A64 we aren't using the Neon "standard FPSCR value" so extra checks are necessary to handle non-squashed denormal inputs which can never happen for A32/T32. Calling conventions for the helpers are thus modified to pass the fpst directly; we mark the helpers as TCG_CALL_NO_RWG since we're changing the declarations anyway. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-21-git-send-email-peter.maydell@xxxxxxxxxx commit 7baeabce1d25c667d0ec7e4e74a1312e0b887b54 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Mar 17 16:31:51 2014 +0000 softfloat: export squash_input_denormal functions I need these available outside of softfloat for some of the reciprocal processing in aarch64 helper functions. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-20-git-send-email-peter.maydell@xxxxxxxxxx commit 2ed3ea110f47a7e3639281edb1d6483b1efce6c3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:51 2014 +0000 target-arm: A64: Implement FCVTZS, FCVTZU in the shift-imm categories Implement FCVTZS and FCVTZU in the shift-imm and scalar-shift-imm categories; this completes the implementation of those two groups. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-19-git-send-email-peter.maydell@xxxxxxxxxx commit a847f32c04538e92675c7b27f5f60d2eaad3e56c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:51 2014 +0000 target-arm: A64: Handle saturating left shifts SQSHL, SQSHLU, UQSHL Implement the saturating left shift instructions SQSHL, SQSHLU and UQSHL for the scalar-shift-imm and shift-imm categories. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-18-git-send-email-peter.maydell@xxxxxxxxxx commit 14dcdac82f398cbac874c8579b9583fab31c67bf Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:51 2014 +0000 exec-all.h: Increase MAX_OP_PER_INSTR for ARM A64 decoder The ARM A64 decoder's worst case number of TCG ops per instruction is 266 (for insn 0x4c800000, a post-indexed ST4 multiple-structures store). Raise the MAX_OP_PER_INSTR define accordingly. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-17-git-send-email-peter.maydell@xxxxxxxxxx commit 03df01ed9a83a22790f3fd1cfbe7fc48caf9bfd0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:50 2014 +0000 target-arm: A64: Implement FRINT* Implement the FRINT* round-to-integral operations from the 2-reg-misc category. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-16-git-send-email-peter.maydell@xxxxxxxxxx commit 37a706adbf96fbb05abbb8b17b14aebee266f2d1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:50 2014 +0000 target-arm: A64: Implement SRI Implement SRI (shift right and insert). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-15-git-send-email-peter.maydell@xxxxxxxxxx commit 8f0c6758b0e1c3b9676e7c3ccea8a176537cf843 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Mar 17 16:31:50 2014 +0000 target-arm: A64: Add FRECPX (reciprocal exponent) These are fairly simple exponent only estimation functions using helpers. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-14-git-send-email-peter.maydell@xxxxxxxxxx commit a566da1b02704a79038043ddbe850f40b033cd63 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:50 2014 +0000 target-arm: A64: List unsupported shift-imm opcodes Add the remaining unsupported opcodes to the decode switches for the shift-imm and scalar shift-imm categories so we can see what is still to be implemented. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-13-git-send-email-peter.maydell@xxxxxxxxxx commit 931c8cc270793877f8d7bf9934ac9fa3fb7800be Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:49 2014 +0000 target-arm: A64: Implement FCVTL Implement FCVTL, the only instruction in the 2-reg-misc group which widens from size to 2*size elements. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-12-git-send-email-peter.maydell@xxxxxxxxxx commit 261a5b4dd1dc6c68b274cc39bb5d4d236b24d4cd Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:49 2014 +0000 target-arm: A64: Implement FCVTN Implement FCVTN (narrowing fp-to-fp conversions) from the SIMD 2-reg-misc category. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-11-git-send-email-peter.maydell@xxxxxxxxxx commit 04c7c6c261c3000c851eb177a7d32236828f4be2 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:49 2014 +0000 target-arm: A64: Implement FCVT[NMAPZ][SU] SIMD instructions Implement the floating-point-to-integer conversion instructions FCVT[NMAPZ][SU] in the 2-reg-misc and scalar-2-reg-misc categories. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-10-git-send-email-peter.maydell@xxxxxxxxxx commit 73a81d10fda3cb45e62efd6829f19debb9f54073 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:49 2014 +0000 target-arm: A64: Implement SHLL, SHLL2 Implement the SHLL and SHLL2 instructions from the 2-reg-misc category. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-9-git-send-email-peter.maydell@xxxxxxxxxx commit 6781fa119f3f403bcab59142faa9581aff974358 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:48 2014 +0000 target-arm: A64: Implement SADDLP, UADDLP, SADALP, UADALP Implement the SADDLP, UADDLP, SADALP and UADALP instructions in the SIMD 2-reg misc category. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-8-git-send-email-peter.maydell@xxxxxxxxxx commit c1b876b2e9a47e3e36be57a4f3d167b19c5f586a Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Mar 17 16:31:48 2014 +0000 target-arm: A64: Saturating and narrowing shift ops This implements the remaining [US][Q][R]SHR[U][N][2] opcodes, which are saturating and narrowing shift right operations. These are used in things like libav. Note signed shifts can have an "unsigned" saturating narrow operation which will floor negative values. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1394822294-14837-7-git-send-email-peter.maydell@xxxxxxxxxx [PMM: Added the scalar encodings, style tweaks] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit b05c3068577f6caea6f1911b9e03d52dbf84f475 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Mar 17 16:31:48 2014 +0000 target-arm: A64: Add remaining CLS/Z vector ops Implement the CLS, CLZ operations in the 2-reg-misc category. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-6-git-send-email-peter.maydell@xxxxxxxxxx commit f612537e0706761d5692deaa72516695ef0a2ac8 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Mar 17 16:31:47 2014 +0000 target-arm: A64: Add FSQRT to C3.6.17 (two misc) Implement FSQRT in the two-reg-misc category. GCC uses this instruction form. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-5-git-send-email-peter.maydell@xxxxxxxxxx commit 10113b6903c0256c1741918430b0304c5a60b7a8 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Mar 17 16:31:47 2014 +0000 target-arm: A64: Add last AdvSIMD Integer to FP ops This adds the remaining [US]CVTF operations to the SIMD shift-immediate, scalar-shift-immediate, two-reg-misc and scalar-two-reg-misc groups of opcodes. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1394822294-14837-4-git-send-email-peter.maydell@xxxxxxxxxx [PMM: added scalar 2-misc and scalar-shift-imm encodings] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit cf4ab1af296b8ef5d5a1dc65fda804b88ddd0553 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Mar 17 16:31:47 2014 +0000 target-arm: A64: Fix bug in add_sub_ext handling of rn rn == 31 always means SP (not XZR) whether an add_sub_ext instruction is setting the flags or not; only rd has behaviour dependent on whether we are setting flags. Reported-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-3-git-send-email-peter.maydell@xxxxxxxxxx commit a984e42c916ad5afdf3f8660f284857547943aa4 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:47 2014 +0000 target-arm: A64: Implement PMULL instruction Implement the PMULL instruction; this is the last unimplemented insn in the three-reg-diff group. Note that PMULL with size 3 is considered part of the AES part of the crypto extensions (see the ID_AA64ISAR0_EL1 register definition in the v8 ARM ARM), so it isn't necessary to burn an extra feature bit on it, even though we're using more feature bits than a single "crypto extension present/not present" toggle. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394822294-14837-2-git-send-email-peter.maydell@xxxxxxxxxx commit d6d60581f3f6778de85ee23427006151b5226667 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:46 2014 +0000 target-arm: Add ARM_CP_IO notation to PMCR reginfo Now that the PMCR writefn makes timer accesses, its reginfo needs the ARM_CP_IO flag, so that icount mode works correctly. (Fixes the bug accidentally introduced in commit 7c2cb42b). Reported-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1394908291-16546-1-git-send-email-peter.maydell@xxxxxxxxxx commit ba7500852d8c3926a732892236765eee1bcaea93 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:46 2014 +0000 virt: Set reset-cbar on CPUs Set the reset-cbar property on CPUs used by the virt board, if they have it. This isn't necessary for correct functioning under Linux (since the A9 isn't a valid CPU for the virt board), but it is the correct behaviour. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1394462692-8871-5-git-send-email-peter.maydell@xxxxxxxxxx commit 4719ab918a837fb12f34599139f2c7c0137ca703 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:46 2014 +0000 exynos4210: Set reset-cbar property of Cortex-A9 CPUs Set the reset-cbar property of the Exynos4210 SoC's Cortex-A9 CPUs, so that Linux doesn't misrecognize them as a broken uniprocessor SoC. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1394462692-8871-4-git-send-email-peter.maydell@xxxxxxxxxx commit b5a3ca3e3028ab86131920b45a19d553f278bdb4 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:45 2014 +0000 realview-pbx-a9: Set reset-cbar property for CPUs If the CPU is a Cortex-A9 then we should set its reset-cbar property so that the guest can read the correct PERIPHBASE/CBAR register value; newer versions of the Linux kernel (as of commit bc41b8724 in 3.12) will otherwise assume the CPU is a buggy single core A9 SoC. The realview-pbx-a9 is the only one of the cluster of boards in realview.c which works with the Cortex-A9 (ie which gets an a9mpcore_priv device); make sure it also has reset-cbar set correctly. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1394462692-8871-3-git-send-email-peter.maydell@xxxxxxxxxx commit 9948c38bd9aef8fa762a1b62b9fccc35e11a6fd5 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 16:31:45 2014 +0000 vexpress: Set reset-cbar property for CPUs Newer versions of the Linux kernel (as of commit bc41b8724 in 3.12) now assume that if the CPU is a Cortex-A9 and the reset value of the PERIPHBASE/CBAR register is zero then the CPU is a specific buggy single core A9 SoC, and will not try to start other cores. Since we now have a CPU property for the reset value of the CBAR, we can just fix the vexpress board model to correctly set CBAR so SMP works again. To avoid duplicate boilerplate code in both the A9 and A15 daughterboard init functions, we split out the CPU and private memory region init to its own function. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reported-by: Rob Herring <rob.herring@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1394462692-8871-2-git-send-email-peter.maydell@xxxxxxxxxx commit 87f639629334c4592c3ba1011af0f691db1e7ed1 Merge: 087edb5 2bda660 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 15:51:57 2014 +0000 Merge remote-tracking branch 'remotes/kraxel/tags/pull-gtk-3' into staging gtk: warp bugfixes. gtk: Allow to activate grab-on-hover from the command line # gpg: Signature made Mon 17 Mar 2014 13:35:35 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-gtk-3: gtk: Don't warp absolute pointer gtk: Fix mouse warping with gtk3 gtk: Allow to activate grab-on-hover from the command line Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2bda66028b4962c36d4eabe2995edab12df93691 Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Thu Mar 13 15:30:24 2014 -0400 gtk: Don't warp absolute pointer This matches the behavior of SDL, and makes the mouse usable when using -display gtk -vga qxl https://bugzilla.redhat.com/show_bug.cgi?id=1051724 Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 298526fe92d0b35ea343f8ddcc3a1d54cb422494 Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Thu Mar 13 15:30:23 2014 -0400 gtk: Fix mouse warping with gtk3 We were using the wrong coordinates, this fixes things to match the original gtk2 implementation. You can see this error in action by using -vga qxl, however even after this patch the mouse warps in small increments up and to the left, -7x and -3y pixels at a time, until the pointer is warped off the widget. I think it's a qxl bug, but the next patch covers it up. Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 881249c79292b6883ecf4bdb79c11cc7dbdb4878 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Wed Mar 12 08:33:50 2014 +0100 gtk: Allow to activate grab-on-hover from the command line As long as we have no persistent GTK configuration, this allows to enable the useful grab-on-hover feature already when starting the VM. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> [ kraxel: fix warning with CONFIG_GTK=n ] Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e0eb210ec0c1cd262e3f642133ee93acdaf60aa0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 12:15:35 2014 +0000 linux-user: Implement capget, capset Implement the capget and capset syscalls. This is useful because simple programs like 'ls' try to use it in AArch64, and otherwise we emit a lot of noise about it being unimplemented. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 087edb503afebf184f07078900efc26c73035e98 Merge: f4b11ee 025172d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 17 13:05:48 2014 +0000 Merge remote-tracking branch 'remotes/bonzini/fixes-for-2.0' into staging * remotes/bonzini/fixes-for-2.0: vl.c: Output error on invalid machine type target-alpha: fix subl and s8subl indentation qemu-nbd: Fix coverity issues rules.mak: Fix per object libs extraction Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 025172d56e11ba3d86d0937933a23aab3b8606b1 Author: Miroslav Rezanina <mrezanin@xxxxxxxxxx> Date: Fri Mar 14 13:06:54 2014 +0100 vl.c: Output error on invalid machine type Output error message using qemu's error_report() function when user provides the invalid machine type on the command line. This also saves time to find what issue is when you downgrade from one version of qemu to another that doesn't support required machine type yet (the version user downgraded to have to have this patch applied too, of course). Signed-off-by: Miroslav Rezanina <mrezanin@xxxxxxxxxx> [Replace printf with error_printf, suggested by Markus Armbruster. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 83d1c8ae881e88d70cf23bc8007cf5739313d23c Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Mar 15 19:33:15 2014 +0100 target-alpha: fix subl and s8subl indentation Two missing braces, one close and one open, fabulously let the code compile. Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0c544d73bbb4c8612b7754a8e1c8b0c8af1617ff Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Mar 14 18:10:54 2014 +0100 qemu-nbd: Fix coverity issues There are two issues in qemu-nbd: a missing return value check after calling accept(), and file descriptor leaks in nbd_client_thread. Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 6295b98d7b767c377d88fa787ca62603a8ca6adb Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Mar 14 10:21:05 2014 +0800 rules.mak: Fix per object libs extraction Don't sort the extracted options, sort the objects. Reported-by: Christian Mahnke <cmahnke@xxxxxxxxxxxxxx> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit f4b11eee2f562c23b3efc33b96ba4542c9ca81aa Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Mar 17 09:35:22 2014 +0800 Makefile: Fix "make clean" This fixes a dangerous bug: "make clean" after "make distclean" will delete every single file including those under .git, if you do in-tree build! Rationale: A first "make distclean" will unset $(DSOSUF), a following "make distclean" or "make clean" will find all the files and delete it. Fix it by explicitly typing the file extensions here, and combine multiple find invocations into one. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Message-id: 1395020122-4957-1-git-send-email-famz@xxxxxxxxxx Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a7ec0f98e3a37a4d31c832cfa14dc2c1c0890421 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Mar 14 14:36:56 2014 +0000 linux-user: Don't allow guest to block SIGSEGV Don't allow the linux-user guest to block SIGSEGV -- QEMU needs this signal to detect accesses to pages which it has marked read-only because it has cached translated code from them. We implement this by making the do_sigprocmask() wrapper suppress SIGSEGV when doing the host process signal mask manipulation; instead we store the current state of SIGSEGV in the TaskState struct. If we get a SIGSEGV for the guest when the guest has blocked the signal, we treat it as if the default SEGV handler was in place, as the kernel does for forced SIGSEGV delivery. This patch is based on an idea by Alex Barcelo, but rather than simply lying to the guest about the SIGSEGV state we track it. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reported-by: Alex Barcelo <abarcelo@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 1c275925bfbbc2de84a8f0e09d1dd70bbefb6da3 Author: Alex Barcelo <abarcelo@xxxxxxxxxx> Date: Fri Mar 14 14:36:55 2014 +0000 signal: added a wrapper for sigprocmask function Create a wrapper for signal mask changes initiated by the guest; (this includes syscalls and also the sigreturns from signal.c) this will give us a place to put code which prevents the guest from changing the handling of signals used by QEMU itself internally. The wrapper is called from all the guest-initiated sigprocmask, but is not called from internal qemu sigprocmask calls. Signed-off-by: Alex Barcelo <abarcelo@xxxxxxxxxx> [PMM: Added calls to wrapper for sigprocmask uses in signal.c when setting the signal mask on entry and exit from signal handlers, since these also are guest-provided signal masks.] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 6b1275ff15b205a7738aa8ba96fe355f097b5879 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 10 12:59:17 2014 +0000 linux-user: Don't reserve space for commpage for AArch64 AArch64 Linux, unlike AArch32, doesn't use a commpage. This means we should not be reserving room in the guest address space for one. Fixes LP:1287195. Reported-by: Amanieu d'Antras <amanieu@xxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 8d5d30046b9aadfeee60e09fe79c063f419993db Author: Andreas Schwab <schwab@xxxxxxx> Date: Fri Mar 7 15:24:08 2014 +0100 linux-user: implement F_[GS]ETOWN_EX F_GETOWN is replaced by F_GETOWN_EX inside the glibc fcntl wrapper Signed-off-by: Andreas Schwab <schwab@xxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 3b899ea7d405dc7634ac629aa7b0e7639d506d9f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 12 13:06:01 2014 +0000 linux-user: Don't return uninitialized value for atomic_barrier syscall QEMU's implementation of the m68k atomic_barrier syscall, like the kernel's, is just a no-op. However we still need to return a result code from it. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 7f72cd235fa33f2fc7a8d1cc4d621bf7db61e9eb Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 12 13:06:00 2014 +0000 linux-user/signal.c: Correct error path for AArch64 do_rt_sigreturn The error path in AArch64 do_rt_sigreturn() which fails before attempting lock_user_struct() was doing an unlock_user_struct() on an uninitialized variable. Initialize frame to NULL so we can use the same error-exit path in all cases (unlock of NULL is permitted and does nothing). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 6fffa26244737f8fd8641a21fee29bd6aa9fdff5 Merge: e638308 9c749e4 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Mar 15 18:22:10 2014 +0000 Merge remote-tracking branch 'remotes/mjt/tags/trivial-patches-2014-03-15' into staging trivial patches for 2014-03-15 # gpg: Signature made Sat 15 Mar 2014 09:54:30 GMT using RSA key ID 74F0C838 # gpg: Good signature from "Michael Tokarev <mjt@xxxxxxxxxx>" # gpg: aka "Michael Tokarev <mjt@xxxxxxxxx>" # gpg: aka "Michael Tokarev <mjt@xxxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 6EE1 95D1 886E 8FFB 810D 4324 457C E0A0 8044 65C5 # Subkey fingerprint: E190 8639 3B10 B51B AC2C 8B73 5253 C5AD 74F0 C838 * remotes/mjt/tags/trivial-patches-2014-03-15: FSL eTSEC: Fix typo in rx ring scripts/make-release: Don't distribute .git directories configure: Don't use __int128_t for clang versions before 3.2 audio: Add 'static' attributes to several variables tests: Fix 'make test' for i686 hosts (build regression) misc: Fix typos in comments Add qga/qapi-generated to .gitignore hw/timer/grlib_gptimer: Avoid integer overflows .travis.yml: add IRC notifications for build failures .travis.yml: trivial whitespace fixup .travis.yml: re-enable lttng user space trace test .travis.yml: add a new build target with non-core devlibs sasl: Avoid 'Could not find keytab file' in syslog Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e6383080977ef1c761a00005ed533695acbe81e1 Merge: 4191d0e 582ab77 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Mar 15 18:03:15 2014 +0000 Merge remote-tracking branch 'remotes/rth/tcg-aarch-6-2' into staging * remotes/rth/tcg-aarch-6-2: tcg-aarch64: Introduce tcg_out_insn_3405 tcg-aarch64: Support div, rem tcg-aarch64: Support muluh, mulsh tcg-aarch64: Support add2, sub2 tcg-aarch64: Support deposit tcg-aarch64: Use tcg_out_insn for setcond tcg-aarch64: Support movcond tcg-aarch64: Support andc, orc, eqv, not, neg tcg-aarch64: Handle constant operands to and, or, xor tcg-aarch64: Handle constant operands to add, sub, and compare tcg-aarch64: Implement mov with tcg_out_insn tcg-aarch64: Introduce tcg_out_insn_3401 tcg-aarch64: Convert shift insns to tcg_out_insn tcg-aarch64: Introduce tcg_out_insn Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 9c749e4dbe65e61e159ad822a4110167c2c108fe Author: Fabien Chouteau <chouteau@xxxxxxxxxxx> Date: Fri Mar 14 17:51:41 2014 +0100 FSL eTSEC: Fix typo in rx ring Signed-off-by: Fabien Chouteau <chouteau@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 379e21c258d5faf0cd7c6f9208347726e14ae241 Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Fri Mar 14 12:49:13 2014 -0400 scripts/make-release: Don't distribute .git directories [crobinso@localhost qemu-2.0.0-rc0]$ find . -name .git ./dtc/.git ./pixman/.git This is already done for the rom submodules. https://bugs.launchpad.net/qemu/+bug/1224414 Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit a00f66ab9b3021e781695a73c579b6292501ab37 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Fri Mar 7 10:43:38 2014 +0100 configure: Don't use __int128_t for clang versions before 3.2 Those versions don't fully support __int128_t. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 69df1c3c9d937a2b4f005a5bad0fefd21b39f383 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Mar 5 22:21:32 2014 +0100 audio: Add 'static' attributes to several variables Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 6d4adef48dd6bb738474ab857f4fcb240ff9d2d6 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Fri Mar 7 11:11:22 2014 +0100 tests: Fix 'make test' for i686 hosts (build regression) 'make test' is broken at least since commit baacf04799ace72a9c735dd9306a1ceaf305e7cf. Several source files were moved to util/, and some of them there split, so add the missing prefix and new files to fix the compiler and linker errors. There remain more issues, but these changes allow running the test on a Linux i686 host. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 3b163b0165b1eee51afd00aeae8d2ad41d05c2a2 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Fri Mar 7 19:48:59 2014 +0100 misc: Fix typos in comments Codespell found and fixed these new typos: * doesnt -> doesn't * funtion -> function * perfomance -> performance * remaing -> remaining A coding style issue (line too long) was fixed manually. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit f214530f56b99be507e40cc261c9616ec84b72d3 Author: Gabriel L. Somlo <gsomlo@xxxxxxxxx> Date: Mon Mar 10 14:08:59 2014 -0400 Add qga/qapi-generated to .gitignore The folder "qga/qapi-generated" shows up after building QEMU, and gets in the way during e.g. "git add ."; Add it to .gitignore to keep it from accidentally ending up in the wrong place. Signed-off-by: Gabriel Somlo <somlo@xxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 9d5614d582d23ec96b167583557bf3f25f64f050 Author: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Date: Sun Feb 16 12:12:38 2014 +0100 hw/timer/grlib_gptimer: Avoid integer overflows The GPTIMER uses 32-bit registers. Use a 64-bit operation to get the ptimer count, otherwise we end up with a count of 0 for GPTIMER counter values of 0xffffffff. Use the GPTIMER counter value for tracing to avoid an overflow of the 32-bit value passed to trace_grlib_gptimer_enable(). Reviewed-by: Fabien Chouteau <chouteau@xxxxxxxxxxx> Signed-off-by: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 39d16d29c81295be72dbae6e6bc7adc58deacb41 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Wed Mar 12 14:13:53 2014 +0000 .travis.yml: add IRC notifications for build failures I'm trying to avoid spamming the IRC channel (not overly likely as builds take a while). So failure will always be reported but if the build continues to work then the IRC notifications will be quiet. Note any GitHub based repository with Travis enabled will use this notification. If it proves to be too spammy we may want to ask users not to use Travis themselves although this seems sub-optimal. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit cc13eead53b2e4cf5f209fec606aebf11c1dc8a8 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Wed Mar 12 14:13:52 2014 +0000 .travis.yml: trivial whitespace fixup Purely cosmetic but satisfies my OCD. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 86c3b20a5f654ae444ba6bd1a7b0516e0a17541d Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Wed Mar 12 14:13:51 2014 +0000 .travis.yml: re-enable lttng user space trace test This build was disabled while the lttng tracing was broken. Stefan has recently submitted a pull request with it re-enabled. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 6d585ca55999aec2bcfcbf04c3cbecbb952b7302 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Wed Mar 12 14:13:50 2014 +0000 .travis.yml: add a new build target with non-core devlibs The current builds don't include all the features which are auto-detected and then disabled when the appropriate test packages don't exist. I've added another target that enables all known additional packages for increased coverage. I didn't add it to the core package list to reduce build time. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit dfb3804d478bce02350bdf87534dc7dd3d1ded51 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Fri Mar 14 15:39:36 2014 +0100 sasl: Avoid 'Could not find keytab file' in syslog The "keytab" specification in "qemu.sasl" only makes sense if "gssapi" is selected in "mech_list". Even if the latter is not done (ie. "gssapi" is not selected), the cyrus-sasl library tries to open the specified keytab file, although nothing has a use for it outside the gssapi backend. Since the default keytab file "/etc/qemu/krb5.tab" is usually absent, the cyrus-sasl library emits a warning to syslog at startup, which tends to annoy users (who didn't ask for gssapi in the first place). Comment out the keytab specification per default. "qemu-doc.texi" already correctly explains how to use "mech_list: gssapi" together with "keytab:". See also: - upstream libvirt commit fe772f24, - Red Hat Bugzilla <https://bugzilla.redhat.com/show_bug.cgi?id=1018434>. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> ACKed-By: Cole Robinson <crobinso@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 4191d0eb414b14bcf3eab803095566aeb9b198f0 Merge: 03d5142 46dea41 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Mar 14 18:44:22 2014 +0000 Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging Block pull request # gpg: Signature made Fri 14 Mar 2014 16:12:14 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/block-pull-request: qemu-iotests: remove 085 and 087 from 'quick' group qemu-iotests: add 083 NBD client disconnect tests tests: add nbd-fault-injector.py utility nbd: close socket if connection breaks block: Explicitly specify 'unsigned long long' for VHDX 64-bit constants blockdev: Refuse to open encrypted image unless paused Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 03d51428e2da0188a0adea00cbd713cc1e967e7a Merge: 5d92c74 aa7a6a3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Mar 14 18:17:25 2014 +0000 Merge remote-tracking branch 'remotes/bonzini/scsi-next' into staging * remotes/bonzini/scsi-next: virtio-scsi: actually honor sense_size from configuration space scsi: Fix migration of scsi sense data spapr-vscsi: fix CRQ status Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 582ab779c5cf9c941909faa65e092b6b492e2da6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 15:57:36 2013 -0700 tcg-aarch64: Introduce tcg_out_insn_3405 Cleaning up the implementation of tcg_out_movi at the same time. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> commit 8678b71ce61a337109bca27b058a9027ff1c24ae Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 15:29:18 2013 -0700 tcg-aarch64: Support div, rem Clean up multiply at the same time. For remainder, generic code will produce mul+sub, whereas we can implement with msub. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> commit 1fcc9ddfb3c42431c027eb490613b51491202daa Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 15:03:27 2013 -0700 tcg-aarch64: Support muluh, mulsh Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> commit c6e929e7847cb440dbda8ae562a1fb1fdc5f0c77 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 13:30:07 2013 -0700 tcg-aarch64: Support add2, sub2 Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> commit b3c56df769c4b53b91219a0993f8ab8fcb25857b Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 13:05:07 2013 -0700 tcg-aarch64: Support deposit Also tidy the implementation of ubfm, sbfm, extr in order to share code. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> commit ed7a0aa8bc15a5278c8e76b83c359167c021ce86 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 11 18:54:46 2013 -0700 tcg-aarch64: Use tcg_out_insn for setcond Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> commit 04ce397b337cb1f81cde54d2b5dd7d6f0e08fffd Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 9 23:58:19 2013 -0400 tcg-aarch64: Support movcond Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> commit 14b155ddc4358342fcec7891615a4303b698221c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 9 23:15:44 2013 -0400 tcg-aarch64: Support andc, orc, eqv, not, neg Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> commit e029f29385d0f9116c717d2e7a9c55d4bac8fe8a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 11:27:03 2013 -0700 tcg-aarch64: Handle constant operands to and, or, xor Handle a simplified set of logical immediates for the moment. The way gcc and binutils do it, with 52k worth of tables, and a binary search depth of log2(5334) = 13, seems slow for the most common cases. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> commit 90f1cd9138deba50a6ff15a7f520c8e35ae870ac Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 09:56:14 2013 -0700 tcg-aarch64: Handle constant operands to add, sub, and compare Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> commit 7d11fc7c2b853fe01b5166a9de01ca94d0787b85 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 13 14:49:18 2013 -0700 tcg-aarch64: Implement mov with tcg_out_insn Avoid the magic numbers in the current implementation. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> commit 096c46c0ff3ad1db6048373620b44bef19f8408f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 13 14:37:08 2013 -0700 tcg-aarch64: Introduce tcg_out_insn_3401 This merges the implementation of tcg_out_addi and tcg_out_subi. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> commit df9351e372cb4a9d3079fcc5c7edead10b2a288e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 13 13:49:17 2013 -0700 tcg-aarch64: Convert shift insns to tcg_out_insn Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> commit 50573c66ebba29e96222390645d0adeb64f814cd Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 13 12:10:08 2013 -0700 tcg-aarch64: Introduce tcg_out_insn Converting the add/sub (3.5.2) and logical shifted (3.5.10) instruction groups to the new scheme. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> commit 46dea4160d587add2f3670306c41ad9ad4064af5 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Mar 13 10:28:01 2014 +0100 qemu-iotests: remove 085 and 087 from 'quick' group The 'quick' group in qemu-iotests are not allowed to run QEMU since we don't know which targets are available. In other words, they may only use qemu-img, qemu-io, and qemu-nbd. Drop 085 and 087 from the 'quick' group since they run QEMU. This makes "make check-block" pass again. Reported-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit dc668ded1009f88da5e31bc5a143cf3e9070d49b Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Feb 26 15:30:20 2014 +0100 qemu-iotests: add 083 NBD client disconnect tests This new test case uses nbd-fault-injector.py to simulate broken TCP connections at each stage in the NBD protocol. This way we can exercise block/nbd-client.c's socket error handling code paths. In particular, this serves as a regression test to make sure nbd-client.c doesn't cause an infinite loop by leaving its nbd_receive_reply() fd handler registered after the connection has been closed. This bug was fixed in an earlier patch. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1e8ece0db3e8604d3a17bbd2bd1277161851a44a Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Feb 26 15:30:19 2014 +0100 tests: add nbd-fault-injector.py utility The nbd-fault-injector.py script is a special kind of NBD server. It throws away all writes and produces zeroes for reads. Given a list of fault injection rules, it can simulate NBD protocol errors and is useful for testing NBD client error handling code paths. See the patch for documentation. This scripts is modelled after Kevin Wolf <kwolf@xxxxxxxxxx>'s blkdebug block driver. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4a41a2d68a684241aca96dba066e0699941b730d Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Feb 26 15:30:18 2014 +0100 nbd: close socket if connection breaks nbd_receive_reply() is called by the event loop whenever data is available or the socket has been closed by the remote side. This patch closes the socket when an error occurs to prevent the nbd_receive_reply() handler from being called indefinitely after the connection has failed. Note that we were already correctly returning EIO for pending requests but leaving the nbd_receive_reply() handler registered resulted in high CPU consumption and a flood of error messages. Reuse nbd_teardown_connection() to close the socket. Reported-by: Zhifeng Cai <bluewindow@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 62e466e84592900756f080802782d0615c6a3b5c Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Fri Mar 14 06:50:37 2014 -0400 block: Explicitly specify 'unsigned long long' for VHDX 64-bit constants On 32-bit hosts, some compilers will warn on too large integer constants for constants that are 64-bit in length. Explicitly put a 'ULL' suffix on those defines. Reported-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c3adb58fe0b2db4942f5b2f5d19bc51a29b93a89 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Mar 14 09:22:48 2014 +0100 blockdev: Refuse to open encrypted image unless paused Opening an encrypted image takes an additional step: setting the key. Between open and the key set, the image must not be used. We have some protection against accidental use in place: you can't unpause a guest while we're missing keys. You can, however, hot-plug block devices lacking keys into a running guest just fine, or insert media lacking keys. In the latter case, notifying the guest of the insert is delayed until the key is set, which may suffice to protect at least some guests in common usage. This patch makes the protection apply in more cases, in a rather heavy-handed way: it doesn't let you open encrypted images unless we're in a paused state. It doesn't extend the protection to users other than the guest (block jobs?). Use of runstate_check() from block.c is disgusting. Best I can do right now. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit aa7a6a399f8253d3831465b1db8544032b49f57a Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Mar 6 11:18:53 2014 +0100 virtio-scsi: actually honor sense_size from configuration space We were always truncating the sense size to 96 bytes. Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 2e323f03bfa323636552b386c982412944ff86ae Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Mar 6 16:26:02 2014 +0800 scsi: Fix migration of scsi sense data c5f52875 changed the size of sense array in vmstate_scsi_device by mistake. This patch restores the old size, and add a subsection for the remaining part of the buffer size. So that migration is not broken. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 22956a3755749b9cf6375ad024d58c1d277100bf Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Wed Mar 5 16:15:16 2014 +1100 spapr-vscsi: fix CRQ status Normally VIOSRP_OK (0) means success and non-zero value means error except VIOSRP_OK2 (0x99) which is another success code by weird accident. This uses 0 as success code always as some guests do not cope with the 0x99 value well. The existing linux driver checks for both VIOSRP_OK and VIOSRP_OK2 since 2.6.32. This returns non-zero code (VIOSRP_ADAPTER_FAIL == 0x10) on errors which can only happen if DMA write failed. Suggested-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 5d92c74f8a1728a202ba9457872ab0f27ff15e81 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Mar 13 20:08:15 2014 -0700 Update version for v2.0-rc0 Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit b19fc63cadb2815d5bcb1ec25b22849e455cbb31 Merge: 90c5d39 01c22f2 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 13 21:50:39 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/qom-devices-for-2.0' into staging QOM/QTest infrastructure fixes * QOM cast fix for virtserialport and regression test * QTest error handling fix * QTest output cleanup # gpg: Signature made Thu 13 Mar 2014 20:43:34 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/qom-devices-for-2.0: main-loop: Suppress "I/O thread spun" warnings for qtest qtest: Fix crash if SIGABRT during qtest_init() virtio-console-test: Test virtserialport as well virtio-console: Fix VIRTIO_CONSOLE() cast macro Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 90c5d39cb847d7f360454950be647cd83cacea58 Merge: 8bf0975 7effdaa Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 13 21:27:54 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/ppc-for-2.0' into staging PowerPC queue for 2.0 * Fixes for -device VGA # gpg: Signature made Thu 13 Mar 2014 19:57:12 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/ppc-for-2.0: spapr: Fix return value of vga initialization Fix vga_interface_type for command line argument '-device VGA' Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 01c22f2cdd4fcf02276ea10f48253850a5fd7259 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 13 14:17:29 2014 +0000 main-loop: Suppress "I/O thread spun" warnings for qtest When running under qtest we don't actually have any vcpu threads to be starved, so the warning about the I/O thread spinning isn't relevant, and the way qtest manipulates the simulated clock means the warning is produced a lot as a false positive. Suppress it if qtest_enabled(), so 'make check' output is less noisy. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit cb201b4872f16dfbce63f8648b2584631e2e965f Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Mar 13 10:41:34 2014 +0100 qtest: Fix crash if SIGABRT during qtest_init() If an assertion fails during qtest_init() the SIGABRT handler is invoked. This is the correct behavior since we need to kill the QEMU process to avoid leaking it when the test dies. The global_qtest pointer used by the SIGABRT handler is currently only assigned after qtest_init() returns. This results in a segfault if an assertion failure occurs during qtest_init(). Move global_qtest assignment inside qtest_init(). Not pretty but let's face it - the signal handler depends on global state. Reported-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Tested-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f33f991185bccd22963c256437b9d8ea63361ff5 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Mar 13 16:47:24 2014 +0100 virtio-console-test: Test virtserialport as well A test is only as good as its coverage - testing virtserialport in addition to virtconsole showed that commit 0399a3819b27083ba69b88a9baa9025facab85bd (virtio-console: QOM cast cleanup for VirtConsole) broke virtserialport. Acked-by: Richard W.M. Jones <rjones@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit be21c336162f5f4269131faffb1c6461cf57b74a Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Mar 13 17:12:53 2014 +0100 virtio-console: Fix VIRTIO_CONSOLE() cast macro Commit 0399a3819b27083ba69b88a9baa9025facab85bd (virtio-console: QOM cast cleanup for VirtConsole) broke virtserialport since it shares functions and state struct with virtconsole. Let virtconsole inherit from virtserialport, and use virtserialport type for casting. Note that virtio-serial-port is the abstract base type in virtio-serial-bus.c, whereas virtserialport is the user-instantiatable type in virtio-console.c. Therefore using TYPE_VIRTIO_CONSOLE_SERIAL_PORT. Reported-by: Richard W.M. Jones <rjones@xxxxxxxxxx> Acked-by: Richard W.M. Jones <rjones@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 8bf0975902bb23aea98da91e3a102bae3e1d94a6 Merge: bbbd67f d0b2542 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 13 20:09:11 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/prep-for-2.0' into staging PReP machine and devices * ppc_rom.bin update * Raven PCI host bridge preparations for OpenBIOS # gpg: Signature made Thu 13 Mar 2014 19:28:37 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/prep-for-2.0: raven: Move BIOS loading from board code to PCI host prep: Update ppc_rom.bin Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7effdaa32198b7077c51e29621dfca3d1b14e420 Author: Mark Wu <wudxw@xxxxxxxxxxxxxxxxxx> Date: Mon Mar 10 22:37:41 2014 +0800 spapr: Fix return value of vga initialization Before spapr_vga_init will returned false if the vga is specified by the command '-device VGA' because vga_interface_type was evaluated to VGA_NONE. With the change in previous patch of this series, spapr_vga_init should return true if it's told that the vga will be initialized in flow of the generic devices initialization. To keep '-nodefaults' have the semantics of bare minimum, it adds a check of 'has_defaults' in usb_enabled() to avoid that a USB controller is added by '-nodefautls, -device VGA' implicitly. This patch also makes two cleanups: 1. skip initialization for VGA_NONE 2. remove the useless 'break' Suggested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Mark Wu <wudxw@xxxxxxxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d44229c54f7477035c7e914dd12c84e01bbd4123 Author: Mark Wu <wudxw@xxxxxxxxxxxxxxxxxx> Date: Mon Mar 10 22:37:40 2014 +0800 Fix vga_interface_type for command line argument '-device VGA' Some machine (like pseries) initialization code determines if it has graphics according to vga_interface_type. In the original code, vga_interface_type is evaluated to VGA_NONE even if a VGA is added via '-device VGA'. It causes the machine not aware of the graphics device configured. Add a new VGA device type to indicate that it has a VGA device, which will be initialized in QOM device initialization. Suggested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Mark Wu <wudxw@xxxxxxxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d0b25425749d5525b2ba6d9d966d8800a5643b35 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Tue Nov 5 00:09:45 2013 +0100 raven: Move BIOS loading from board code to PCI host Raven datasheet explains where firmware lives in system memory, so do it there instead of in board code. Other boards using the same PCI host will not have to copy the firmware loading code. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> [AF: Drop BIOS size workaround in favor of replacing our firmware blob] Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 4c1410d59c6d02882b97ded8c3144bfbd039e0df Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Wed Mar 12 18:43:01 2014 +0100 prep: Update ppc_rom.bin This increases file size from 512 KiB to 1 MiB. Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit bbbd67f0ccdba93702e58879997c1d2ca67311b1 Merge: d7f0a59 2ef1f68 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 13 19:13:33 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/qom-cpu-for-2.0' into staging QOM CPUState refactorings / X86CPU * Deadlock fix for exit requests around CPU reset * X86CPU x2apic for KVM * X86CPU model subclasses * SPARCCPU preparations for model subclasses * -cpu arguments for arm, cris, lm32, moxie, openrisc, ppc, sh4, uc32 * m68k assertion cleanups * CPUClass hooks for cpu.h inline functions * Field movements from CPU_COMMON to CPUState and follow-up cleanups # gpg: Signature made Thu 13 Mar 2014 19:06:56 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/qom-cpu-for-2.0: (58 commits) user-exec: Change exception_action() argument to CPUState cputlb: Change tlb_set_page() argument to CPUState cputlb: Change tlb_flush() argument to CPUState cputlb: Change tlb_flush_page() argument to CPUState target-microblaze: Replace DisasContext::env field with MicroBlazeCPU target-cris: Replace DisasContext::env field with CRISCPU exec: Change cpu_abort() argument to CPUState exec: Change memory_region_section_get_iotlb() argument to CPUState cputlb: Change tlb_unprotect_code_phys() argument to CPUState cpu-exec: Change cpu_resume_from_signal() argument to CPUState exec: Change cpu_breakpoint_{insert,remove{,_by_ref,_all}} argument exec: Change cpu_watchpoint_{insert,remove{,_by_ref,_all}} argument target-ppc: Use PowerPCCPU in PowerPCCPUClass::handle_mmu_fault hook translate-all: Change tb_flush_jmp_cache() argument to CPUState translate-all: Change tb_gen_code() argument to CPUState translate-all: Change cpu_io_recompile() argument to CPUState translate-all: Change tb_check_watchpoint() argument to CPUState translate-all: Change cpu_restore_state_from_tb() argument to CPUState translate-all: Change cpu_restore_state() argument to CPUState cpu-exec: Change cpu_loop_exit() argument to CPUState ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2ef1f68d4f6630e6c77071d2dd979123d1b4d0ed Author: Andreas Färber <afaerber@xxxxxxx> Date: Wed Sep 4 08:54:24 2013 +0200 user-exec: Change exception_action() argument to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 0c591eb0a9d0593d71d7cb61f4184222ac14fdd2 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Sep 3 13:59:37 2013 +0200 cputlb: Change tlb_set_page() argument to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 00c8cb0a36f51a6866a83c08962d12a0eb21864b Author: Andreas Färber <afaerber@xxxxxxx> Date: Wed Sep 4 02:19:44 2013 +0200 cputlb: Change tlb_flush() argument to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 31b030d4abc5bea89c2b33b39d3b302836f6b6ee Author: Andreas Färber <afaerber@xxxxxxx> Date: Wed Sep 4 01:29:02 2013 +0200 cputlb: Change tlb_flush_page() argument to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 0063ebd6ac5ce0a17896d05f117757a6ebf3ca96 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Sep 3 20:02:48 2013 +0200 target-microblaze: Replace DisasContext::env field with MicroBlazeCPU This cleans up some mb_env_get_cpu() needed for cpu_abort(). Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 0dd106c5f098466aae7a87362b98467f09863079 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Sep 3 18:42:27 2013 +0200 target-cris: Replace DisasContext::env field with CRISCPU This cleans up repeated cris_env_get_cpu() for cpu_abort(). Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a47dddd7348d3e75ad650ef5e2ca9c3b13a600ac Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Sep 3 17:38:47 2013 +0200 exec: Change cpu_abort() argument to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d7f0a59ff02affb8270ad9b6ee7e60974ac92df0 Merge: 4a9a1f4 d58b912 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 13 18:37:00 2014 +0000 Merge remote-tracking branch 'remotes/kraxel/tags/pull-input-6' into staging input: activate legacy kbd gtk: Add mouse wheel support # gpg: Signature made Thu 13 Mar 2014 10:34:17 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-input-6: gtk: Add mouse wheel support input: activate legacy kbd Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit bb0e627a84752707e629fde5534558ac08e7c521 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Sep 3 13:32:01 2013 +0200 exec: Change memory_region_section_get_iotlb() argument to CPUState It no longer needs CPUArchState since moving watchpoints to CPUState. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit baea4fae7b6d75ce0d1aeb2be0a223c7be8f4161 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Sep 3 10:51:26 2013 +0200 cputlb: Change tlb_unprotect_code_phys() argument to CPUState Note that the argument is unused. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 0ea8cb8895a9f9adea89fb202984dcd9e890e504 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Sep 3 02:12:23 2013 +0200 cpu-exec: Change cpu_resume_from_signal() argument to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit b3310ab3380995af2c640a3ffd82f6e7b352c9e6 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Sep 2 17:26:20 2013 +0200 exec: Change cpu_breakpoint_{insert,remove{,_by_ref,_all}} argument Use CPUState. Allows to clean up CPUArchState in gdbstub. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 75a34036d43dc961cbef2a4705682d0666caf384 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Sep 2 16:57:02 2013 +0200 exec: Change cpu_watchpoint_{insert,remove{,_by_ref,_all}} argument Use CPUState. This lets us drop a few local env usages. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d0e39c5d70c4e0a9c41ef816a19887fd8f55c665 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Sep 2 14:14:24 2013 +0200 target-ppc: Use PowerPCCPU in PowerPCCPUClass::handle_mmu_fault hook Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 611d4f996f650294483ff4b01c3140651e2dd29c Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Sep 1 17:52:07 2013 +0200 translate-all: Change tb_flush_jmp_cache() argument to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 648f034c6cd81c64d93a1cfd7bb262006f560649 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Sep 1 17:43:17 2013 +0200 translate-all: Change tb_gen_code() argument to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 90b40a696a6bcfac88529930d4d1e1599878dae3 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Sep 1 17:21:47 2013 +0200 translate-all: Change cpu_io_recompile() argument to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 239c51a54fe2a1ffc5108f496caae79e5be0cabc Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Sep 1 17:12:23 2013 +0200 translate-all: Change tb_check_watchpoint() argument to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 74f10515d1b6e6064e4161157f8c98095c49065f Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Sep 1 17:02:58 2013 +0200 translate-all: Change cpu_restore_state_from_tb() argument to CPUState And normalize the argument order. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 3f38f309b22d9a30b5b427501eb3d522c439482e Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Sep 1 16:51:34 2013 +0200 translate-all: Change cpu_restore_state() argument to CPUState This lets us drop some local variables in tlb_fill() functions. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5638d180d6c469fc4c56127a3c717e8b9f27d925 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Aug 27 17:52:12 2013 +0200 cpu-exec: Change cpu_loop_exit() argument to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d5a11fefef1eeed86a8f06021067ba9990729a5a Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Aug 27 00:28:06 2013 +0200 exec: Change tlb_fill() argument to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f0c3c505a8ec1a948006b3a16a35864a2270a84b Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 26 21:22:53 2013 +0200 cpu: Move breakpoints field from CPU_COMMON to CPUState Most targets were using offsetof(CPUFooState, breakpoints) to determine how much of CPUFooState to clear on reset. Use the next field after CPU_COMMON instead, if any, or sizeof(CPUFooState) otherwise. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ff4700b05cfb305a880762c288b88ca01c782352 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 26 18:23:18 2013 +0200 cpu: Move watchpoint fields from CPU_COMMON to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 0429a9719551a4aa794051aeb8c7b42658902c27 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 26 18:14:44 2013 +0200 cpu: Move opaque field from CPU_COMMON to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 27103424c40ce71053c07d8a54ef431365fa9b7f Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 26 08:31:06 2013 +0200 cpu: Move exception_index field from CPU_COMMON to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 6f03bef0ffc5cd75ac5ffcca0383c489ae48108c Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 26 06:22:03 2013 +0200 cpu: Move jmp_env field from CPU_COMMON to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 8cd70437f385fc53f34481d506cf4a18ebe75976 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 26 06:03:38 2013 +0200 cpu: Move tb_jmp_cache field from CPU_COMMON to CPUState Clear it on reset. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 28ecfd7a62fafe8f4f0b35a157005f4d13913043 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 26 05:51:49 2013 +0200 cpu: Move icount_decr field from CPU_COMMON to CPUState Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit efee734004c42ba185098086e5185d8a85ed02af Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 26 05:39:29 2013 +0200 cpu: Move icount_extra field from CPU_COMMON to CPUState Reset it. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 99df7dce8ae81e4a42dac98094ccca3a32dcf8f8 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 26 05:15:23 2013 +0200 cpu: Move can_do_io field from CPU_COMMON to CPUState Rename can_do_io() to cpu_can_do_io() and change argument to CPUState. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 93afeade09680c657e109bf192dbf70233e4ebbe Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 26 03:41:01 2013 +0200 cpu: Move mem_io_{pc,vaddr} fields from CPU_COMMON to CPUState Reset them. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 7510454e3e74aafa2e6c50388bf24904644b6a96 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 26 03:01:33 2013 +0200 cpu: Turn cpu_handle_mmu_fault() into a CPUClass hook Note that while such functions may exist both for *-user and softmmu, only *-user uses the CPUState hook, while softmmu reuses the prototype for calling it directly. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 7372c2b926200db295412efbb53f93773b7f1754 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 12 13:24:49 2014 +0000 target-m68k: Remove custom qemu_assert() function Remove the custom qemu_assert() function defined by target-m68k/translate.c in favour of either using glib g_assert_not_reached() (for the genuinely can't-happen cases) or cpu_abort() (for the "this isn't implemented", in line with other unimplemented cases in the target). This has the benefit of silencing some clang warnings about variables used while uninitialized (which are emitted because clang can't figure out that qemu_assert(0, something) never returns. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 9262685b818512215f0829f0dc95c2363898a1ad Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Mar 4 03:17:10 2014 +0100 cpu: Factor out cpu_generic_init() All targets using it gain the ability to set -cpu name,key=value,... options via the default TYPE_CPU CPUClass::parse_features() implementation. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 1590bbcb02921dfe8e3cf66e3a3aafd31193babf Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Mar 3 23:33:51 2014 +0100 cpu: Implement CPUClass::parse_features() for the rest of CPUs CPUs who do not provide their own implementation of feature parsing will treat each option as a QOM property and set it to the supplied value. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 247bf011f67c4037df7bfcd11ff0106e06f439c9 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Mar 4 01:26:33 2014 +0100 target-sparc: Defer SPARCCPU feature inference to QOM realize Gets it out of cpu_sparc_register() and aligns with target-arm. Tested-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 433ac7a968ccff83f0d0e9a3c3921bc208175239 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Mar 4 00:38:58 2014 +0100 target-sparc: Implement CPUClass::parse_features() for SPARCCPU Factor cpu_model parsing out of cpu_sparc_find_by_name() by passing cpu_sparc_find_by_name() the name portion only and calling CPUClass::parse_features() from cpu_sparc_register() afterwards. Tested-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit db5d39f7866d3b02e06b91b0404061a4da00cd6c Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Mar 3 23:47:54 2014 +0100 target-sparc: Use error_report() for CPU error reporting Replace non-debug fprintf() with error_report(). Tested-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 94a444b295cddad008483eb928925a793af5aa9b Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Mar 3 23:19:19 2014 +0100 cpu: Introduce CPUClass::parse_features() hook Adapt the X86CPU implementation to suit the generic hook. This involves a cleanup of error handling to cope with NULL errp. Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d940ee9b787d37a9ea90f4379a79825ade08bb05 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Mon Feb 10 08:21:30 2014 -0200 target-i386: X86CPU model subclasses Register separate QOM types for each x86 CPU model. This will allow management code to more easily probe what each CPU model provides, by simply creating objects using the appropriate class name, without having to restart QEMU. This also allows us to eliminate the qdev_prop_set_globals_for_type() hack to set CPU-model-specific global properties. Instead of creating separate class_init functions for each class, I just used class_data to store a pointer to the X86CPUDefinition struct for each CPU model. This should make the patch shorter and easier to review. Later we can gradually convert each X86CPUDefinition field to lists of per-class property defaults. The "host" CPU model is special, as the feature flags depend on KVM being initialized. So it has its own class_init and instance_init function, and feature flags are set on instance_init instead of class_init. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Tested-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> [AF: Limit the host CPU type to CONFIG_KVM as build fix] Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 500050d1e0fd4bf61bd77915f5e42e2180cf6f7d Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Feb 10 22:02:44 2014 +0100 target-i386: Prepare CPUClass::class_by_name for X86CPU Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Tested-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ef02ef5f4536dba090b12360a6c862ef0e57e3bc Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Feb 19 11:58:12 2014 -0300 target-i386: Enable x2apic by default on KVM When on KVM mode, enable x2apic by default on all CPU models. Normally we try to keep the CPU model definitions as close as the real CPUs as possible, but x2apic can be emulated by KVM without host CPU support for x2apic, and it improves performance by reducing APIC access overhead. x2apic emulation is available on KVM since 2009 (Linux 2.6.32-rc1), there's no reason for not enabling x2apic by default when running KVM. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 8fb4f821e93a75431973bf3a11bacd924e43816c Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Feb 19 11:58:11 2014 -0300 target-i386: Introduce x86_cpu_compat_disable_kvm_features() Instead of the feature-specific disable_kvm_pv_eoi() function, create a more general function that can be used to disable other feature bits in machine-type compat code. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5fcca9ff3b7bd6567bc1a9488f2481f163de46ba Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Feb 19 11:58:10 2014 -0300 target-i386: Make kvm_default_features an array We will later make the KVM-specific code affect other feature words, too. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 74f54bc4bab8ccc5e0692c3aee479c155a701343 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Feb 19 16:39:21 2014 -0300 target-i386: Don't declare variables in the middle of blocks Some of my recent changes introduced variable declarations in the middle of code blocks. Fix the code so that it compiles without warnings when using -Wdeclaration-after-statement. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 9576de75734488e9774bdcb0ce4d7a38a8dc7901 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Jan 30 17:48:58 2014 -0200 target-i386: Rename x86_def_t to X86CPUDefinition As the new X86CPU subclass code is going to change lots of the code invoving x86_def_t, let's rename the struct to match coding style first. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 285f025d2c804de78d4f3a90cd1efa4c8907d641 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Jan 30 17:48:57 2014 -0200 target-i386: Call x86_cpu_load_def() earlier As we will initialize the X86CPU fields on instance_init eventually, move the code that initializes the X86CPU data based on the CPU model name closer to the object_new() call. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c080e30ec8727d7b8c4995fe288852541aa58b06 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Jan 30 17:48:56 2014 -0200 target-i386: Rename cpu_x86_register() to x86_cpu_load_def() There isn't any kind of "registration" involved in cpu_x86_register() anymore: it is simply looking up a CPU model name and loading the model definition data into the X86CPU object. Rename it to x86_cpu_load_def() to reflect what it does. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 8c2e1b0093aa4a89548df47d969217d8b0dfd070 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 25 18:53:55 2013 +0200 cpu: Turn cpu_has_work() into a CPUClass hook Default to false. Tidy variable naming and inline cast uses while at it. Tested-by: Jia Liu <proljc@xxxxxxxxx> (or32) Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 1cf5ccbca8915277098727d900d52c495a711f88 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Mar 9 20:02:29 2014 +0100 target-xtensa: Clean up ENV_GET_CPU() usage Commits a00817cc4c18b7872e92765a4736fb2227cc237b and fdfba1a298ae26dd44bcfdb0429314139a0bc55a added usages of ENV_GET_CPU() macro in target-specific code. Use xtensa_env_get_cpu() instead. Cc: Max Filippov <jcmvbkbc@xxxxxxxxx> Cc: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 62864712b3c585545365e332a041b515e319a3b8 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Mar 9 19:58:13 2014 +0100 target-unicore32: Clean up ENV_GET_CPU() usage Commit fdfba1a298ae26dd44bcfdb0429314139a0bc55a added a usage of ENV_GET_CPU() macro in target-specific code. Use uc32_env_get_cpu() instead. Cc: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 2fad1112dbbac5b5428707e03bddd89cd20e21d2 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Mar 9 19:51:00 2014 +0100 target-sparc: Clean up ENV_GET_CPU() usage Commits fdfba1a298ae26dd44bcfdb0429314139a0bc55a, 2c17449b3022ca9623c4a7e2a504a4150ac4ad30 and f606604f1c10b60ef294f1b9b229426521a365e3 added usages of ENV_GET_CPU() macro in target-specific code. Use sparc_env_get_cpu() instead and reuse the variables. Cc: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 2efc6be2eaacc289fbfb865198d290b0f6d2ac6e Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Mar 9 19:40:08 2014 +0100 target-s390x: Clean up ENV_GET_CPU() usage Commits f606604f1c10b60ef294f1b9b229426521a365e3, 2c17449b3022ca9623c4a7e2a504a4150ac4ad30 and 5ce5944dc0ffdc43c11b5cad11e526f699aabe4c added usages of ENV_GET_CPU() macro in target-specific code. Use s390_env_get_cpu() instead. Cc: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 33276f1b9cf0cc2a1f3ccedb20d3850fb2b97c1d Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Mar 9 19:29:41 2014 +0100 target-ppc: Clean up ENV_GET_CPU() usage Commits fdfba1a298ae26dd44bcfdb0429314139a0bc55a, ab1da85791340e504d10487e1add81b9988afa98, f606604f1c10b60ef294f1b9b229426521a365e3 and 2c17449b3022ca9623c4a7e2a504a4150ac4ad30 added usages of ENV_GET_CPU() macro in target-specific code. Use ppc_env_get_cpu() instead. Cc: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 19d6ca16d9079a29e95307948f80f9ef02f7582c Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Mar 9 19:15:27 2014 +0100 target-i386: Clean up ENV_GET_CPU() usage Commits fdfba1a298ae26dd44bcfdb0429314139a0bc55a, f606604f1c10b60ef294f1b9b229426521a365e3 and 2c17449b3022ca9623c4a7e2a504a4150ac4ad30 added usages of ENV_GET_CPU() macro in target-specific code. Use x86_env_get_cpu() or reuse existing X86CPU variable instead. Cc: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 70d74660e7024c6725543b791d9c8138abedd433 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Mar 9 19:10:29 2014 +0100 target-arm: Clean up ENV_GET_CPU() usage Commits ab1da85791340e504d10487e1add81b9988afa98, fdfba1a298ae26dd44bcfdb0429314139a0bc55a, 2c17449b3022ca9623c4a7e2a504a4150ac4ad30 added usages of ENV_GET_CPU() macro to target-specific code. Use arm_env_get_cpu() instead and enforce separating variable declarations. Cc: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d2810ffd34a89b697f0ad4aeebf2d5f2c2abc79e Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Mar 9 18:58:57 2014 +0100 target-alpha: Clean up ENV_GET_CPU() usage Commits 2c17449b3022ca9623c4a7e2a504a4150ac4ad30, fdfba1a298ae26dd44bcfdb0429314139a0bc55a, ab1da85791340e504d10487e1add81b9988afa98 and f606604f1c10b60ef294f1b9b229426521a365e3 added usages of ENV_GET_CPU() macro in target-specific code. Use alpha_env_get_cpu() instead. Cc: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 9d111183d5d67be6252dd4a4e688ef4ad323f817 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Thu Feb 13 15:07:14 2014 +1000 cpu: Don't clear cpu->exit_request on reset cpu->exit_request is part of the execution environment and should not be cleared when a CPU resets. Otherwise, we might deadlock QEMU if a CPU resets while there is I/O going on. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 4a9a1f49c58fb0cbdd17ad3de2cc682aad3230b8 Merge: 57fac92 ac1b84d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 13 17:19:14 2014 +0000 Merge remote-tracking branch 'remotes/kraxel/tags/pull-chardev-1' into staging char: restore read callback on a reattached (hotplug) chardev # gpg: Signature made Thu 13 Mar 2014 10:29:34 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-chardev-1: char: restore read callback on a reattached (hotplug) chardev Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 57fac92c2d4487d5c45e1ca96df6790f96c9e64c Merge: 41975b2 57ed25b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 13 15:33:04 2014 +0000 Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging Block pull request # gpg: Signature made Thu 13 Mar 2014 13:50:49 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/block-pull-request: (24 commits) block/raw-win32: bdrv_parse_filename() for hdev block/raw-posix: Strip protocol prefix on creation block/raw-posix: bdrv_parse_filename() for cdrom block/raw-posix: bdrv_parse_filename() for floppy block/raw-posix: bdrv_parse_filename() for hdev qemu-io: Fix warnings from static code analysis block: Unlink temporary file qcow2: Don't write with BDRV_O_INCOMING qcow2: Keep option in qcow2_invalidate_cache() qmp: add query-iothreads command iothread: stash thread ID away dataplane: replace internal thread with IOThread iothread: add "iothread" qdev property type qdev: make get_pointer() handle temporary strings iothread: add I/O thread object aio: add aio_context_acquire() and aio_context_release() rfifolock: add recursive FIFO lock object: add object_get_canonical_path_component() block: Rewrite the snapshot authorization mechanism for block filters. iotests: Test corruption during COW request ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 41975b269cf1503c735f8233f8ef373d74f1f137 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Thu Mar 13 14:27:59 2014 +0100 oslib-posix: Fix build on FreeBSD Commit 10f5bff622cad71645e22c027b77ac31e51008ef (util: Split out exec_dir from os_find_datadir) moved code from os-posix.c to util/oslib-posix.c but forgot to move a FreeBSD #include alongside, needed for CTL_KERN among others. Cc: Fam Zheng <famz@xxxxxxxxxx> Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> Message-id: 1394717279-23406-1-git-send-email-andreas.faerber@xxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 57ed25b1b08a43f29326df064d43b6420a23b5ba Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Sat Mar 8 00:39:45 2014 +0100 block/raw-win32: bdrv_parse_filename() for hdev The "host_device" protocol driver should strip the "host_device:" prefix from filenames if present. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit cc28c6aa46334be01f3e65a74601ae38f94bd602 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Sat Mar 8 00:39:44 2014 +0100 block/raw-posix: Strip protocol prefix on creation The hdev_create() implementation in block/raw-posix.c is used by the "host_device", "host_cdrom" and "host_floppy" protocol block drivers together. Thus, any of the associated prefixes may occur and exactly one should should be stripped, if it does (thus, "host_device:host_cdrom:/dev/cdrom" is not shortened to "/dev/cdrom"). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 18fa1c42a314a3e18f097b28ec5189a144d36f99 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Sat Mar 8 00:39:43 2014 +0100 block/raw-posix: bdrv_parse_filename() for cdrom The "host_cdrom" protocol drivers should strip the "host_cdrom:" prefix from filenames if present. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d3f49845831d75fa2e2a5dab04cb78fb12f8a2bc Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Sat Mar 8 00:39:42 2014 +0100 block/raw-posix: bdrv_parse_filename() for floppy The "host_floppy" protocol driver should strip the "host_floppy:" prefix from filenames if present. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7af803d4f80efb56c250f16409501994e60adf60 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Sat Mar 8 00:39:41 2014 +0100 block/raw-posix: bdrv_parse_filename() for hdev The "host_device" protocol driver should strip the "host_device:" prefix from filenames if present. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f988388025c230ef3293cc0c3820cb40e03adfbf Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Mar 5 22:23:00 2014 +0100 qemu-io: Fix warnings from static code analysis Smatch complains about several global symbols which should be local. Add the missing 'static' attributes and move the 'extern' declaration of variable qemuio_misalign to qemu-io.h. This variable also changes the type from 'int' to 'bool' which better fits documents its use. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Acked-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 9562f69cfdc55c7c1625bb88df1637fed182e68b Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Sat Feb 15 18:03:21 2014 +0100 block: Unlink temporary file If the image file cannot be opened and was created as a temporary file, it should be deleted; thus, in this case, we should jump to the "unlink_and_fail" label and not just to "fail". Reported-by: Benoît Canet <benoit@xxxxxxxxxxx> Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Acked-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 27eb6c097c132bf9fc49d73554b0160293b630cd Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Mar 11 15:15:03 2014 +0100 qcow2: Don't write with BDRV_O_INCOMING qcow2_open() causes writes when repairing an image with the dirty flag set and when clearing autoclear flags. It shouldn't do this when another qemu instance is still actively working on this image file. One effect of the bug is that images may have a cleared dirty flag while the migration source host still has it in use with lazy refcounts enabled, so refcounts are not accurate and the dirty flag must remain set. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d475e5acd2f4679d6ce458369ee658dbd60227e9 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Mar 11 17:42:41 2014 +0100 qcow2: Keep option in qcow2_invalidate_cache() Instead of manually building a list of all options from BDRVQcowState values just reuse the options that were used to open the image. qcow2_open() won't fully use all of the options in the QDict, but that's okay. This fixes all of the driver-specific options in qcow2, except for lazy-refcounts, which was special cased before. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit dc3dd0d2bed6edf3b60041f31200c674348168e9 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Feb 27 11:48:42 2014 +0100 qmp: add query-iothreads command The "query-iothreads" command returns a list of information about iothreads. See the patch for API documentation. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 88eb7c29e4320597d2f246adf731f0aac97cfbcc Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Feb 27 11:48:41 2014 +0100 iothread: stash thread ID away Keep the thread ID around so we can report it via QMP. There's only one problem: qemu_get_thread_id() (gettid() wrapper on Linux) must be called from the thread itself. There is no way to get the thread ID outside the thread. This patch uses a condvar to wait for iothread_run() to populate the thread_id inside the thread. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 48ff269272f18d2b8fa53cb08365df417588f585 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Mar 3 11:30:08 2014 +0100 dataplane: replace internal thread with IOThread Today virtio-blk dataplane uses a 1:1 device-per-thread model. Now that IOThreads have been introduced we can generalize this to N:M devices per threads. This patch drops thread code from dataplane in favor of running inside an IOThread AioContext. As a bonus we solve the case where a guest keeps submitting I/O requests while dataplane is trying to stop. Previously the dataplane thread would continue to process requests until the request gave it a break. Now we can shut down in bounded time thanks to aio_context_acquire/release. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6e4a876b433f78f72724f45ae3f9e26596da1b4d Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Mar 3 11:30:07 2014 +0100 iothread: add "iothread" qdev property type Add a "iothread" qdev property type so devices can be hooked up to an IOThread from the comand-line: qemu -object iothread,id=iothread0 \ -device some-device,x-iothread=iothread0 Note that Paolo Bonzini <pbonzini@xxxxxxxxxx> has suggested using QOM links instead. This way the relationship between the objects is reflected in QOM. There are currently shortcomings of object_property_add_link() which prevent this use case. I will attempt to fix them and move to QOM links in a separate series. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7d1de46448d0d52183c397d76fbc86cb614ed21b Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Mon Mar 3 11:30:06 2014 +0100 qdev: make get_pointer() handle temporary strings get_pointer()'s print() callback might return a heap allocated string, to avoid adding dedicated get_pointer_foo for this case convert current print() callbacks to return temporary heap allocated string and make get_pointer() free it. Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit be8d8537668c9be7a8dee6aed94b2b3f9fcd4a9f Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Mar 3 11:30:05 2014 +0100 iothread: add I/O thread object This is a stand-in for Michael Roth's QContext. I expect this to be replaced once QContext is completed. The IOThread object is an AioContext event loop thread. This patch adds the concept of multiple event loop threads, allowing users to define them. When SMP guests run on SMP hosts it makes sense to instantiate multiple IOThreads. This spreads event loop processing across multiple cores. Note that additional patches are required to actually bind a device to an IOThread. [Andreas Färber <afaerber@xxxxxxx> pointed out that the embedded parent object instance should be called "parent_obj" and have a newline afterwards. This patch has been changed to reflect this. -- Stefan] Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 98563fc3ec44c1becce6f1720ad6b0a82ed101b4 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Mar 3 11:30:04 2014 +0100 aio: add aio_context_acquire() and aio_context_release() It can be useful to run an AioContext from a thread which normally does not "own" the AioContext. For example, request draining can be implemented by acquiring the AioContext and looping aio_poll() until all requests have been completed. The following pattern should work: /* Event loop thread */ while (running) { aio_context_acquire(ctx); aio_poll(ctx, true); aio_context_release(ctx); } /* Another thread */ aio_context_acquire(ctx); bdrv_read(bs, 0x1000, buf, 1); aio_context_release(ctx); This patch implements aio_context_acquire() and aio_context_release(). Note that existing aio_poll() callers do not need to worry about acquiring and releasing - it is only needed when multiple threads will call aio_poll() on the same AioContext. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2da61b671eb89fcaa306738f44eed472977d6587 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Mar 3 11:30:03 2014 +0100 rfifolock: add recursive FIFO lock QemuMutex does not guarantee fairness and cannot be acquired recursively: Fairness means each locker gets a turn and the scheduler cannot cause starvation. Recursive locking is useful for composition, it allows a sequence of locking operations to be invoked atomically by acquiring the lock around them. This patch adds RFifoLock, a recursive lock that guarantees FIFO order. Its first user is added in the next patch. RFifoLock has one additional feature: it can be initialized with an optional contention callback. The callback is invoked whenever a thread must wait for the lock. For example, it can be used to poke the current owner so that they release the lock soon. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 11f590b1a242492a0108da42f40f0e2b20f0a778 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Mar 3 11:30:02 2014 +0100 object: add object_get_canonical_path_component() It is often useful to find an object's child property name. Also use this new function to simplify the implementation of object_get_canonical_path(). Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b5042a36229b4fa5eeb66bbcde78f704975aec00 Author: Benoît Canet <benoit.canet@xxxxxxxxxxx> Date: Mon Mar 3 19:11:34 2014 +0100 block: Rewrite the snapshot authorization mechanism for block filters. This patch keep the recursive way of doing things but simplify it by giving two responsabilities to all block filters implementors. They will need to do two things: -Set the is_filter field of their block driver to true. -Implement the bdrv_recurse_is_first_non_filter method of their block driver like it is done on the Quorum block driver. (block/quorum.c) [Paolo Bonzini <pbonzini@xxxxxxxxxx> pointed out that this patch changes the semantics of blkverify, which now recurses down both bs->file and s->test_file. -- Stefan] Reported-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 98d39e34fe95f8609be3ccbd1b67926631d2c7c0 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Mar 10 23:44:09 2014 +0100 iotests: Test corruption during COW request Extend test file 060 by a test case for corruption occuring concurrently to a COW request. QEMU should not crash but rather return an appropriate error message. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 938789ea92b3073ad1113b3e1bdf90d469ea4bf4 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Mar 10 23:44:08 2014 +0100 block: bs->drv may be NULL in bdrv_debug_resume() Currently, bdrv_debug_resume() requires every bs->drv in the BDS stack to be NULL until a bs->drv with an implementation of bdrv_debug_resume() is found. For a normal function, this would be fine, but this is a function for debugging purposes and should therefore allow intermediate BDS not to have a driver (i.e., be "ejected"). Otherwise, it is hard to debug such situations. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit dba2855572c746836ad90ce9154403b5929d996b Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Mar 10 23:44:07 2014 +0100 qcow2: Check bs->drv in copy_sectors() Before dereferencing bs->drv for a call to its member bdrv_co_readv(), copy_sectors() should check whether that pointer is indeed valid, since it may have been set to NULL by e.g. a concurrent write triggering the corruption prevention mechanism. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3456a8d1852e970688b73d03fdc44dde851759e1 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Mar 11 10:58:39 2014 +0100 block: Update image size in bdrv_invalidate_cache() After migration has completed, we call bdrv_invalidate_cache() so that drivers which cache some data drop their stale copy of the data and reread it from the image file to get a new version of data that the source modified while the migration was running. Reloading metadata from the image file is useless, though, if the size of the image file stays stale (this is a value that is cached for all image formats in block.c). Reads from (meta)data after the old EOF return only zeroes, causing image corruption. We need to update bs->total_sectors in all layers that could potentially have changed their size (i.e. backing files are not a concern - if they are changed, we're in bigger trouble) Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 26d49c46750aff62c8c6e7a8b14c79d4114a8e53 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Mar 7 23:10:12 2014 +0100 qcow2-refcount: Sanitize refcount table entry When reading the refcount table entry in get_refcount(), only bits which are actually significant for the refcount block offset should be taken into account. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit be86c53c058d75fc3938b1b54f363259f282b3d5 Merge: c8d146a 295d51a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 13 13:19:46 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/ppc-for-2.0' into staging PowerPC queue for 2.0-rc0 * QEMUMachine include cleanup * SLOF update * XICS reset fix * sPAPR PCI host bridge refactorings # gpg: Signature made Thu 13 Mar 2014 02:50:51 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/ppc-for-2.0: spapr-pci: Convert fprintf() to error_report() spapr-pci: Convert to QOM realize xics-kvm: Fix reset function pseries: Update SLOF firmware image to qemu-slof-20140304 Move QEMUMachine typedef to qemu/typedefs.h Revert "KVM: Split QEMUMachine typedef into separate header" Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c8d146aecceb560664b112279ffddf6fe1db99db Merge: 0100f42 f876202 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 13 12:32:47 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/qom-devices-for-peter' into staging QOM/QTest infrastructure fixes and device conversions * QTest cleanups and test cases for some virtio devices * QTest for sPAPR PCI host bridge * qom-test now tests reading all properties beneath /machine * QOM API leak fixes * QOM cleanups for SSI devices * QOM conversion of QEMUMachine * QOM realize for buses * sPAPR PCI bus name change # gpg: Signature made Thu 13 Mar 2014 00:22:40 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/qom-devices-for-peter: (31 commits) libqtest: Fix possible deadlock in qtest initialization pci: Move VMState registration/unregistration to QOM realize/unrealize qdev: Realize buses on device realization qdev: Prepare realize/unrealize hooks for BusState tests: Add spapr-pci-host-bridge qtest virtio-serial-port: Convert to QOM realize/unrealize virtio-console: QOM cast cleanup for VirtConsole tests: Add virtio-console qtest tests: Add virtio-serial qtest tests: Add virtio-scsi qtest tests: Add virtio-rng qtest tests: Add virtio-balloon qtest tests: Add virtio-blk qtest tests: Clean up IndustryPack TPCI200 gcov paths qom-test: Test QOM properties hw/boards: Convert current_machine to MachineState vl: Use MachineClass instead of global QEMUMachine list hw/core: Introduce QEMU machine as QOM object qdev-monitor-test: Don't test human-readable error message qdev-monitor-test: Simplify using g_assert_cmpstr() ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0100f42550201f346cc0c20c1864f941509eb592 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Mar 13 11:24:15 2014 +0000 libqtest: Avoid inline varargs functions Older versions of gcc (eg 4.6) can't handle varargs functions declared inline for anything other than completely trivial uses, and complain: tests/qom-test.c: In function 'qmp': tests/libqtest.h:359:60: sorry, unimplemented: function 'qmp' can never be inlined because it uses variable argument lists Avoid this problem by putting the functions into libqtest.c instead of using inline definitions in libqtest.h. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> commit ac1b84dd1e020648db82a99260891aa982d1142c Author: Gal Hammer <ghammer@xxxxxxxxxx> Date: Tue Feb 25 12:12:35 2014 +0200 char: restore read callback on a reattached (hotplug) chardev Fix a bug that was introduced in commit 386a5a1e. A removal of a device set the chr handlers to NULL. However when the device is plugged back, its read callback is not restored so data can't be transferred from the host to the guest (e.g. via the virtio-serial port). https://bugzilla.redhat.com/show_bug.cgi?id=1027181 Signed-off-by: Gal Hammer <ghammer@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 295d51aa6a0d3b9a97200913f58a4d8b0c53ac42 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Nov 21 15:08:58 2013 +1100 spapr-pci: Convert fprintf() to error_report() Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Mike Day <ncmike@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c6ba42f6bce0e361e27803622987ffbd05ce7b7a Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Nov 21 15:08:55 2013 +1100 spapr-pci: Convert to QOM realize This converts the old-style SysBusDevice::init() callback to a new-style DeviceClass::realize() callback. As a part of conversion, this replaces fprintf(stderr) with error_setg() as realize() does not "return" any value, instead it puts the extended error into **errp. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Mike Day <ncmike@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit fb0e843a11abae5b959a4b02be7aef617c023b4e Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Feb 13 12:08:35 2014 +1100 xics-kvm: Fix reset function Currently interrupt priorities are set to 0 (highest) at the very beginning of the guest execution which is not correct and makes the guest produce random interrupt error messages such as: "Interrupt 0x1001 (real) is invalid, disabling it". This also prevents interrupt states from correct migration. This initializes priority to 0xFF as the emulated XICS does. Suggested-by: Paul Mackerras <paulus@xxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 8f3babb74d48e17e8a717b79d57c1fbe6b3b2480 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Mar 10 23:07:58 2014 +1100 pseries: Update SLOF firmware image to qemu-slof-20140304 The changelog is: > version: update to 20140304 > Introduce dummy console device > vio-vscsi: Fix CRQ allocation alignment > version: update to 20140204 > virtio-9p: disable unused structure > Make "boot net:dhcp" boot from IPv4 only > Fix virtio device shutdown > Change shutdown method name for virtio-scsi > Add support for 64bit LE ABI v1 and v2 support > Change representation of string environment variable > cas: return error when unknown node found > version: update > Reset obp-tftp arguments before parsing > Enable seamless netboot on IPv6 network > Fix shutdown for virtio devices > Fix zero checksum in UDP header > Handle router advertisement message properly > [oex]hci_exit: Check before freeing/unmapping memory > Work around missing sc 1 traps on pHyp > fix print_version() to return where it came from > usb-xhci: memory freeing and using returns as bool uniformly > Output banner and initial display output in VNC window > use VERSION file to generate FW version > cas: remove warning > Add support for loading little endian ELF binaries. > Add bswap_{16,32,64}p > dhcpv6 and other minor net-snk fixes > Fix missing drop in virtio-fs setup-alias > Find next available alias name > SLOF does not exit if given 1KB disk > boot: enable support for bootindex > pci-properties: add properties to enable hotplug for spapr > e1000: remember node handle > Increase quiesce tokens array size > virtio: timeout after 5sec > Enable IPv6 support in dns > usb-ohci: fix warnings > Add ipv6 support in net-snk > ipv4: fix frame overwriting following arp_send_request > e1000: fix SLOF_dma_map_out arguments > Maintain single global packet buffer for tftp > Increase virtio-net receive queue size > Increase veth receive queue size > Fix dprintf macros at various points > usb-ohci: rewrite done_head processing code > boot: add net in default boot order > block 0 address in the allocator > scsi: make-media-alias fix > usb-xhci: add xhci host controller support > usb-xhci: add xhci support > Avoid veth read/write calls with zero length buffer > boot: include other aliases > usb-core: disable xhci Cc: Andreas Färber <afaerber@xxxxxxx> Cc: Nikunj A Dadhania <nikunj@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> commit 7a1a4dac94e5dea21ecc404f362ef2c62f9f089c Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Mar 13 03:40:13 2014 +0100 Move QEMUMachine typedef to qemu/typedefs.h As reported in commit 9c06a1f79f959fffd09bfb7efc3d76051a6cd2da, xen.h is not self-contained with regards to its use of QEMUMachine. Fix this. Reported-by: Alexander Graf <agraf@xxxxxxx> Suggested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 602a3921ffd62a08c29750d123e0d5d96acc84ee Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Mar 13 03:29:51 2014 +0100 Revert "KVM: Split QEMUMachine typedef into separate header" This reverts commit 9c06a1f79f959fffd09bfb7efc3d76051a6cd2da. The new header sysemu/qemumachine.h is undesired. Suggested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f8762027a33e2f5d0915c56a904962b1481f75c1 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Tue Mar 11 15:00:34 2014 +0200 libqtest: Fix possible deadlock in qtest initialization 'socket_accept' waits for QEMU to init its unix socket. If QEMU encounters an error during command line parsing, it can exit before initializing the communication channel. Using a timeout for sockets fixes the issue. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d2f69df746f06d785ffbf6cc9711f7df9d014e35 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Mon Nov 25 17:48:42 2013 -0500 pci: Move VMState registration/unregistration to QOM realize/unrealize Use the realize and unrealize hooks to register and unregister vmstate_pcibus respectively. Relocate some stuff to avoid forward declarations. Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> [AF: Keep using PCI_BUS() cast macro] Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5c21ce77d7e5643089ceec556c0408445d017f32 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Wed Mar 12 21:02:12 2014 +0100 qdev: Realize buses on device realization Integrate (un)realization of child buses with realization/unrealization of the device hosting them. Code in device_unparent() is reordered for unrealization of buses to work as part of device unrealization. That way no changes need to be made to bus instantiation. Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 02e7f85dac3c639b70460ce557cb6c29963db97a Author: Bandan Das <bsd@xxxxxxxxxx> Date: Mon Nov 25 17:48:40 2013 -0500 qdev: Prepare realize/unrealize hooks for BusState Add a "realized" property calling realize/unrealize hooks as for devices. Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 04e9a20b495f37f3132f4ada80fd925b4794b253 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Feb 10 14:52:56 2014 +1100 tests: Add spapr-pci-host-bridge qtest This adds a test whether sPAPR PHB can be added via the command line. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 2ef66625f3a8978dcbbad773e6813f747971381e Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Jun 7 19:02:12 2013 +0200 virtio-serial-port: Convert to QOM realize/unrealize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 0399a3819b27083ba69b88a9baa9025facab85bd Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Jun 7 19:10:02 2013 +0200 virtio-console: QOM cast cleanup for VirtConsole Introduce type constant, cast macro and rename parent field. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 6e8114a0650e78b6476e312de59361ef11c62b59 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Feb 21 17:49:12 2014 +0100 tests: Add virtio-console qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit aa97405e3289059ab614e906ce4f1141971dfd9c Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Feb 21 17:36:57 2014 +0100 tests: Add virtio-serial qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 26c9a015ef8ad158a62690f72ee04d10545db80d Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Feb 21 16:42:15 2014 +0100 tests: Add virtio-scsi qtest Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit b6f46f02f4756d0cd6c45515c1728a899fbb1dd3 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Feb 9 04:43:10 2014 +0100 tests: Add virtio-rng qtest Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 02063aaa653c35291f06d58400a3349305000dd6 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Feb 9 04:39:47 2014 +0100 tests: Add virtio-balloon qtest Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c7a59bed62184d2d5ef5c6ed87c7ee6c23c57802 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Feb 9 04:32:55 2014 +0100 tests: Add virtio-blk qtest Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 83bb0b2ffd589346c8b8f4fee9296d0a8a309cf4 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Feb 21 16:29:17 2014 +0100 tests: Clean up IndustryPack TPCI200 gcov paths Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit dc06cbd28611c366096fd1c9b8bba7b459a96877 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Feb 7 15:36:16 2014 +0100 qom-test: Test QOM properties Recursively walk all properties under /machine and try to retrieve their value. This is a regression test for link<> properties and the DeviceState::hotpluggable property. Cf. be2f78b6b062eec5170e2612299fb8953046993f and 1a37eca107cece3ed454bae29eef0bd1fac4a244 Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 0056ae24bc36798fdd96d0b31e217e9f73896736 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Wed Mar 5 19:30:47 2014 +0200 hw/boards: Convert current_machine to MachineState In order to allow attaching machine options to a machine instance, current_machine is converted into MachineState. As a first step of deprecating QEMUMachine, some of the functions were modified to return MachineClass. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 261747f176f6f2d88f8268aaebfdd1a1afe887e2 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Wed Mar 5 19:30:46 2014 +0200 vl: Use MachineClass instead of global QEMUMachine list The machine registration flow is refactored to use the QOM functionality. Instead of linking the machines into a list, each machine has a type and the types can be traversed in the QOM way. Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 36d20cb2b39311869b061e1669cb55ccbf0af759 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Wed Mar 5 19:30:45 2014 +0200 hw/core: Introduce QEMU machine as QOM object The main functional change is to convert QEMUMachine into MachineClass and QEMUMachineInitArgs into MachineState, instance of MachineClass. As a first step, in order to make possible an incremental development, both QEMUMachine and QEMUMachineInitArgs are being embedded into the new types. Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 49649f23db977137c031a21eee2f0521404f6710 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Mar 6 10:12:53 2014 +0100 qdev-monitor-test: Don't test human-readable error message Test the error class instead. Expecting a specific message is fragile. In fact, it broke once already, in commit 75884af. Restore the test of error member "class" dropped there, and drop the test of error member "desc". There are no other tests of "desc" as far as I can tell. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a3d7cbc1397bf01249b5c39dd1e285bd6aa818dc Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Mar 6 10:12:52 2014 +0100 qdev-monitor-test: Simplify using g_assert_cmpstr() Use g_assert_cmpstr() instead of combining g_assert() and strcmp(3). This simplifies the code since we no longer have to play games to distinguish NULL from "" using "(null)". gcc extension haters will also be happy that ?: was dropped. Suggested-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 1b8601b0ea0b91467561e0bbddd52a833e4b2b1a Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Mar 6 14:11:00 2014 +1100 spapr-pci: Change the default PCI bus naming Previously libvirt required the first/default PCI bus to have name "pci". Since QEMU can support multiple buses now, libvirt wants "pci.0" now. This removes custom bus name and lets QEMU make up default names. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit cdccf7d7e7f16046cdb192423323a42ad7f43bec Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Feb 11 16:30:45 2014 -0800 block/m25p80: Remove FROM_SSI_SLAVE() usages Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> [AF: Rename parent field] Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 1f760d5f2bbe89685f2fe4b12a898c26196d3a1e Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Feb 11 16:30:10 2014 -0800 ssi: Remove SSI_SLAVE_FROM_QDEV() macro There are no usages left of this legacy cast. Delete. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> [AF: Rename SSISlave parent field] Signed-off-by: Andreas Färber <afaerber@xxxxxxx> ssi: Rename parent field commit 7c77b654c5371e970bc3190afe8dc85bc4f2c8ff Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Feb 11 16:29:35 2014 -0800 misc/max111x: QOM casting sweep Define and use QOM cast macro. Removes some usages of legacy casting systems. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> [AF: Rename parent field] Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5ef4a1c304ef60224c29aa9f6d9c2ac0591d020a Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Feb 11 16:29:00 2014 -0800 misc/max111x: Create abstract max111x type Create an abstract class that encompasses both max111x variants. This is needed for QOM cast macro creation (and is the right thing to do anyway). Macroify type-names in the process. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d43269dddc2e084a61bb6cfcc18081b0b6bb0e62 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Feb 11 16:28:25 2014 -0800 ssi: Convert legacy SSI_BUS -> BUS casts Remove two legacy ->qbus style casts from TYPE_SSI_BUS to TYPE_BUS in ssi.c. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> [AF: Convert one missing ->qbus and rename parent field] Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 1a7d9ee6dd4aa44fc7d937bded8d542e0265e57f Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Feb 11 16:27:50 2014 -0800 ssi: Convert legacy SSI_SLAVE -> DEVICE casts Convert legacy ->qdev style casts from TYPE_SSI_SLAVE to TYPE_DEVICE. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> [AF: Introduce local DeviceState variable for transition to QOM realize] Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a01aedc8d32e6f5b08a4041b62be3c5fab7a3382 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Mar 4 15:28:18 2014 +0100 qom: Avoid leaking str and bool properties on failure When object_property_add_str() and object_property_add_bool() fail, they leak their internal StringProperty and BoolProperty structs. Remember to free the structs on error. Luckily this is a low-impact memory leak since most QOM properties are static qdev properties that will never take the error case. object_property_add() only fails if the property name is already in use. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 7b0309490cb108d881a0c66d6b350b4db7b3b4ac Author: Amos Kong <akong@xxxxxxxxxx> Date: Mon Mar 3 15:57:55 2014 +0800 qdev-monitor: Set properties after parent is assigned in device_add Test steps: (qemu) device_add e1000,addr=adsf Property 'e1000.addr' doesn't take value 'adsf' (qemu) info qtree Then qemu crashed. Currently we set a link to the new device from its parent bus, but the device hasn't been added to QOM tree yet. When it fails to set properties, object_unparent() can't clean up the device. Delay setting of device properties until the device has been added to the QOM composition tree. This way, when setting a property fails, object_unparent() can clean up the device properly. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 267a3264cdaf0ca945ffc7a60c019ad9f89be8d8 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Tue Feb 18 17:56:53 2014 +0100 qdev: Set DeviceClass::hotpluggable default in class_init() Move setting DeviceClass::hotpluggable default from device's class_base_init() to device's class_init(). Reported-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 2b81b35f8f18d6874d1a0605ac5e40028966051b Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Mar 7 19:04:13 2014 +0100 qdev: Fix bus dependency of DeviceState::hotpluggable getter Commit 1a37eca107cece3ed454bae29eef0bd1fac4a244 (qdev: add "hotpluggable" property to Device) added a property "hotpluggable" to each device, with its getter accessing parent_bus->allow_hotplug. Add a NULL check. Cc: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 750036a848ea913ba6343718ffa70da98f7eef6b Merge: 2f23e9a 21143b6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 12 17:53:37 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/prep-for-upstream' into staging PReP machine and devices * ppc_rom.bin update and submodule # gpg: Signature made Wed 12 Mar 2014 17:32:40 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/prep-for-upstream: prep: Update ppc_rom.bin Add OpenHack'Ware submodule Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2f23e9ae2cc37788ae1211803a7f8545ae14df91 Merge: a822837 68e5ec6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 12 16:45:25 2014 +0000 Merge remote-tracking branch 'remotes/stefanha/tags/net-pull-request' into staging Net patches # gpg: Signature made Wed 12 Mar 2014 13:48:20 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/net-pull-request: tap: avoid deadlocking rx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 21143b615aaf6f1661a1a6e69f00a39e456cc168 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Mar 2 22:27:14 2014 +0100 prep: Update ppc_rom.bin Functionally, this is a revert of Jocelyn's r3309 / 55aa45ddde3283cdd781326d001f7456bf02f684 (Quickly hack PowerPC BIOS able to boot on CDROM again.), for which we do not have the sources. Therefore the sources used are v0.4.1 plus pc-bios/ohw.diff plus a workaround turning IDE errors into warnings. Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit fd3ece2533730eb4ab2dd787a1c1418b38b40d6a Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Wed Mar 12 17:16:56 2014 +0100 Add OpenHack'Ware submodule This replaces the ohw.diff file on top of v0.4.1. Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit a822837d123183293f1cfc3167cc4e5255765915 Merge: 01ac27c 84f3fe1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 12 15:46:43 2014 +0000 Merge remote-tracking branch 'remotes/stefanha/tags/tracing-pull-request' into staging Tracing pull request # gpg: Signature made Wed 12 Mar 2014 13:20:10 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/tracing-pull-request: trace: Fix build warnings for Win32 build Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit eee822e3595bbdd69e71198edd65dd29db27a6e5 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Mar 12 16:13:58 2014 +0200 acpi-build: fix misaligned access clang build reported a misaligned access: runtime error: store to misaligned address 0x2b5aa47dfb19 for type 'uint16_t' (aka 'unsigned short'), which requires 2 byte alignment 0x2b5aa47dfb19: note: pointer points here 45 53 54 0b ff ff 5b 80 50 45 4f 52 01 50 45 53 54 01 5b 81 0b 50 45 4f 52 01 50 45 50 54 08 14 fix this up Reported-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 01ac27ce7f144e1768d8c0948a2789eb0f109928 Merge: 2c3445b dc9528f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 12 15:03:42 2014 +0000 Merge remote-tracking branch 'remotes/kraxel/tags/pull-misc-1' into staging Docs: Introduce multiport serial support in qemupciserial.inf. # gpg: Signature made Wed 12 Mar 2014 09:35:55 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-misc-1: Docs: Introduce multiport serial support in qemupciserial.inf. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 84f3fe1b077a06ca50f85fa3ff696a8fe094623b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 19:44:25 2014 +0000 trace: Fix build warnings for Win32 build The Win32 build warns about trace/control-internal.h: warning: 'trace_event_count' declared inline after being called Fix this by simply reordering trace_event_id() and trace_event_count(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2c3445bb850fbfb4481e9487d8852f10e8c74e4c Merge: 7602e3e 5c1e189 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 12 12:47:26 2014 +0000 Merge remote-tracking branch 'remotes/kiszka/queues/slirp' into staging * remotes/kiszka/queues/slirp: slirp smb with modern win guests when samba is also running on host qemu/slirp: Fix SMB security configuration on newer samba versions Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7602e3e4a36715f8de9932dfd489cc4a2c6a7807 Merge: 613c12e 16c358e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 12 11:44:59 2014 +0000 Merge remote-tracking branch 'remotes/mcayland/qemu-sparc' into staging * remotes/mcayland/qemu-sparc: target-sparc: Add and use CPU_FEATURE_CASA Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 613c12ec28573b10cae0cd91139ba69b964f347c Merge: be813ef 2a7a1a5 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Mar 12 10:47:07 2014 +0000 Merge remote-tracking branch 'remotes/qmp-unstable/queue/qmp' into staging * remotes/qmp-unstable/queue/qmp: tests: test-qmp-commands: Fix double free qapi script: do not add "_" for every capitalized char in enum qapi script: do not allow string discriminator qapi: convert BlockdevOptions to use enum discriminator qapi script: support enum type as discriminator in union qapi script: use same function to generate enum string qapi script: code move for generate_enum_name() qapi script: check correctness of union qapi script: remember line number in schema parsing qapi script: add check for duplicated key qapi script: remember explicitly defined enum values Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d58b9122716bc444305515ead3a69b91d807bf3c Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Mar 11 17:26:44 2014 +0100 gtk: Add mouse wheel support Hook into scroll-event to properly forward mouse wheel movements to the guest, just like we already do in SDL. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 7f5e07d9b36467a7ce84ecf57623df561910c181 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Mar 11 14:08:31 2014 +0100 input: activate legacy kbd Restores traditional behavior: Keyboard input will be routed to the most recently added keyboard. Without this all kbd input goes to the ps/2 keyboard, even if you add a usb keyboard to your guest. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit dc9528fdf9f61dfa6355b4052dc42b8cbadf9167 Author: Miki Mishael <mmishael@xxxxxxxxxx> Date: Sun Jan 19 11:43:05 2014 -0500 Docs: Introduce multiport serial support in qemupciserial.inf. Support for pci-serial-2x and pci-serial-4x was added to the inf file. Standard Windows driver mf.sys used to split single function device into per-port nodes. Signed-off-by: Miki Mishael <mmishael@xxxxxxxxxx> Signed-off-by: Dmitry Fleytman <dfleytma@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 68e5ec64009812dbaa03ed9cfded9344986f5304 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Sat Mar 8 16:00:43 2014 +0100 tap: avoid deadlocking rx The net subsystem has a control flow mechanism so peer NetClientStates can tell each other to stop sending packets. This is used to stop monitoring the tap file descriptor for incoming packets if the guest rx ring has no spare buffers. There is a corner case when tap_can_send() is true at the beginning of an event loop iteration but becomes false before the tap_send() fd handler is invoked. tap_send() will read the packet from the tap file descriptor and attempt to send it. The net queue will hold on to the packet and return 0, indicating that further I/O is not possible. tap then stops monitoring the file descriptor for reads. This is unlike the normal case where tap_can_send() is the same before and during the event loop iteration. The event loop would simply not monitor the file descriptor if tap_can_send() returns true. Upon next iteration it would check tap_can_send() again and begin monitoring if we can send. The deadlock happens because tap_send() explicitly disabled read_poll. This is done with the expectation that the peer will call qemu_net_queue_flush(). But hw/net/virtio-net.c does not monitor vm_running transitions and issue the flush. Hence we're left with a broken tap device. Cc: qemu-stable@xxxxxxxxxx Reported-by: Neil Skrypuch <neil@xxxxxxxxxxxxxxx> Tested-by: Neil Skrypuch <neil@xxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5c1e1890bfa1f6b4bc3f51e368bfd47af1b60db0 Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Thu Nov 28 23:32:55 2013 +0400 slirp smb with modern win guests when samba is also running on host After numerous reports that -smb (or -netdev user,smb=foo) not working with modern windows (win7 and vista are reported as non-working), I started digging myself. And found that indeed it doesn't work, and why. The thing is that modern win tries to connect to port 445 (microsoft-ds) first, and if that fails, it falls back to old port 139 (netbios-ssn). slirp code in qemu only redirects port 139, it does not touch port 445. So the prob is that if samba is also running on the host, guest will try to communicate using port 445, and that will succed, but ofcourse guest will not talk with our samba but with samba running on the host. If samba is not running on the host, guest will fall back to port 139, and will reach the redirecting rule and qemu will spawn smbd correctly. The solution is to redirect both ports (139 and 445), and the fix is a one-liner, adding second call to slirp_add_exec() at the end of net/slirp.c:slirp_smb() function (provided below). But it looks like that is not a proper fix really, since in theory we should redirect both ports to the SAME, single samba instance, but I'm not sure this is possible with slirp. Well, even if two smbd processes will be run on the same config dir, it should not be a problem. The one-liner (not exactly 1 since it touches previous line too) is like this: Signed-off-By: Michael Tokarev <mjt@xxxxxxxxxx> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> commit c2804ee6c0eba19c029bb2950fa2998c16f3ea11 Author: Michael Buesch <m@xxxxxxx> Date: Fri Nov 1 12:23:49 2013 +0100 qemu/slirp: Fix SMB security configuration on newer samba versions The smb.conf automatically generated by qemu's -smb option fails on current samba, because smbd rejects the security=share option with the following warning: > WARNING: Ignoring invalid value 'share' for parameter 'security' Which makes it fall back to security=user without guest login. This results in being unable to login to the samba server from the guest OS. This fixes it by selecting 'user' explicitly and mapping unknown users to guest logins. Signed-off-by: Michael Buesch <m@xxxxxxx> Reviewed-by: Michael Tokarev <mjt@xxxxxxxxxx> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> commit 16c358e96e0597b7d60754547166ad05ecc6d93d Author: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Date: Tue Mar 11 10:36:00 2014 +0100 target-sparc: Add and use CPU_FEATURE_CASA The LEON3 processor has support for the CASA instruction which is normally only available for SPARC V9 processors. Binutils 2.24 and GCC 4.9 will support this instruction for LEON3. GCC uses it to generate C11 atomic operations. The CAS synthetic instruction uses an ASI of 0x80. If TARGET_SPARC64 is not defined use a supervisor data load/store for an ASI of 0x80 in helper_ld_asi()/helper_st_asi(). The supervisor data load/store was choosen according to the LEON3 documentation. The ASI 0x80 is defined in the SPARC V9 manual, Table 12â??Address Space Identifiers (ASIs). Here we have: 0x80, ASI_PRIMARY, Unrestricted access, Primary address space. Tested with the following program: #include <assert.h> #include <stdatomic.h> void test(void) { atomic_int a; int e; _Bool b; atomic_store(&a, 1); e = 1; b = atomic_compare_exchange_strong(&a, &e, 2); assert(b); assert(atomic_load(&a) == 2); atomic_store(&a, 3); e = 4; b = atomic_compare_exchange_strong(&a, &e, 5); assert(!b); assert(atomic_load(&a) == 3); } Tested also on a NGMP board with a LEON4 processor. Reviewed-by: Fabien Chouteau <chouteau@xxxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Tested-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> commit be813ef02d18ba58e1ff32f1706bcacb88f1f764 Merge: 2396187 13f65b2 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 11 19:52:32 2014 +0000 Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging acpi,pc,test bug fixes More small fixes: the issues annoy developers so I thought they are worth fixing quickly. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Tue 11 Mar 2014 11:27:44 GMT using RSA key ID D28D5469 # gpg: Good signature from "Michael S. Tsirkin <mst@xxxxxxxxxx>" # gpg: aka "Michael S. Tsirkin <mst@xxxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 0270 606B 6F3C DF3D 0B17 0970 C350 3912 AFBE 8E67 # Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA 8A0D 281F 0DB8 D28D 5469 * remotes/mst/tags/for_upstream: acpi-test: update expected SSDT files acpi-build: don't access unaligned addresses q35: Correct typo BRDIGE -> BRIDGE configure: don't modify .status on error pc: avoid duplicate names for ROM MRs loader: rename in_ram/has_mr Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 239618707637ec87eba8c452d2b2f75dc5ca20c7 Merge: 01207d0 b0f15a5 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 11 19:39:17 2014 +0000 Merge remote-tracking branch 'remotes/kvm/uq/master' into staging * remotes/kvm/uq/master: target-i386: bugfix of Intel MPX file_ram_alloc: unify mem-path,mem-prealloc error handling kvm-all: exit in case max vcpus exceeded Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 01207d0b78208c2f49c3f457d6794eea215d5be7 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Mar 11 16:49:23 2014 +0100 qemu-thread-posix: Fix build against older glibc version pthread_setname_np was introduced with 2.12. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Reviewed-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0ca540dbaea142ec5c3e7a1d12db7139b8317f37 Merge: ed9b103 72c1d3a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 11 13:20:23 2014 +0000 Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20140310' into staging target-arm queue: * implement WFE as yield (improves performance with emulated SMP) * fixes to avoid undefined behaviour shifting left into sign bit * libvixl format string fixes for 32 bit hosts * fix build error when intptr_t and tcg_target_long are different sizes (eg x32) * implement PMCCNTR register * fix incorrect setting of E bit in CPSR (broke booting under KVM on ARM) # gpg: Signature made Mon 10 Mar 2014 15:05:25 GMT using RSA key ID 14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@xxxxxxxxxx>" * remotes/pmaydell/tags/pull-target-arm-20140310: target-arm: Implement WFE as a yield operation hw/arm/musicpal: Avoid shifting left into sign bit hw/ssi/xilinx_spips.c: Avoid shifting left into sign bit hw/arm/omap1.c: Avoid shifting left into sign bit pxa2xx: Don't shift into sign bit libvixl: Fix format strings for several int64_t values target-arm: Fix intptr_t vs tcg_target_long target-arm: Implements the ARM PMCCNTR register target-arm: Fix incorrect setting of E bit in CPSR Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2a7a1a56d1e30de07cf7d7636a35bf7706b9500e Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Sat Mar 8 12:20:06 2014 -0500 tests: test-qmp-commands: Fix double free The ret variable is freed twice, but on the second time we actually want to free ret3 instead. Don't know why this didn't explode. Reported-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Tested-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 5d371f41b4db8e47c89626ecf9d9914119583e23 Author: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Date: Tue Mar 4 18:44:40 2014 -0800 qapi script: do not add "_" for every capitalized char in enum Now "enum AIOContext" will generate AIO_CONTEXT instead of A_I_O_CONTEXT, "X86CPU" will generate X86_CPU instead of X86_C_P_U. Signed-off-by: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 5223070c47c6fc35ee000b2392ae76d9fab54f16 Author: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Date: Tue Mar 4 18:44:39 2014 -0800 qapi script: do not allow string discriminator Since enum based discriminators provide better type-safety and ensure that future qapi additions do not forget to adjust dependent unions, forbid using string as discriminator from now on. Signed-off-by: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 59ca664ef86c8a9078157336b566e832fc5466e2 Author: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Date: Tue Mar 4 18:44:38 2014 -0800 qapi: convert BlockdevOptions to use enum discriminator After this patch, hidden enum type BlockdevOptionsKind will not be generated, and other API can use enum BlockdevDriver. Signed-off-by: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit bceae7697ff1711675c26f715b945737bc6849ae Author: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Date: Thu Mar 6 17:08:56 2014 -0800 qapi script: support enum type as discriminator in union By default, any union will automatically generate a enum type as "[UnionName]Kind" in C code, and it is duplicated when the discriminator is specified as a pre-defined enum type in schema. After this patch, the pre-defined enum type will be really used as the switch case condition in generated C code, if discriminator is an enum field. Signed-off-by: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit b0b58195e4a3039b6a473124dc27ed707db50240 Author: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Date: Tue Mar 4 18:44:36 2014 -0800 qapi script: use same function to generate enum string Prior to this patch, qapi-visit.py used custom code to generate enum names used for handling a qapi union. Fix it to instead reuse common code, with identical generated results, and allowing future updates to generation to only need to touch one place. Signed-off-by: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 6299659f54420955419c4995283f7dd770367939 Author: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Date: Tue Mar 4 18:44:35 2014 -0800 qapi script: code move for generate_enum_name() Later both qapi-types.py and qapi-visit.py need a common function for enum name generation. Signed-off-by: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit b86b05ed60d8d49c5770851860d4e6b89c133e7e Author: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Date: Tue Mar 4 18:44:34 2014 -0800 qapi script: check correctness of union Since line info is remembered as QAPISchema.line now, this patch uses it as additional info for every expr in QAPISchema inside qapi.py, then improves error message with it in checking of exprs. For common union the patch will check whether base is a valid complex type if specified. For flat union it will check whether base presents, whether discriminator is found in base, whether the key of every branch is correct when discriminator is an enum type. Signed-off-by: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 515b943a91db6c9faf9e35377c18db9ca32ecb40 Author: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Date: Tue Mar 4 18:44:33 2014 -0800 qapi script: remember line number in schema parsing Before this patch, 'QAPISchemaError' scans whole input until 'pos' to get error line number. After this patch, the scan is avoided since line number is remembered in schema parsing. This patch also benefits other error report functions, which would be introduced later. Signed-off-by: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 4b35991a3bd5f9e03333d5b1bd4a7bcf9941aac5 Author: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Date: Tue Mar 4 18:44:32 2014 -0800 qapi script: add check for duplicated key It is bad that same key was specified twice, especially when a union has two branches with same condition. This patch can prevent it. Signed-off-by: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit dad1fcab91bf101a02151069036d416367b59c5c Author: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Date: Tue Mar 4 18:44:31 2014 -0800 qapi script: remember explicitly defined enum values Later other scripts will need to check the enum values. Signed-off-by: Wenchao Xia <wenchaoqemu@xxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit ed9b103d3e3102f17791ca53d4a8b17a3de929de Merge: c57ec32 c9dd407 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 11 13:03:21 2014 +0000 Merge remote-tracking branch 'remotes/spice/tags/pull-spice-4' into staging minor spice patches. # gpg: Signature made Mon 10 Mar 2014 13:13:14 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/spice/tags/pull-spice-4: configure: Prettify message for hosts without spice support spice: QemuUIInfo windup spice: fix simple display surface handling Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c57ec3249e9839c7ea2e3789f6e40f9ec1c92f55 Merge: fe6c53b dbb2a13 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 11 12:52:08 2014 +0000 Merge remote-tracking branch 'remotes/kraxel/tags/pull-input-5' into staging input: fixes for the rewrite. # gpg: Signature made Mon 10 Mar 2014 12:50:25 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-input-5: input: map INPUT_BUTTON_WHEEL_{UP,DOWN} to legacy input z axis moves. input: sdl: fix guest_cursor logic. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 13f65b2e1073cf7e2c8fb3880c77d8a53fa2f95e Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Mar 10 21:13:59 2014 +0200 acpi-test: update expected SSDT files SSDT doesn't have _SUN for non hotpluggable slots anymore. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit b4e5a4bffda0d5dd79c87c66f28a5fac87182e30 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Mar 10 21:30:16 2014 +0200 acpi-build: don't access unaligned addresses casting an unaligned address to e.g. uint32_t can trigger undefined behaviour in C. Replace cast + assignment with memcpy. Reported-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 263cf4367fd86dc0e15beebe65919cd50501844d Author: BALATON Zoltan <balaton@xxxxxxxxxx> Date: Fri Feb 28 11:28:03 2014 +0100 q35: Correct typo BRDIGE -> BRIDGE Signed-off-by: BALATON Zoltan <balaton@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit dc655404659def26fbcd66583ca61575af9da8b9 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Mar 9 17:37:49 2014 +0200 configure: don't modify .status on error ./configure --help make will try to re-run configure with --help which isn't what was intended. The reason is that config.status was written even on configure error. Defer writing config.status until configure has completed successfully. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit ac41881b48858b279960a17c07f0b159af91e75a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Mar 6 14:57:09 2014 +0200 pc: avoid duplicate names for ROM MRs Since commit 04920fc0faa4760f9c4fc0e73b992b768099be70 loader: store FW CFG ROM files in RAM RAM MRs including ROM files in FW CFGs are created and named using the file basename. This becomes problematic if these names are supplied by user, since the basename might not be unique. There are two cases we care about: - option-rom flag. - option ROM for devices. This triggers e.g. when using rombar=0. At the moment we get an assert. E.g qemu -option-rom /usr/share/ipxe/8086100e.rom -option-rom /usr/share/ipxe.efi/8086100e.rom RAMBlock "/rom@genroms/8086100e.rom" already registered, abort! This is a regression from 1.6. For now let's keep it simple and just avoid creating the MRs in case of option ROMs. when using 1.7 machine types, enable option ROMs in RAM to match that version. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit fe6c53b4bbd2e83f82087bc5e37daa11ffc65879 Merge: 118760d e22492d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 11 10:53:17 2014 +0000 Merge remote-tracking branch 'remotes/kraxel/tags/pull-vnc-1' into staging vnc dirty tracking optinizations. various vnc bugfixes. # gpg: Signature made Mon 10 Mar 2014 12:39:54 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-vnc-1: ui/vnc: disable adaptive update calculations if not needed ui/vnc: optimize setting in vnc_dpy_update() ui/vnc: optimize clearing in find_and_clear_dirty_height() ui/vnc: optimize dirty bitmap tracking ui/vnc: derive cmp_bytes from VNC_DIRTY_PIXELS_PER_BIT ui/vnc: introduce VNC_DIRTY_PIXELS_PER_BIT macro vnc: fix use-after-free in vnc_update_client_sync vnc: Fix qemu crashed when vnc client disconnect suddenly vnc: Fix tight_detect_smooth_image() for lossless case Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit b0f15a5d5628994c71a6f428f360a5a537ad3b39 Author: Liu, Jinsong <jinsong.liu@xxxxxxxxx> Date: Mon Mar 3 05:24:14 2014 +0000 target-i386: bugfix of Intel MPX The correct size of cpuid 0x0d sub-leaf 4 is 0x40, not 0x10. This is confirmed by Anvin H Peter and Mallick Asit K. Signed-off-by: Liu Jinsong <jinsong.liu@xxxxxxxxx> Cc: H. Peter Anvin <hpa@xxxxxxxxx> Cc: Asit K Mallick <asit.k.mallick@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Liu, Jinsong <jinsong.liu@xxxxxxxxx> commit 118760dfc9f4db2df3700ddb2934543abef86bfa Merge: b304bf0 220c8ed Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 10 19:14:11 2014 +0000 Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging acpi,pc,pci,virtio,memory bug fixes This collects several small fixes from all over the place. Additionally, Marcel's changes make acpi unit tests more robust. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Sun 09 Mar 2014 19:14:57 GMT using RSA key ID D28D5469 # gpg: Good signature from "Michael S. Tsirkin <mst@xxxxxxxxxx>" # gpg: aka "Michael S. Tsirkin <mst@xxxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 0270 606B 6F3C DF3D 0B17 0970 C350 3912 AFBE 8E67 # Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA 8A0D 281F 0DB8 D28D 5469 * remotes/mst/tags/for_upstream: qemu: x86: ignore ioapic polarity pckbd: return 'keyboard enabled' on read input port command pam: partly fix write-only mode acpi-test: issue errors instead of warnings when possible acpi-test: retain both asl and aml files on failure MAINTAINERS: drop an out of date address Add a 'name' parameter to qemu_thread_create Add 'debug-threads' suboption to --name Rework --name to use QemuOpts PCIE: fix regression with coldplugged multifunction device memory_region_present: return false if address is not found in child MemoryRegion virtio-net: remove function calls from assert acpi-test-data: update expected files acpi-build: append description for non-hotplug Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit b304bf0021a2dfb24fa91f704a1d976b74f56f20 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Thu Mar 6 09:49:25 2014 +0100 s390/kvm: Add Maintainers for s390/kvm Lets add Conny and myself as maintainers for s390/kvm and related code. This does not include any tcg related code, which is maintained by Richard and Alex. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Acked-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> Message-id: 1394095765-29686-2-git-send-email-borntraeger@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3f1506704eca5f0f26dd7b5c56f4a8ca6d21f745 Merge: 0c126db cbc14e6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 10 16:22:39 2014 +0000 Merge remote-tracking branch 'remotes/riku/linux-user-for-upstream' into staging * remotes/riku/linux-user-for-upstream: linux-user: set minimum kernel version to 2.6.32 linux-user: correct handling of break exception for MIPS linux-user: translate signal number on return from sigtimedwait linux-user: Implement sendmmsg syscall linux-user: Fix getresuid, getresgid if !USE_UID16 linux-user: Don't use UID16 on AArch64 linux-user: AArch64: Implement SA_RESTORER for signal handlers linux-user/signal.c: Fix AArch64 big-endian FP register restore Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0c126db27ceaca994548214656a457c9b011dc17 Merge: e9d818b 5264917 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 10 15:36:12 2014 +0000 Merge remote-tracking branch 'remotes/mcayland/qemu-openbios' into staging * remotes/mcayland/qemu-openbios: Update OpenBIOS images Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 72c1d3af6e9c2745edfeaa71918a68bcee4b79db Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 10 14:56:30 2014 +0000 target-arm: Implement WFE as a yield operation Implement WFE to yield our timeslice to the next CPU. This avoids slowdowns in multicore configurations caused by one core busy-waiting on a spinlock which can't possibly be unlocked until the other core has an opportunity to run. This speeds up my test case A15 dual-core boot by a factor of three (though it is still four or five times slower than a single-core boot). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1393339545-22111-1-git-send-email-peter.maydell@xxxxxxxxxx Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Tested-by: Rob Herring <rob.herring@xxxxxxxxxx> commit 2b194951c592ad670ddf3bc5764216408ade46f8 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 10 14:56:30 2014 +0000 hw/arm/musicpal: Avoid shifting left into sign bit Add missing 'U' suffixes to avoid shifting left into sign bit of a signed integer. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1392988008-15938-5-git-send-email-peter.maydell@xxxxxxxxxx commit c8f8f9fb2b8bd832be7e87c548929e40113e8e3d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 10 14:56:30 2014 +0000 hw/ssi/xilinx_spips.c: Avoid shifting left into sign bit Add missing 'U' suffix to avoid shifting left into sign bit of a signed integer. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1392988008-15938-4-git-send-email-peter.maydell@xxxxxxxxxx commit d2f41a1169bb0357bd863296b1a664fe2af10acd Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 10 14:56:29 2014 +0000 hw/arm/omap1.c: Avoid shifting left into sign bit Add missing 'U' suffix to avoid shifting left into sign bit. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1392988008-15938-3-git-send-email-peter.maydell@xxxxxxxxxx commit 43a32ed68f3aac5ccde4fa6fa4a158e9e8153c94 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 10 14:56:29 2014 +0000 pxa2xx: Don't shift into sign bit Add missing 'U' suffixes to avoid potentially shifting into the sign bit of a signed integer. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1392988008-15938-2-git-send-email-peter.maydell@xxxxxxxxxx commit b29c8f115de5f48f0019afc2c779cf64e5fcefaf Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Mon Mar 10 14:56:29 2014 +0000 libvixl: Fix format strings for several int64_t values "%d" or "%x" won't work on hosts where int values are smaller than 64 bit. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Message-id: 1394219753-26106-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0624976f6166fe3d59477f4c08d5cdd7c1edc7d1 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Mar 10 14:56:29 2014 +0000 target-arm: Fix intptr_t vs tcg_target_long Fixes a build error when these are different, e.g. x32. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1394043257-4800-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7c2cb42b5033a851aa2a81de8d8a9e75bb65c2b6 Author: Alistair Francis <alistair.francis@xxxxxxxxxx> Date: Mon Mar 10 14:56:28 2014 +0000 target-arm: Implements the ARM PMCCNTR register This patch implements the ARM PMCCNTR register including the disable and reset components of the PMCR register. Signed-off-by: Alistair Francis <alistair.francis@xxxxxxxxxx> Message-id: bbf405e1feaf352cf39d5db402c9efcbd0f57c78.1393459802.git.alistair.francis@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit af5199347a874db2214bf818151bad71b856ff37 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 10 14:56:28 2014 +0000 target-arm: Fix incorrect setting of E bit in CPSR Commit 4cc35614a moved the exception mask bits out of env->uncached_cpsr and into env->daif. However the env->daif contents are AArch64 style mask bits, which include not just the AArch32 AIF bits but also the new D bit (masks debug exceptions). This means that when reconstructing the AArch32 CPSR value we must not allow the D bit in env->daif to get into the CPSR, because the corresponding bit in the CPSR is E, the endianness bit. This bug didn't affect execution under TCG because we don't implement endianness-swapping and so simply ignored the E bit; however it meant that kernel booting under KVM failed, because KVM does honour the E bit. Reported-by: Alexey Ignatov <lexszero@xxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c9dd4074df9b702090fa0e42c0101d75d44c7eb9 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Mar 6 18:13:33 2014 +0100 configure: Prettify message for hosts without spice support Instead of spice support no (/) configure now prints spice support no Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 9b74d0d598b022e558d06bf6d57f0f303d1a4bc8 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Jan 24 18:47:20 2014 +0100 spice: QemuUIInfo windup Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 4b87dc4c9729aaa77737d2f20c255231f4edb526 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Jan 24 10:48:58 2014 +0100 spice: fix simple display surface handling Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit dbb2a1326a7af6159861d3d7976c251a15ce0f92 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Mar 10 09:31:01 2014 +0100 input: map INPUT_BUTTON_WHEEL_{UP,DOWN} to legacy input z axis moves. Unbreaks mouse wheel. Reported-by: BALATON Zoltan <balaton@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit c3aa84b68f45d915160a523b4d7b9c6f4cf2219c Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Mar 10 09:22:16 2014 +0100 input: sdl: fix guest_cursor logic. Unbreaks relative mouse mode with SDL. Reported-by: Gabriel L. Somlo <gsomlo@xxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e9d818b8b1a7fadc6c92256b716f1bc21b8daabc Merge: 16513b1 f8e2484 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 10 12:34:41 2014 +0000 Merge remote-tracking branch 'remotes/rth/tcg-aarch-6-1' into staging * remotes/rth/tcg-aarch-6-1: tcg-aarch64: Remove nop from qemu_st slow path tcg-aarch64: Simplify tcg_out_ldst_9 encoding tcg-aarch64: Use intptr_t apropriately tcg-aarch64: Remove the shift_imm parameter from tcg_out_cmp tcg-aarch64: Hoist common argument loads in tcg_out_op tcg-aarch64: Don't handle mov/movi in tcg_out_op tcg-aarch64: Set ext based on TCG_OPF_64BIT tcg-aarch64: Change all ext variables to TCGType tcg-aarch64: Remove redundant CPU_TLB_ENTRY_BITS check tcg-aarch64: Enable builtin disassembler Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit cbc14e6f286169949105c10ec60c924e086521ad Author: Riku Voipio <riku.voipio@xxxxxxxxxx> Date: Wed Feb 19 14:50:41 2014 +0200 linux-user: set minimum kernel version to 2.6.32 Popular glibc based distributions[1] require minimum 2.6.32 as kernel version. For some targets 2.6.18 would be enough, but dropping so low would mean some suboptimal system calls could get used. Set the minimum kernel advertized to 2.6.32 for all architectures but aarch64 to ensure working qemu linux-user in case host kernel is older. [1] https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/921078 Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 16513b1b45a3fc6889c6173bc9a211a027a5ac0f Merge: f53f3d0 464400f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Mar 10 11:48:42 2014 +0000 Merge remote-tracking branch 'remotes/juanquintela/tags/migration/20140308-1' into staging migration/next for 20140308 # gpg: Signature made Sat 08 Mar 2014 21:26:01 GMT using RSA key ID 5872D723 # gpg: Can't check signature: public key not found * remotes/juanquintela/tags/migration/20140308-1: migration: extend section_start/end traces vl: add system_wakeup_request tracepoint qemu_file: Fix mismerge of "use fwrite() correctly" XBZRLE: Fix qemu crash when resize the xbzrle cache Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e22492d332c5c80ea8cb1755c29ca9b6240c7716 Author: Peter Lieven <pl@xxxxxxx> Date: Wed Jan 8 10:08:38 2014 +0100 ui/vnc: disable adaptive update calculations if not needed Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 919372251cbfa9e43b0264fec475dd1eca23784f Author: Peter Lieven <pl@xxxxxxx> Date: Wed Jan 8 10:08:37 2014 +0100 ui/vnc: optimize setting in vnc_dpy_update() Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 863d7c91050551def59116f4f3b39fab7f1568f7 Author: Peter Lieven <pl@xxxxxxx> Date: Wed Jan 8 10:08:36 2014 +0100 ui/vnc: optimize clearing in find_and_clear_dirty_height() The following artifical test (just the bitmap operation part) running vnc_update_client 65536 times on a 2560x2048 surface illustrates the performance difference: All bits clean - vnc_update_client_new: 0.07 secs vnc_update_client_new2: 0.07 secs vnc_update_client_old: 10.98 secs All bits dirty - vnc_update_client_new: 11.26 secs - vnc_update_client_new2: 0.29 secs vnc_update_client_old: 20.19 secs Few bits dirty - vnc_update_client_new: 0.07 secs - vnc_update_client_new2: 0.07 secs vnc_update_client_old: 10.98 secs vnc_update_client_new2 shows the performance of vnc_update_client with this patch added. Comparing with the test run of the last patch the performance is at least unchanged while it is significantly improved for the all bits dirty case. Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 12b316d4c173bf07f421ef9dc98ba4b53916066e Author: Peter Lieven <pl@xxxxxxx> Date: Wed Jan 8 10:08:35 2014 +0100 ui/vnc: optimize dirty bitmap tracking vnc_update_client currently scans the dirty bitmap of each client bitwise which is a very costly operation if only few bits are dirty. vnc_refresh_server_surface does almost the same. this patch optimizes both by utilizing the heavily optimized function find_next_bit to find the offset of the next dirty bit in the dirty bitmaps. The following artifical test (just the bitmap operation part) running vnc_update_client 65536 times on a 2560x2048 surface illustrates the performance difference: All bits clean - vnc_update_client_new: 0.07 secs vnc_update_client_old: 10.98 secs All bits dirty - vnc_update_client_new: 11.26 secs vnc_update_client_old: 20.19 secs Few bits dirty - vnc_update_client_new: 0.08 secs vnc_update_client_old: 10.98 secs The case for all bits dirty is still rather slow, this is due to the implementation of find_and_clear_dirty_height. This will be addresses in a separate patch. Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 6cd859aa8a7fb60fe6edb89e628cddfe25dfe186 Author: Peter Lieven <pl@xxxxxxx> Date: Wed Jan 8 10:08:34 2014 +0100 ui/vnc: derive cmp_bytes from VNC_DIRTY_PIXELS_PER_BIT this allows for setting VNC_DIRTY_PIXELS_PER_BIT to different values than 16 if desired. Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit b4c85ddcec24c60616aad9b3b7fc36ce19ba3ca4 Author: Peter Lieven <pl@xxxxxxx> Date: Wed Jan 8 10:08:33 2014 +0100 ui/vnc: introduce VNC_DIRTY_PIXELS_PER_BIT macro Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 38ee14f4f33f8836fc0e209ca59c6ae8c6edf380 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Mar 6 13:54:28 2014 +0100 vnc: fix use-after-free in vnc_update_client_sync Spotted by Coverity: 876 static int vnc_update_client_sync(VncState *vs, int has_dirty) 877 { (1) Event freed_arg: "vnc_update_client(VncState *, int)" frees "vs". [details] Also see events: [deref_arg] 878 int ret = vnc_update_client(vs, has_dirty); (2) Event deref_arg: Calling "vnc_jobs_join(VncState *)" dereferences freed pointer "vs". [details] Also see events: [freed_arg] 879 vnc_jobs_join(vs); 880 return ret; 881 } Remove vnc_update_client_sync wrapper, replace it with an additional argument to vnc_update_client, so we can so the sync properly in vnc_update_client (i.e. skip it in case of a client disconnect). Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> commit e3c1adf16e38714ebd761dd02517dd07760ba6d2 Author: Gonglei (Arei) <arei.gonglei@xxxxxxxxxx> Date: Thu Jan 23 13:30:57 2014 +0000 vnc: Fix qemu crashed when vnc client disconnect suddenly Hi, When I use RealVNC viewer client (http://www.realvnc.com/) to connect vnc server, the client disconnect suddenly, and I click reconnect button immediately, then the Qemu crashed. In the function vnc_worker_thread_loop, will call vnc_async_encoding_start to set the local vs->output buffer by global queue's buffer. Then send rectangles to the vnc client call function vnc_send_framebuffer_update. Finally, Under normal circumstances, call vnc_async_encoding_end to set the global queue'buffer by the local vs->output conversely. When the vnc client disconnect, the job->vs->csock will be set to -1. And the current prcoess logic will goto disconnected partion without call function vnc_async_encoding_end. But, the function vnc_send_framebuffer_update will call buffer_reserve, which maybe call g_realloc reset the local vs's buffer, meaning the global queue's buffer is modified also. If anyone use the original global queue's buffer memory will cause corruption and then crash qemu. This patch assure the function vnc_async_encoding_end being called even though the vnc client disconnect suddenly. Signed-off-by: Gonglei <arei.gonglei@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 2e7bcdb99adbd8fc10ad9ddcf93bd2bf3c0f1f2d Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Feb 21 16:42:52 2014 +0100 vnc: Fix tight_detect_smooth_image() for lossless case VncTight member uint8_t quality is either (uint8_t)-1 for lossless or less than 10 for lossy. tight_detect_smooth_image() first promotes it to int, then compares with -1. Always unequal, so we always execute the lossy code. Reads beyond tight_conf[] and returns crap when quality is actually lossless. Compare to (uint8_t)-1 instead, like we do elsewhere. Spotted by Coverity. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5264917bcf79d63d7a8df47eef1fd99597ba33a5 Author: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Date: Mon Mar 10 08:48:31 2014 +0000 Update OpenBIOS images Update OpenBIOS images to SVN r1280 built from submodule. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> commit 98bc3ab0f256cb983700089770db0823e59c7ceb Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Mar 9 18:42:06 2014 +0200 loader: rename in_ram/has_mr we put copy of ROMs in MR for migration. but the name rom_in_ram makes one think we load it in guest RAM. Rename has_mr to make intent clearer. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 220c8ed536491315b4040d820328b8dfd60d67a7 Author: Gabriel L. Somlo <gsomlo@xxxxxxxxx> Date: Fri Feb 28 13:57:19 2014 -0500 qemu: x86: ignore ioapic polarity Both QEMU and KVM have already accumulated a significant number of optimizations based on the hard-coded assumption that ioapic polarity will always use the ActiveHigh convention, where the logical and physical states of level-triggered irq lines always match (i.e., active(asserted) == high == 1, inactive == low == 0). QEMU guests are expected to follow directions given via ACPI and configure the ioapic with polarity 0 (ActiveHigh). However, even when misbehaving guests (e.g. OS X <= 10.9) set the ioapic polarity to 1 (ActiveLow), QEMU will still use the ActiveHigh signaling convention when interfacing with the emulated ioapic. This patch modifies the emulated ioapic to completely ignore polarity as set by the guest OS, enabling misbehaving guests to work alongside those which comply with the ActiveHigh polarity specified by QEMU's ACPI tables. Signed-off-by: Gabriel L. Somlo <somlo@xxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit f1b7e0e498c03e5b4519eeea73b49aafe9d88618 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Tue Feb 11 23:46:03 2014 +0100 pckbd: return 'keyboard enabled' on read input port command Bit 7 of Input Port is the keyboard inhibit switch. 0 means keyboard inhibited, while 1 means keyboard enabled. Incidentaly, this also fixes an error encountered while booting an Award BIOS: "Keyboard is locked out - Unlock the key". Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 175f099b30d4736d23384a838b5f324961f67a1e Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Tue Feb 11 23:46:02 2014 +0100 pam: partly fix write-only mode In write-only mode, writes are forwarded to RAM, while reads should not be handled (ie should return 0xff). Assume that in this mode, no read access is ever done, as they shouldn't give any sensible result. So, in write-only mode, alias PAM region to RAM, instead of PCI memory (which can even be mapped to some device!) This fixes Award BIOS, which use this mode to shadow system BIOS and video BIOS. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 15d914b18dd7a9a3bd85291f476613b2f9c2caa6 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Feb 27 16:17:32 2014 +0200 acpi-test: issue errors instead of warnings when possible If the expected (offline) acpi tables loaded correctly, it is safe to assume the iasl installation is OK and issue an error if the actual tables failed to load. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 262f6f5140ea54646c518adc94aab86c4b1c0019 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Feb 27 16:17:31 2014 +0200 acpi-test: retain both asl and aml files on failure Updated the error message while at it. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4a4fcdf6df3189a4ab5bdec70cffb7587c50405d Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Feb 19 15:46:07 2014 +0200 MAINTAINERS: drop an out of date address Gleb's address seems to be out of date. Since it stayed like that for a while now, I'm guessing he's no longer interested in getting mail. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4900116e6f0edef6877c0e8a9ca19957d47765c9 Author: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Date: Thu Jan 30 10:20:32 2014 +0000 Add a 'name' parameter to qemu_thread_create If enabled, set the thread name at creation (on GNU systems with pthread_set_np) Fix up all the callers with a thread name Signed-off-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit 8f480de0c91a18d550721f8d9af969ebfbda0793 Author: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Date: Thu Jan 30 10:20:31 2014 +0000 Add 'debug-threads' suboption to --name Add flag storage to qemu-thread-* to store the namethreads flag Signed-off-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit 5d12f961c6f10cba15b0aa43a877c1fffca463d1 Author: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Date: Thu Jan 30 10:20:30 2014 +0000 Rework --name to use QemuOpts Signed-off-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Reviewed-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit 6e1f0a55a14bad1d0c8b9d29626ef4e4b2617c74 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Mon Feb 17 15:00:06 2014 +0100 PCIE: fix regression with coldplugged multifunction device PCIE is causing asserts each time a multifunction device is added on command line (coldplug). This is caused by commit a66e657e18cd9b70e9f57ae5512c07faf2bc508f pci/pcie: convert PCIE hotplug to use hotplug-handler API QEMU abort is caused by misplaced assertion, which should be checked only when device is hotplugged. Reference to regression report: http://www.mail-archive.com/qemu-devel@xxxxxxxxxx/msg216226.html Fixes: a66e657e18cd9b70e9f57ae5512c07faf2bc508f Reported-By: Nigel Kukard <nkukard+qemu@xxxxxxxx> Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8e46bbf362458fc3e4638a53249248a1ee40b912 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Feb 6 11:24:33 2014 +0100 memory_region_present: return false if address is not found in child MemoryRegion Windows XP shows COM2 port as non functional in "Device Manager" although no COM2 port backing device is present in QEMU. This regression is really due to 3bb28b7208b349e7a1b326e3c6ef9efac1d462bf? memory: Provide separate handling of unassigned io ports accesses That is caused by the fact that QEMU reports to OSPM that device is present by setting 5th bit in PII4XPM.pci_conf[0x67] register when COM2 doesn't exist. It happens due to memory_region_present(io_as, 0x2f8) returning false positive since 0x2f8 address eventually translates into catchall io_as address space. Fix memory_region_present(parent, addr) by returning true only if addr maps into a MemoryRegion within parent (excluding parent itself), to match its doc comment. While at it fix copy/paste error in memory_region_present() doc comment. Note: this is a temporary hack: we really need better handling for unassigned regions, we should avoid fallback regions since they are bad for performance (breaking radix tree assumption that the data structure is sparsely populated); for memory we need to fix this to implement PCI master abort properly, anyway. Cc: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit ddfa83ea06680e83643978f6ecf740b60f86f7c2 Author: Joel Stanley <joel@xxxxxxxxx> Date: Tue Feb 11 10:42:02 2014 +1030 virtio-net: remove function calls from assert peer_{de,at}tach were called from inside assert(). We don't support building without NDEBUG but it's not tidy. Rearrange to attach peer outside assert calls. Signed-off-by: Joel Stanley <joel@xxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 6cb46e1e900a05dea1734a6cbe81c0c1ecb2f2cb Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Feb 17 06:42:11 2014 +0200 acpi-test-data: update expected files Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8dcf525abc5dff785251a881f9764dd961065c0d Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Feb 4 17:43:47 2014 +0200 acpi-build: append description for non-hotplug As reported in http://article.gmane.org/gmane.comp.emulators.qemu/253987 Mac OSX actually requires describing all occupied slots in ACPI - even if hotplug isn't enabled. I didn't expect this so I dropped description of all non hotpluggable slots from ACPI. As a result: before commit 99fd437dee468609de8218f0eb3b16621fb6a9c9 (enable hotplug for pci bridges), PCI cards show up in the "device tree" of OS X (System Information). E.g., on MountainLion users have: Hardware -> PCI Cards: Card Type Driver Installed Slot *ethernet Ethernet Controller Yes PCI Slot 2 pci8086,2934 USB UHC Yes PCI Slot 29 ethernet: Type: Ethernet Controller Driver Installed: Yes MSI: No Bus: PCI Slot PCI Slot 2 Vendor ID: 0x8086 Device ID: 0x100e Subsystem Vendor ID: 0x1af4 Subsystem ID: 0x1100 Revision ID: 0x0003 Hardware -> Ethernet Cards ethernet: Type: Ethernet Controller Bus: PCI Slot PCI Slot 2 Vendor ID: 0x8086 Device ID: 0x100e Subsystem Vendor ID: 0x1af4 Subsystem ID: 0x1100 Revision ID: 0x0003 BSD name: en0 Kext name: AppleIntel8254XEthernet.kext Location: /System/Library/Extensions/... Version: 3.1.1b1 After commit 99fd437dee468609de8218f0eb3b16621fb6a9c9, users get: Hardware -> PCI Cards: This computer doesn't contain any PCI cards. If you installed PCI cards, make sure they're properly installed. Hardware -> Ethernet Cards ethernet: Type: Ethernet Controller Bus: PCI Vendor ID: 0x8086 Device ID: 0x100e Subsystem Vendor ID: 0x1af4 Subsystem ID: 0x1100 Revision ID: 0x0003 BSD name: en0 Kext name: AppleIntel8254XEthernet.kext Location: /System/Library/Extensions/... Version: 3.1.1b1 Ethernet still works, but it's not showing up on the PCI bus, and it no longer thinks it's plugged in to slot #2, as it used to before the change. To fix, append description for all occupied non hotpluggable PCI slots. One need to be careful when doing this: VGA devices are now described in SSDT, so we need to drop description from DSDT. And ISA devices are used in DSDT so drop them from SSDT. Reported-by: Gabriel L. Somlo <gsomlo@xxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Also update generated dsdt and pcihp hex dump files. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit f8e2484389acc564521d36cb7ca459428c134e7b Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Mar 3 15:43:27 2014 -0800 tcg-aarch64: Remove nop from qemu_st slow path Commit 023261ef851b22a04f6c5d76da870051031757a6 failed to remove a nop that's no longer required. Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 523fdc08ccc64d20e6cab1326635fb9ab864bf74 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Mar 4 08:52:49 2014 -0800 tcg-aarch64: Simplify tcg_out_ldst_9 encoding At first glance the code appears to be using 1's compliment encoding, a-la AArch32. Except that the constant is "off", creating a complicated split field 2's compliment encoding. Much clearer to just use a normal mask and shift. Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 017a86f7ad6da088927f7000c79388177d91a9ad Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Mar 3 17:55:33 2014 -0800 tcg-aarch64: Use intptr_t apropriately As opposed to tcg_target_long. Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2e796c7621fa130011a3f794ffad9060f87b745f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 11 16:36:12 2013 -0700 tcg-aarch64: Remove the shift_imm parameter from tcg_out_cmp It was unused. Let's not overcomplicate things before we need them. Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8d8db193f257ea103700b45f2c04725711d05966 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Aug 15 09:40:57 2013 -0700 tcg-aarch64: Hoist common argument loads in tcg_out_op This reduces the code size of the function significantly. Reviewed-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a51a6b6ad5876e9286498e5c068a0ffa3b57fced Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Aug 15 11:13:06 2013 -0700 tcg-aarch64: Don't handle mov/movi in tcg_out_op Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f029341494a8ebff589a70bee01d0775e63845d4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Aug 15 09:11:46 2013 -0700 tcg-aarch64: Set ext based on TCG_OPF_64BIT Reviewed-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7763ffa017f64bf2a40dcce0cb0f3596dfca5b20 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Aug 15 11:11:00 2013 -0700 tcg-aarch64: Change all ext variables to TCGType We assert that the values for _I32 and _I64 are 0 and 1 respectively. This will make a couple of functions declared by tcg.c cleaner. Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3353d0dcc331f15dbbadfc42772d57c864017d4b Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Aug 15 13:36:00 2013 -0700 tcg-aarch64: Remove redundant CPU_TLB_ENTRY_BITS check Removed from other targets in 56bbc2f967ce185fa1c5c39e1aeb5b68b26242e9. Reviewed-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 82295d8a2d4dcbb99869c832c6ecb6bc4a1273a0 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Mar 3 22:53:27 2014 -0500 tcg-aarch64: Enable builtin disassembler Reviewed-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 464400f6a5583eafb466595add435a3a33ea980f Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Mar 7 01:33:37 2014 +0530 migration: extend section_start/end traces This adds @idstr to savevm_section_start and savevm_section_end tracepoints. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Amit Shah <amit.shah@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 4fed9421e931128bd3c86a4f1c90a5989beb88eb Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Mar 7 01:33:36 2014 +0530 vl: add system_wakeup_request tracepoint It might be useful for tracing migration. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Amit Shah <amit.shah@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit ac4df4e608e84da135eacecd7bba7c6e9e9a63b7 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Mar 7 01:33:35 2014 +0530 qemu_file: Fix mismerge of "use fwrite() correctly" Reviewers accepted v2 of the patch, but what got committed was v1, with the R-bys for v2. This is the v1->v2 followup fix. [Amit: This fixes commit aded6539d983280212e08d09f14157b1cb4d58cc ] Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Amit Shah <amit.shah@xxxxxxxxxx> Signed-off-by: Amit Shah <amit.shah@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit fd8cec932c2ddc687e2da954978954b46a926f90 Author: Gonglei <arei.gonglei@xxxxxxxxxx> Date: Tue Mar 4 21:29:21 2014 +0800 XBZRLE: Fix qemu crash when resize the xbzrle cache Resizing the xbzrle cache during migration causes qemu-crash, because the main-thread and migration-thread modify the xbzrle cache size concurrently without lock-protection. Signed-off-by: ChenLiang <chenliang88@xxxxxxxxxx> Signed-off-by: Gonglei <arei.gonglei@xxxxxxxxxx> Reviewed-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit f53f3d0a00b6df39ce8dfca942608e5b6a9a4f71 Merge: d7c698a 993c91a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Mar 8 12:38:43 2014 +0000 Merge remote-tracking branch 'remotes/kvaneesh/for-upstream' into staging * remotes/kvaneesh/for-upstream: hw/9pfs: Include virtio-9p-device.o in build hw/9pfs: use g_strdup_printf() instead of PATH_MAX limitation hw/9pfs/virtio-9p-local.c: use snprintf() instead of sprintf() hw/9pfs/virtio-9p-local.c: move v9fs_string_free() to below "err_out:" fsdev: Fix overrun after readlink() fills buffer completely Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d7c698af8a5c7330a5ba70de0ff70904a661c20e Merge: 6570025 4089f7c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Mar 8 12:17:17 2014 +0000 Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging Block patches # gpg: Signature made Fri 07 Mar 2014 13:30:04 GMT using RSA key ID C88F2FD6 # gpg: Good signature from "Kevin Wolf <kwolf@xxxxxxxxxx>" * remotes/kevin/tags/for-upstream: block: qemu-iotests 085 - live snapshots tests hw/ide/ahci.h: Avoid shifting left into sign bit block: Fix error path segfault in bdrv_open() qemu-iotests: Test a few blockdev-add error cases blockdev: Fix NULL pointer dereference in blockdev-add blockdev: Fail blockdev-add with encrypted images block/raw-win32: Strip "file:" prefix on creation block/raw-win32: Implement bdrv_parse_filename() block/raw-posix: Strip "file:" prefix on creation block/raw-posix: Implement bdrv_parse_filename() block: Keep "filename" option after parsing block: mirror - remove code cruft that has no function block: make bdrv_swap rebuild the bs graph node list field. block: Fix bs->request_alignment assertion for bs->sg=1 iscsi: Use bs->sg for everything else than disks qemu-iotests: Test progress output for conversion qemu-img convert: Fix progress output gluster: Remove unused defines and header include gluster: Change licence to GPLv2+ Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 6570025e53df25c47486d79cc8d3aea725f1744e Author: LluÃs Vilanova <vilanova@xxxxxxxxxx> Date: Mon Jan 20 12:21:54 2014 +0100 build: Fix installation of target-dependent files Pass all the relevant sub-directory make variables. Signed-off-by: LluÃs Vilanova <vilanova@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 20140120112153.5685.30949.stgit@xxxxxxxxxxxxxxxxx commit 80aaa0741f207a6f6e3b234b9a5e775798e0c9de Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Mar 7 22:42:08 2014 +0100 xenfb: Fix graphic_console_init() build failure In commit 5643706a095044d75df1c0588aac553a595b972b (console: add head to index to qemu consoles.) graphic_console_init() was extended to take an additional argument, but xenfb was not updated accordingly. Fix it. Cc: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Don Slutz <dslutz@xxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1394228528-31625-1-git-send-email-afaerber@xxxxxxx commit 6fc0303b95c873d9e384d7fb51e412ac2e53b9c1 Merge: bb2b045 47c0374 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Mar 7 18:29:32 2014 +0000 Merge remote-tracking branch 'remotes/kraxel/tags/pull-input-4' into staging Input handling rewrite. SDL2 support. # gpg: Signature made Wed 05 Mar 2014 11:16:08 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-input-4: (38 commits) ui/sdl2 : initial port to SDL 2.0 (v2.0) console: add QemuUIInfo console: add head to index to qemu consoles. input: remove index_from_keycode (no users) input: move do_mouse_set to new core input: move qmp_query_mice to new core input: add input_mouse_mode tracepoint input: move mouse mode notifier to new core input-legacy: remove kbd_mouse_event input-legacy: remove kbd_mouse_is_absolute input-legacy: remove kbd_mouse_has_absolute input-legacy: remove kbd_put_keycode input: trace events input: mouse: switch cocoa ui to new core input: keyboard: switch cocoa ui to new core input: mouse: switch monitor to new core input: mouse: switch spice ui to new core input: mouse: switch vnc ui to new core input: mouse: switch sdl ui to new core input: mouse: switch gtk ui to new core ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit bb2b04503497608cdc5fa4c990d26e936f9d2102 Merge: c3f8d28 0f20ba6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Mar 7 16:36:37 2014 +0000 Merge remote-tracking branch 'remotes/agraf/tags/signed-ppc-for-upstream' into staging Patch queue for ppc - 2014-03-05 This pull request includes: - VSX emulation support - book3s pr/hv selection - some bug fixes - qdev stable numbering - eTSEC emulation # gpg: Signature made Wed 05 Mar 2014 02:14:19 GMT using RSA key ID 03FEDC60 # gpg: Can't check signature: public key not found * remotes/agraf/tags/signed-ppc-for-upstream: (130 commits) target-ppc: spapr: e500: fix to use cpu_dt_id target-ppc: add PowerPCCPU::cpu_dt_id target-ppc: Introduce hypervisor call H_GET_TCE target-ppc: Update ppc_hash64_store_hpte to support updating in-kernel htab target-ppc: Change the hpte store API target-ppc: Fix page table lookup with kvm enabled target-ppc: Fix htab_mask calculation target-ppc: Use Additional Temporary in stqcx Case target-ppc: Fix Compiler Warnings Due to 64-Bit Constants Declared as UL PPC: sPAPR: Only use getpagesize() when we run with kvm target-ppc/translate.c: Use ULL suffix for 64 bit constants spapr-vlan: flush queue whenever can_receive can go from false to true target-ppc: Altivec 2.07: Vector Permute and Exclusive OR target-ppc: Altivec 2.07: Vector SHA Sigma Instructions target-ppc: Altivec 2.07: AES Instructions target-ppc: Altivec 2.07: Binary Coded Decimal Instructions target-ppc: Altivec 2.07: Vector Polynomial Multiply Sum target-ppc: Altivec 2.07: Vector Gather Bits by Bytes target-ppc: Altivec 2.07: Doubleword Compares target-ppc: Altivec 2.07: vbpermq Instruction ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c3f8d28e455bff9bde2b81bd0c9b1d437b88c159 Merge: 4c288ac 7e74946 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Mar 7 15:58:27 2014 +0000 Merge remote-tracking branch 'remotes/cohuck/tags/virtio-ccw-20140305' into staging One patch introducing support for adapter interrupts in virtio-ccw. This improves performance for those guests that issue the new CCW_CMD_SET_IND_ADAPTER channel command. # gpg: Signature made Wed 05 Mar 2014 08:48:18 GMT using RSA key ID C6F02FAF # gpg: Can't check signature: public key not found * remotes/cohuck/tags/virtio-ccw-20140305: s390x/virtio-ccw: Adapter interrupt support. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4089f7c6a0d91020ca60ce8300784c93dd9ddcbe Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Fri Feb 28 21:08:11 2014 -0500 block: qemu-iotests 085 - live snapshots tests This adds tests for live snapshots, both through the single snapshot command, and the transaction group snapshot command. The snapshots are done through the QMP interface, using the following commands for snapshots: Single snapshot: { 'execute': 'blockdev-snapshot-sync', 'arguments': { 'device': 'virtio0', 'snapshot-file':'...', 'format': 'qcow2' } }" Group snapshot: { 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': '...' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': '...' } } ] } } Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2c02f88780aa611d669f73b7677aeadc1211de7e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Feb 21 14:03:01 2014 +0000 hw/ide/ahci.h: Avoid shifting left into sign bit Add 'U' suffixes to avoid undefined behaviour shifting left into the signed bit of a signed integer type. Clang's sanitizer will warn about this: hw/ide/ahci.c:1210:27: runtime error: left shift of 1 by 31 places cannot be represented in type 'int' Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4c288acbd6b9eccb13076103e59a426af3d15030 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 21:53:30 2014 +0000 configure: Always build with -fno-common MacOSX doesn't pull .o files from .a archives if the symbol that it requires is one which the .o file defines as a common symbol. (Common symbols are those declared without "extern"; the linker will merge together common symbols with the same name, so redeclaring the same variable in two compilation units results in them referring to the same symbol rather than a compilation error). This MacOSX difference from traditional linker behaviour means that "make check" produces link errors: Undefined symbols for architecture x86_64: "_cur_mon", referenced from: _error_vprintf in libqemuutil.a(qemu-error.o) _error_printf in libqemuutil.a(qemu-error.o) _error_printf_unless_qmp in libqemuutil.a(qemu-error.o) _error_print_loc in libqemuutil.a(qemu-error.o) _error_report in libqemuutil.a(qemu-error.o) ld: symbol(s) not found for architecture x86_64 in this case because "cur_mon" is a common symbol in libqemustub.a(mon-set-error.o). In QEMU we don't make any use at all of the common symbol functionality, so we can avoid this problem entirely simply by compiling with -fno-common. Enable this option for all builds, not just MacOSX, so that if we ever inadvertently introduce multiple definitions of some variable that will be immediately spotted as a build error rather than only breaking the MacOSX build. Suggested-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1393451610-24617-1-git-send-email-peter.maydell@xxxxxxxxxx commit 9c83ffd859a13d840aa3f983833b6ea1e34de483 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Feb 25 18:27:49 2014 +0000 configure: Make C++ test work with --enable-werror gcc's C++ compiler complains about being passed some -W options which make sense for C but not for C++. This means we mustn't try a C++ compile with QEMU_CFLAGS, but only with a filtered version that removes the offending options. This filtering was already being done for uses of C++ in the build itself, but was omitted for the "does C++ work?" configure test. This only showed up when doing builds which explicitly enabled -Werror with --enable-werror, because the "do the compilers work" tests were mistakenly placed above the "default werror based on whether compiling from git" code. Another error in this category is that clang warns if you ask it to compile C++ code from a file named "foo.c". Further, because we were running do_cc in a subshell in the condition part of an "if", the error_exit inside do_compiler wouldn't terminate configure and we would plunge on regardless. Fix this complex of errors: 1. Move the default-werror code up so that there are no invocations of compile_object and friends between it and the point where we set $werror explicitly based on the --enable-werror command line option. 2. Provide a mechanism for filtering QEMU_CFLAGS to create QEMU_CXXFLAGS, and use it for the test we run here. 3. Provide a do_cxx function to run a test with the C++ compiler rather than doing cute tricks with subshells and do_cc. 4. Use a new temporary file TMPCXX for the C++ program fragment. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1393352869-22257-1-git-send-email-peter.maydell@xxxxxxxxxx Tested-by: Andreas Färber <afaerber@xxxxxxx> commit eb909c7f72362e3c891d679f6f4eab0885fdb1c1 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Mar 6 16:34:46 2014 +0100 block: Fix error path segfault in bdrv_open() Using an invalid option for a block device that is opened with BDRV_O_PROTOCOL led to drv = NULL, and when trying to include the driver name in the error message, qemu dereferenced it: $ x86_64-softmmu/qemu-system-x86_64 -drive file=/tmp/test.qcow2,file.foo=bar Segmentation fault (core dumped) With this patch applied, the expected error message is printed: $ x86_64-softmmu/qemu-system-x86_64 -drive file=/tmp/test.qcow2,file.foo=bar qemu-system-x86_64: -drive file=/tmp/test.qcow2,file.foo=bar: could not open disk image /tmp/test.qcow2: Block protocol 'file' doesn't support the option 'foo' Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit c75203c8d343dc71d95144862bbb47290689c455 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Mar 6 15:52:14 2014 +0100 qemu-iotests: Test a few blockdev-add error cases Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit c6e0bd9b7037937aafeb1d34ec17975a7d685bb7 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Mar 6 15:47:32 2014 +0100 blockdev: Fix NULL pointer dereference in blockdev-add If aio=native, we check that cache.direct is set as well. If however cache wasn't specified at all, qemu just segfaulted. The old condition didn't make any sense anyway because it effectively only checked for the default cache mode case, but not for an explicitly set cache.direct=off mode. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 8ae8e904fcba484ff7c3f8f31339b56ebd88fbad Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Mar 6 15:43:42 2014 +0100 blockdev: Fail blockdev-add with encrypted images Encrypted images need a password before they can be used, and we don't want blockdev-add to create BDSes that aren't fully initialised. So for now simply forbid encrypted images; we can come back to it later if we need the functionality. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit d5546c5e776ac8f6277ddfdd59df9888e7919c2f Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Mar 5 22:41:40 2014 +0100 block/raw-win32: Strip "file:" prefix on creation The bdrv_create() implementation of the block/raw-win32 "file" protocol driver should strip the "file:" prefix from filenames if present. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7dc74db88b1eb3cff12174d0448ecfb6cd0e2469 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Mar 5 22:41:39 2014 +0100 block/raw-win32: Implement bdrv_parse_filename() The "file" protocol driver should strip the "file:" prefix from filenames if present. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 464d9f641d5a2382bd43d10ae41355edf69338b1 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Mar 5 22:41:38 2014 +0100 block/raw-posix: Strip "file:" prefix on creation The bdrv_create() implementation of the block/raw-posix "file" protocol driver should strip the "file:" prefix from filenames if present. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 078896a9eeeaf7c301bbc59fc791c3331324285f Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Mar 5 22:41:37 2014 +0100 block/raw-posix: Implement bdrv_parse_filename() The "file" protocol driver should strip the "file:" prefix from filenames if present. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit cd5d031e75751838fb40f7b5a5f60fc15d543c55 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Mar 5 22:41:36 2014 +0100 block: Keep "filename" option after parsing Currently, bdrv_file_open() always removes the "filename" option from the options QDict after bdrv_parse_filename() has been (successfully) called. However, for drivers with bdrv_needs_filename, it makes more sense for bdrv_parse_filename() to overwrite the "filename" option and for bdrv_file_open() to fetch the filename from there. Since there currently are no drivers that implement bdrv_parse_filename() and have bdrv_needs_filename set, this does not change current behavior. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 50c75136beec0180171971c88bb6e3fa3aa66463 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Tue Mar 4 10:35:48 2014 -0500 block: mirror - remove code cruft that has no function Originally, this built up the error message with the backing filename, so that errp was set as follows: error_set(errp, QERR_OPEN_FILE_FAILED, backing_filename); However, we now propagate the local_error from the bdrv_open_backing_file() call instead, making these 2 lines useless code. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 90ce8a061bdcc485a56142cae68cfbfff270e634 Author: Benoît Canet <benoit.canet@xxxxxxxxxxx> Date: Wed Mar 5 23:48:29 2014 +0100 block: make bdrv_swap rebuild the bs graph node list field. Moving only the node_name one field could lead to some inconsitencies where a node_name was defined on a bs which was not registered in the graph node list. bdrv_swap between a named node bs and a non named node bs would lead to this. bdrv_make_anon would then crash because it would try to remove the bs from the graph node list while it is not in it. This patch remove named node bses from the graph node list before doing the swap then insert them back. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 47ea2de2d68b6c5319308b7de1980f463b7c125c Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 5 15:49:55 2014 +0100 block: Fix bs->request_alignment assertion for bs->sg=1 For sg backends, bs->request_alignment is meaningless and may be 0. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit f47c3f5a800a927238d20de9f99b5c77f0bc3fe0 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Mar 5 15:45:00 2014 +0100 iscsi: Use bs->sg for everything else than disks The current iscsi block driver code makes the rather arbitrary decision that TYPE_MEDIUM_CHANGER and TYPE_TAPE devices have bs->sg = 1 and all other device types are disks. Instead of this, check for TYPE_DISK to expose the disk interface and make everything else bs->sg = 1. In particular, this includes devices with TYPE_STORAGE_ARRAY, which is what LUN 0 of an iscsi target is. (See https://bugzilla.redhat.com/show_bug.cgi?id=1067784 for the exact scenario.) Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 2fa4c042bc55ec10b9ca16163697d02cddd2d768 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Mar 3 14:53:04 2014 +0100 qemu-iotests: Test progress output for conversion Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 64bb01aa35a24bea7ad0a1a8713991bab5020d12 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Mar 3 14:54:07 2014 +0100 qemu-img convert: Fix progress output Initialise progress output only when the -p and -q options have already been parsed, otherwise it's always disabled. Reported-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit b1f7d84fd2197337c0e71701b0c04174be98df77 Author: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Date: Wed Jan 29 19:59:56 2014 +0530 gluster: Remove unused defines and header include Remove the definitions of GLUSTER_FD_WRITE and GLUSTER_FD_READ which are no longer used. Also sockets.h isn't needed any more. Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Acked-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 85c09bc016076d59561449e786b7cd2138ea9446 Author: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Date: Wed Jan 29 19:59:55 2014 +0530 gluster: Change licence to GPLv2+ Pipe handling mechanism in gluster driver was based on similar implementation in RBD driver and hence had GPLv2 and associated copyright information. After changing gluster driver to coroutine based implementation, the pipe handling code no longer exists and hence change gluster driver's licence to GPLv2+ and remove RBD copyrights. Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Acked-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 47c03744b37c72b8f633b03380d5a323615b9ac4 Author: Dave Airlie <airlied@xxxxxxxxxx> Date: Tue Dec 10 14:05:51 2013 +1000 ui/sdl2 : initial port to SDL 2.0 (v2.0) I've ported the SDL1.2 code over, and rewritten it to use the SDL2 interface. The biggest changes were in the input handling, where SDL2 has done a major overhaul, and I've had to include a generated translation file to get from SDL2 codes back to qemu compatible ones. I'm still not sure how the keyboard layout code works in qemu, so there may be further work if someone can point me a test case that works with SDL1.2 and doesn't with SDL2. Some SDL env vars we used to set are no longer used by SDL2, Windows, OSX support is untested, I don't think we can link to SDL1.2 and SDL2 at the same time, so I felt using --with-sdlabi=2.0 to select the new code should be fine, like how gtk does it. v1.1: fix keys in text console v1.2: fix shutdown, cleanups a bit of code, support ARGB cursor v2.0: merge the SDL multihead patch into this, g_new the number of consoles needed, wrap DCL inside per-console structure. Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx> Fixes & improvements by kraxel: * baum build fix * remove text console logic * adapt to new input core * codestyle fixups Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 6f90f3d786ec1ddae31535bb4be4a1120fd5dfe0 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Jan 24 17:38:20 2014 +0100 console: add QemuUIInfo Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5643706a095044d75df1c0588aac553a595b972b Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Jan 24 15:35:21 2014 +0100 console: add head to index to qemu consoles. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5c07d00f1b33729b23326c57b55e71a9cd9b9310 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Dec 10 17:30:15 2013 +0100 input: remove index_from_keycode (no users) Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 70b52f62b8a94c34ccc939f374bcd00c22a8e3c4 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Dec 10 17:16:03 2013 +0100 input: move do_mouse_set to new core This removes the last user of the lecagy input mouse handler list, so we can remove more legacy bits with this. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e842c68d449a51ec51a0442aa0fe237d4a4b736d Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Dec 10 17:09:36 2013 +0100 input: move qmp_query_mice to new core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit a8dfb1c34ffc17d16eebd46442be93d5e8fad44f Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Dec 5 11:24:14 2013 +0100 input: add input_mouse_mode tracepoint Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 4a33f45e2e4c773b47963baf5a8251963bd01e38 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Dec 5 11:23:42 2013 +0100 input: move mouse mode notifier to new core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 4798648e32112ce92be904bb9d53f8ad0f519c76 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Dec 5 11:21:21 2013 +0100 input-legacy: remove kbd_mouse_event Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 2d0755d21cdc4bd47a44ccbd5e3ee70ba67b20ec Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Dec 5 11:20:39 2013 +0100 input-legacy: remove kbd_mouse_is_absolute Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 16b0ecd16837c5987ebc675ef4a0e1926491dc72 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Dec 5 08:19:02 2013 +0100 input-legacy: remove kbd_mouse_has_absolute Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit faecd955ce3100992a8930a4e96c9bc5e27349ce Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Dec 5 08:12:19 2013 +0100 input-legacy: remove kbd_put_keycode Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit c43ce5512fad19896fc952dc769538d5c553f4c9 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Dec 4 15:20:05 2013 +0100 input: trace events Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 21bae11a39570bea2d7c839d01363dafdab608ce Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Dec 4 14:08:04 2013 +0100 input: mouse: switch cocoa ui to new core Build fixes by Peter Maydell. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 2e08c665cccfcaa05e4a82b5a6a8865a6f42c340 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Dec 4 12:53:44 2013 +0100 input: keyboard: switch cocoa ui to new core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit c751a74afe07b82dbb968abd1eb45cd5163bd9f5 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Dec 4 15:02:28 2013 +0100 input: mouse: switch monitor to new core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f100db385d604d43332b2aece2db6645c4185e06 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Dec 4 12:46:34 2013 +0100 input: mouse: switch spice ui to new core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 14768eba46e4ecf60fd267452baf8925afd9ed09 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 2 15:17:45 2013 +0100 input: mouse: switch vnc ui to new core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 3ab193e66262e60e0ff74ac1ab5cff04412e83cb Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Nov 28 12:27:40 2013 +0100 input: mouse: switch sdl ui to new core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 192f81bfcefa628d804f995449f6f03101c0195f Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Nov 28 12:06:04 2013 +0100 input: mouse: switch gtk ui to new core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit edd85a3d9eff57f92f3c07a51eec5452ca8a24ef Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 27 17:41:40 2013 +0100 input: mouse: switch legacy handlers to new core legacy mouse event handlers are registered in the new core, so they receive events submitted to the new input core. legacy kbd_mouse_event() continues to use the old code paths. So new-core event handlers wouldn't see events submitted via kbd_mouse_event. This leads to the constrain that we we must transition all kbd_mouse_event() users first to keep things working. But that is easier to handle than translating legacy mouse events into new-core mouse events ;) Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 502c8db5b41bb3206ad136fa4baa753c186c9ebd Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Nov 28 11:31:09 2013 +0100 input: mouse: add qemu_input_is_absolute() Same as kbd_mouse_is_absolute(), but using new input core. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit d3535431e8006e8bf71229f306ea9c62d9e737e8 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Nov 28 11:29:33 2013 +0100 input: mouse: add graphic_rotate support Transform absolute mouse events according to graphic_rotate. Legacy input code does it for both absolute and relative events, but the logic is broken for relative coordinates, so this is most likely not used anyway. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 43579403a3d67d6aab5ceb682dedae8fde85703c Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 27 18:24:29 2013 +0100 input: mouse: add helpers functions to core Likewise a bunch of helper functions to manage mouse button and movement events, again to make life easier for the ui code. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit cd100328882ef6967918f3b47ddca9574bb31694 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Dec 4 13:40:20 2013 +0100 input: keyboard: switch curses ui to new core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit de8f580b2360706d644296c690bb187ece6dc4c1 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Dec 4 12:23:54 2013 +0100 input: keyboard: switch spice ui to new core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 8d447d10b74e5116ed85ce2b890301b77774ec49 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 2 14:27:18 2013 +0100 input: keyboard: switch vnc ui to new core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit a25f545d685f44064d32889f6afa7a98631aba21 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Nov 28 12:17:35 2013 +0100 input: keyboard: switch sdl ui to new core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit af98ba92ac3b417fa171736180a782f84b202cef Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Nov 28 11:40:27 2013 +0100 input: keyboard: switch gtk ui to new core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit d2a9260335876ce9d17be0dabf0fd4ae1593de66 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 27 12:11:13 2013 +0100 input: keyboard: switch qmp_send_key() to new core. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 9784e5793000f27cf4b506511fedf207dcf8521c Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 27 11:59:25 2013 +0100 input: keyboard: switch legacy handlers to new core legacy kbd event handlers are registered in the new core, so they receive events from the new input core code. keycode -> scancode translation needed here. legacy kbd_put_keycode() sends events to the new core. scancode -> keycode translation needed here. So with this patch the new input core is fully functional for keyboard events. New + legacy interfaces can be mixed in any way. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 6567147588fabd87c1b633cc35760d45b71b8d41 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 27 11:38:47 2013 +0100 input: keyboard: add helper functions to core A bunch of helper functions to manage keyboard events, to make life simpler for the ui code when submitting keyboard events. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit c8b405b6798e3731eb9a71fcd753745f224ce698 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 27 10:35:26 2013 +0100 input: add core bits of the new input layer Register and unregister handlers. Event dispatcher code. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 8b6b0c59a600d8254a409b837d5358d16e881fd0 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 16 10:34:53 2013 +0100 input: qapi: add pause key It's missing. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit bbd1b1cc25d551f2e0f85f4b635f4a769dbd86e4 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Dec 13 12:10:14 2013 +0100 input: qapi: add unmapped key Simplifies building something -> QkeyCode mapping tables. Uninitialized entries can easily identified then. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 031fa964399d3ed9090acc1378b65eee2633a5eb Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 27 09:08:40 2013 +0100 input: qapi: define event types Define input event types, using qapi. So we get nicely autogenerated types for our input events. And when it comes to qmp support some day things will be a lot easier. Types are modeled after the linux input layer. There are separate event types for each value. There is a sync to indicate the end of a event group. Mouse events are split into motion events (one for each axis) and button events, which are grouped by sync. Keyboard events are using the existing KeyValue type. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 7ad95ff76ccc11c702ca8edcb01a95938eb7ffcd Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 27 09:29:27 2013 +0100 input: rename file to legacy Rename ui/input.c to ui/input-legacy.c. We are going to replace it step by step. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit d4c853375508086132a72f2570e8877608ad6fe7 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Nov 28 09:58:18 2013 +0100 console: export QemuConsole index,width,height Add functions to query QemuConsole properties. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 7e7494627f43b26c565a132639d82de260c26cc8 Author: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Date: Wed Feb 6 10:31:37 2013 +0100 s390x/virtio-ccw: Adapter interrupt support. Handle the new CCW_CMD_SET_IND_ADAPTER command enabling adapter interrupts on guest request. When active, host->guest notifications will be handled via global_indicator -> queue indicators instead of queue indicators + subchannel I/O interrupt. Indicators for virtqueues may be present at an offset. Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Signed-off-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> commit 0f20ba62c35e6a779ba4ea00616192ef2abb6896 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Sun Feb 2 01:45:52 2014 +1100 target-ppc: spapr: e500: fix to use cpu_dt_id This makes use of @cpu_dt_id and related API in: 1. emulated XICS hypercall handlers as they receive fixed CPU indexes; 2. XICS-KVM to enable in-kernel XICS on right CPU; 3. device-tree renderer. This removes @cpu_index fixup as @cpu_dt_id is used instead so QEMU monitor can accept command-line CPU indexes again. This changes kvm_arch_vcpu_id() to use ppc_get_vcpu_dt_id() as at the moment KVM CPU id and device tree ID are calculated using the same algorithm. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: Mike Day <ncmike@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 0ce470cd4ca88e84e547a3b95159d23ce6be419e Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Sun Feb 2 01:45:51 2014 +1100 target-ppc: add PowerPCCPU::cpu_dt_id Normally CPUState::cpu_index is used to pick the right CPU for various operations. However default consecutive numbering does not always work for POWERPC. These indexes are reflected in /proc/device-tree/cpus/PowerPC,POWER7@XX and used to call KVM VCPU's ioctls. In order to achieve this, kvmppc_fixup_cpu() was introduced. Roughly speaking, it multiplies cpu_index by the number of threads per core. This approach has disadvantages such as: 1. NUMA configuration stays broken after the fixup; 2. CPU-targeted commands from the QEMU Monitor do not work properly as CPU indexes have been fixed and there is no clear way for the user to know what the new CPU indexes are. This introduces a @cpu_dt_id field in the CPUPPCState struct which is initialized from @cpu_index by default and can be fixed later to meet the device tree requirements. This adds an API to handle @cpu_dt_id. This removes kvmppc_fixup_cpu() as it is not more needed, @cpu_dt_id is calculated in ppc_cpu_realize(). This will be used later in machine code. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: Mike Day <ncmike@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit a0fcac9c21dcbf481eeb5573a738f55023f5a953 Author: Laurent Dufour <ldufour@xxxxxxxxxxxxxxxxxx> Date: Fri Feb 21 10:29:06 2014 +0100 target-ppc: Introduce hypervisor call H_GET_TCE This patch introduces the hypervisor call H_GET_TCE which is basically the reverse of H_PUT_TCE, as defined in the Power Architecture Platform Requirements (PAPR). The hcall H_GET_TCE is required by the kdump kernel which is calling it to retrieve the TCE set up by the panicing kernel. Signed-off-by: Laurent Dufour <ldufour@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit c1385933804bb432a53d7a49836250d61b6e48bd Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Thu Feb 20 18:52:38 2014 +0100 target-ppc: Update ppc_hash64_store_hpte to support updating in-kernel htab This support updating htab managed by the hypervisor. Currently we don't have any user for this feature. This actually bring the store_hpte interface in-line with the load_hpte one. We may want to use this when we want to emulate henter hcall in qemu for HV kvm. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> [ folded fix for the "warn_unused_result" build break in kvmppc_hash64_write_pte(), Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> ] Signed-off-by: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3f94170be35e3d15d63498e9f0beeee6775be47d Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Thu Feb 20 18:52:31 2014 +0100 target-ppc: Change the hpte store API For updating in kernel htab we need to provide both pte0 and pte1, hence update the interface to take pte0 and pte1 together Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> [ ldq_phys() API change, Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> ] Signed-off-by: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 7c43bca004afdb2a86c20ab3131ec1eb7a78d80d Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Thu Feb 20 18:52:24 2014 +0100 target-ppc: Fix page table lookup with kvm enabled With kvm enabled, we store the hash page table information in the hypervisor. Use ioctl to read the htab contents. Without this we get the below error when trying to read the guest address (gdb) x/10 do_fork 0xc000000000098660 <do_fork>: Cannot access memory at address 0xc000000000098660 (gdb) Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> [ fixes for 32 bit build (casts!), ldq_phys() API change, Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx ] Signed-off-by: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit f3c75d42adbba553eaf218a832d4fbea32c8f7b8 Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Thu Feb 20 18:52:17 2014 +0100 target-ppc: Fix htab_mask calculation Correctly update the htab_mask using the return value of KVM_PPC_ALLOCATE_HTAB ioctl. Also we don't update sdr1 on GET_SREGS for HV. We check for external htab and if found true, we don't need to update sdr1 Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> [ fixed pte group offset computation in ppc_hash64_htab_lookup() that caused TCG to fail, Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> ] Signed-off-by: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3707cd62db79ba965a211b9e2bb808792ae7343a Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Feb 24 08:16:16 2014 -0600 target-ppc: Use Additional Temporary in stqcx Case Per Alex Graf's suggestion, the recently added case to gen_conditional_store for stqcx should use an additional temporary when accessing the second doubleword. This avoids the mutation of the EA argument to the function, which is counter intuitive. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 7dff9abe639e5baa6faa78267cc10726504b8de5 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Feb 24 08:12:13 2014 -0600 target-ppc: Fix Compiler Warnings Due to 64-Bit Constants Declared as UL This patch fixes 64 bit constants that were erroneously declared as "ul" instead of "ull". The preferred form "ULL" is used. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3c3b0ddefac9255f29f5e5c2eb346d0a27e6d022 Author: Alexander Graf <agraf@xxxxxxx> Date: Fri Feb 21 10:38:51 2014 +0100 PPC: sPAPR: Only use getpagesize() when we run with kvm We currently size the msi window trap page according to the host's page size so that we poke a working hole into a memory slot in case we overlap. However, this is only ever necessary with KVM active. Without KVM, we should rather try to be host platform agnostic and use a constant size: 4k. This fixes a build breakage on win32 hosts. Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit e5d7d2b0f55a3b90965044a0ea77e30700a5e136 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 19:47:27 2014 +0000 target-ppc/translate.c: Use ULL suffix for 64 bit constants 64 bit constants need the "ULL" suffix, not just "UL", because on 32 bit platforms 'long' is not large enough and this will cause a compiler warning. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 0a61f3b4782d4dd431c8d6cca6d7fd48d68e1b59 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Feb 14 12:27:04 2014 +1100 spapr-vlan: flush queue whenever can_receive can go from false to true When the guests adds buffers to receive queue, the network device should flush its queue of pending packets. This is done with qemu_flush_queued_packets. This adds a call to qemu_flush_queued_packets() which wakes up the main loop and let QEMU update the network device status which now is "can receive". The patch basically does the same thing as e8b4c68 does. Suggested-by: Max Filippov <jcmvbkbc@xxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit ac174549b730531a4d13c8281e2247e66ba0f46d Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:19 2014 -0600 target-ppc: Altivec 2.07: Vector Permute and Exclusive OR This patch adds the Vector Permuate and Exclusive OR (vpermxor) instruction introduced in Power ISA Version 2.07. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 57354f8f12d04efc3c38126b967fc178b56885f5 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:18 2014 -0600 target-ppc: Altivec 2.07: Vector SHA Sigma Instructions This patch adds the Vector SHA Sigma instructions introduced in Power ISA Version 2.07: - Vector SHA-512 Sigma Doubleword (vshasigmad) - Vector SHA-256 Sigma Word (vshasigmaw) Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 557d52fa697c938aeff2784b79df55952c3bfcc1 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:17 2014 -0600 target-ppc: Altivec 2.07: AES Instructions This patch adds the Vector AES instructions introduced in Power ISA Version 2.07: - Vector AES Cipher (vcipher) - Vector AES Cipher Last (vcipherlast) - Vector AES Inverse Cipher (vncipher) - Vector AES Inverse Cipher Last (vncipherlast) - Vector AES SubBytes (vsbox) Note that the implementation of vncipher deviates from the RTL in ISA V2.07. However it does match the verbal description in the third paragraph. The RTL will be fixed in ISA V2.07B. The implementation here has been tested against actual P8 hardware. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit e8f7b27b9942d02ece7df34ae2b2a09cb9da7196 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:16 2014 -0600 target-ppc: Altivec 2.07: Binary Coded Decimal Instructions This patch add the Binary Coded Decimal instructions bcdadd. and bcdsub. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit b8476fc7c6e205f0dc9fff3cfa199eee8af0fa27 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:15 2014 -0600 target-ppc: Altivec 2.07: Vector Polynomial Multiply Sum This patch adds the Vectory Polynomial Multiply Sum instructions introduced in Power ISA Version 2.07: - Vectory Polynomial Multiply Sum Byte (vpmsumb) - Vectory Polynomial Multiply Sum Halfword (vpmsumh) - Vectory Polynomial Multiply Sum Word (vpmsumw) - Vectory Polynomial Multiply Sum Doubleword (vpmsumd) Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit f1064f612c9783136f2c59b94a4a8da70d3a09e3 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:14 2014 -0600 target-ppc: Altivec 2.07: Vector Gather Bits by Bytes This patch adds the Vector Gather Bits by Bytes Doubleword (vgbbd) instruction which is introduced in Power ISA Version 2.07. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 6f3dab41fb9ecf1caf9779644e4267af6570dd71 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:13 2014 -0600 target-ppc: Altivec 2.07: Doubleword Compares This patch adds the Vector Compare Doubleword instructions introduced by Power ISA Version 2.07: - Vector Compare Equal to Unsigned Doubleword (vcmpequd) - Vector Compare Greater Than Signed Doubleword (vcmpgtsd) - Vector Compare Greater Than Unsigned Doubleword (vcmpgtud) These instructions are encoded with bit 31 set to 1 and so are duals with vcmpeqfp, vcmpgtfp and vcmpbfp respectively. The helper macro for integer compares is enhanced to account for 64-bit operands. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 4d82038e4198cdb8aacdf1d605c69cef29748761 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:12 2014 -0600 target-ppc: Altivec 2.07: vbpermq Instruction This patch adds the Vector Bit Permute Quadword (vbpermq) instruction introduced in Power ISA Version 2.07. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit b41da4ebb2658c4abaaab01e64b9d0bb67dba003 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:11 2014 -0600 target-ppc: Altivec 2.07: Quadword Addition and Subtracation This patch adds the Vector Quadword Addition and Subtraction instructions introduced in Power ISA Version 2.07: - Vector Add Unsigned Quadword Modulo (vadduqm) - Vector Add & Write Carry Unsigned Quadword (vaddcuq) - Vector Add Extended Unsigned Quadword (vaddeuqm) - Vector Add Extended & Write Carry Unsigned Quadword (vaddecuq) - Vector Subtract Unsigned Quadword Modulo (vsubuqm) - Vector Subtract & Write Carry Unsigned Quadword (vsubcuq) - Vector Subtract Extended Unsigned Quadword (vsubeuqm) - Vector Subtract Extended & Write Carry Unsigned Quadword (vsubecuq) Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 2fdf78e649b81a14e2c65770fdb0ac3e656a35c5 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:10 2014 -0600 target-ppc: Altivec 2.07: Vector Doubleword Rotate and Shift Instructions This patch adds the vector doublword rotate and shift instructions introduced in Power ISA Version 2.07: - Vector Rotate Left Doubleword instruction (vrld) - Vector Shift Left Doubleword (vsld) - Vector Shift Right Doubleword (vsrd) - Vector Shift Right Algegbraic Doubleword (vsrad) Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 818692ff95f143e640b44726da59646ea7fbcc23 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:09 2014 -0600 target-ppc: Altivec 2.07: Change Bit Masks to Support 64-bit Rotates and Shifts Existing code in the VROTATE, VSL and VSR macros for the Altivec rotate and shift helpers uses a formula to compute a bit mask used to extract the rotate/shift amount from the VRB register. What is desired is: mask = (1 << (3 + log2(sizeof(element)))) - 1 but what is implemented is: mask = (1 << (3 + (sizeof(element)/2))) - 1 This produces correct answers when "element" is uint8_t, uint16_t or uint_32t. But it breaks down when element is uint64_t. This patch corrects the situation. Since the mask is known at compile time, the macros are changed to simply accept the mask as an argument. Subsequent patches in this series will add double-word variants of rotates and shifts and thus take advantage of this fix. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit e0ffe77f275e62a57eceda4c7fbb26e499e9ed86 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:08 2014 -0600 target-ppc: Altivec 2.07: Vector Merge Instructions This patch adds the Vector Merge Even Word (vmrgew) and Vector Merge Odd Word (vmrgow) instructions introduced in Power ISA Version 2.07. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 4430e076632bc904e041914e410c51d2a9a43a99 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:07 2014 -0600 target-ppc: Altivec 2.07: Unpack Signed Word Instructions This patch adds the Unpack Signed Word instructions introduced in Power ISA Version 2.07: - Vector Unpack High Signed Word (vupkusw) - Vector Unpack Low Signed Word (vupklsw) Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 024215b24210e7c7cbe129279ea94031dd55c791 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:06 2014 -0600 target-ppc: Altivec 2.07: Pack Doubleword Instructions This patch adds the Vector Pack Doubleword instructions introduced in Power ISA Version 2.07: - Vector Pack Signed Doubleword Signed Saturate (vpksdss) - Vector Pack Signed Doubleword Unsigned Saturate (vpksdus) - Vector Pack Unsigned Doubleword Unsigned Modulo (vpkudum) - Vector Pack Unsigned Doubleword Unsigned Saturate (vpkudus) Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 8203e31b547d38a8ec0ce04fe19e6cefe75b4391 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:05 2014 -0600 target-ppc: Altivec 2.07: Vector Min/Max Doubleword Instructions This patch adds the Vector Minimum and Maximum Doubleword instructions that are introduced in Power ISA Version 2.07. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit e13500b3c36533e22842bac28f40b2c86ded8c0c Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:04 2014 -0600 target-ppc: Altivec 2.07: Vector Population Count Instructions This patch adds the Vector Population Count instructions introduced in Power ISA Version 2.07: vpopcntb, vpopcnth, vpopcntw and vpopcntd. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit f293f04ab5301f688ce7c9fe3006a787611c2485 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:03 2014 -0600 target-ppc: Altivec 2.07: Add Vector Count Leading Zeroes This patch adds the Vector Count Leading Zeroes instructions introduced in Power ISA Version 2.07 - vclzb, vclzh, vclzw and vclzd. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 953f0f5842a8515fd85ae28ebcdc219f8e7b76fe Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:02 2014 -0600 target-ppc: Altivec 2.07: vmuluw Instruction This patch adds the Vector Multiply Unsigned Word Modulo (vmuluwm) instruction. The existing VARITH_DO macro is re-used to (trivially) instantiate the helper code. Since bits 21-31 of any vmuluwm instruction is 137, the instruction is coded as a dual to vmulouw (bits 21-31 = 136). Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 63be09365a9a4658060e85ce013cc0beaeac25e5 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:01 2014 -0600 target-ppc: Altivec 2.07: Multiply Even/Odd Word Instructions This patch adds the Multilpy Even/Odd Word instructions that are introduced in Power ISA Version 2.07: - Vector Multiply Even Unsigned Word (vmuleuw) - Vector Multiply Even Signed Word (vmulesw) - Vector Multiply Odd Unsigned Word (vmulouw) - Vector Multiply Odd Signed Word (vmulosw) Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit aa9e930c8870d06a20b356785d3ec7d9a942a29f Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:23:00 2014 -0600 target-ppc: Altivec 2.07: Change VMUL_DO to Support 64-bit Integers This VMUL_DO macro provides support for the various vmule* and vmulo* instructions. These instructions multiply vector elements, producing products that are one size larger; e.g. vmuleub multiplies unsigned 8-bit elements and produces a 16 bit unsigned element. The existing macro works correctly for the existing instructions (8-bit, and 16-bit source elements) but does not work correctly for 32-bit source elements. This patch adds an explicit cast to the multiplicands, forcing them to be of the target element type. This is required for the forthcoming patches that add the vmul[eo][us]w instructions. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 56eabc750862b985a6ddfc3905b534576eeee33e Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:22:59 2014 -0600 target-ppc: Altivec 2.07: Add/Subtract Unsigned Doubleword Modulo This patch adds two Altivec unsigned doublword modulo instructions that are introduced in Power ISA Version V2.07: - vaddudm : Vector Add Unsigned Doubleword Modulo - vsubudm : Vector Subtrace Unsigned Doubleword Modulo Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 111c5f54a1fda35ff3a35d5cb62cd5f0f3e9d5b2 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:22:58 2014 -0600 target-ppc: Altivec 2.07: Vector Logical Instructions This patch adds the Vector Logical Instructions that are introduced in Power ISA Version 2.07: veqv, vnand and vorc. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit a737d3ebc8ece5728c2d98b725652b7a0056d593 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:22:57 2014 -0600 target-ppc: Altivec 2.07: Add Support for R-Form Dual Instructions Some Alitvec instructions introduced in Power ISA Version 2.07 use bit 31 (aka the "Rc" bit) as an opcode but also use bit 21 as an actual Rc bit. QEMU for PowerPC typically uses bits 0-5 and 21-30 for opcodes. This patch introduces a generator macro that injects an auxiliary handler which decodes both bits 21 and 31 and invokes one of four standard handlers. Since the instructions are not, in general, from the same version of the ISA, two sets of PPC_*/PPC2_* flags are supported. This patch also introduces a macro to insert two entries into the opcode table -- one for bit 21 equal to 0 and one for bit 21 equal to 1. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 50f5fc0cf24fbc12434a5ad6e3784341f92e23bd Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:22:56 2014 -0600 target-ppc: Altivec 2.07: Add Opcode Macro for VX Form Instructions This patch adds a macro to insert an entry into the opcode table for Altivec Power ISA Version 2.07 instructions. The macro is similar to the GEN_VXFORM macro except that it tags the entry with the PPC2_ALTIVEC_207 flag rather than PPC_ALTIVEC. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5dffff5a4746075a4609366440c2c67983eec106 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:22:55 2014 -0600 target-ppc: Altivec 2.07: Add Support for Dual Altivec Instructions Some Alitvec instructions introduced in Power ISA Version 2.07 use bit 31 (aka the "Rc" bit) as an opcode bit. However, QEMU for PowerPC uses bits 0-5 and 21-30 for opcodes and not bit 31. This patch introduces macros that will handle this situation by injecting an auxiliary handler which decodes bit 31 in invokes one of two standard handlers. Since the instructions are not, in general, from the same version of the ISA, two sets of PPC_*/PPC2_* instruction tags are supported. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 9b47bb490c1b272c16b8f5e216b74456a3e17322 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:22:54 2014 -0600 target-ppc: Altivec 2.07: Add GEN_VXFORM3 This patch adds generator macro for Altivec instructions that have 3 source AVR operands. The macro is similar to the 2 operand form. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit bb5275338daf1b64bf9677e0361057cfa6ff6a7d Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:22:53 2014 -0600 target-ppc: Altivec 2.07: Update AVR Structure This patch updates the ppc_avr_t data structure to include elements for signed 64-bit integers and (conditionally) unsigned 128 bit integers. These elements will be in instructions models later on in this patch series. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 32ea54ab5fe18954e05f33a5825ba088d6cd4163 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Feb 12 15:22:52 2014 -0600 target-ppc: Altivec 2.07: Add Instruction Flag This patch adds a flag that will be used to tag the Altivec instructions introduced in Power ISA Version 2.07. The flag is added to Power8 model since P8 supports these instructions. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 27b95bfe624af1ddfaf63c07f3f0a63049b8c9fc Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Feb 10 11:27:01 2014 -0600 target-ppc: Add Store Quadword Conditional This patch adds the Store Quadword Conditionl (stqcx.) instruction which is introduced in Power ISA 2.07. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> [agraf: fix compile error when !TARGET_PPC64] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 9c294d5ab3eac0e600fa510becfa677d87b088bf Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Feb 10 11:27:00 2014 -0600 target-ppc: Add Load Quadword and Reserve This patch adds the Load Quadword and Reserve (lqarx) instruction, which is new in Power ISA 2.07. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 84cab1e2f5be3ea6eaa65c9fc0422fb992946ce0 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Feb 10 11:26:59 2014 -0600 target-ppc: Store Quadword This patch adds support for the Store Quadword instruction in user mode. Prior to Power ISA 2.07, stq was legal only in privileged mode. Support for Little Endian mode is also new in ISA 2.07. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit e0498daab50d42f3948fc5607683c971fe9416fd Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Feb 10 11:26:58 2014 -0600 target-ppc: Load Quadword This patch adds the Book I (user space) Load Quadword (lq) instruction. This instruction was introduced into Book I in Power ISA V2.07. Previous versions of the architecture supported this as a privileged instruction. Previous versions of the architecture also did not support Little Endian mode. Note that this patch also adds the PPC_64BX flag to the Power8 model, which enables the lq instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 71a8c019c445377f0dd04881cbd7c7dfb6ff3e5c Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Feb 10 11:26:57 2014 -0600 target-ppc: Add is_user_mode Utility Routine This patch adds a boolean function is_user_mode that can be re-used in translation code that is sensitive to the MSR[PR] (user-mode) state. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 38a853375e63ea7315e138d7016ed387d744e43d Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Feb 10 11:26:56 2014 -0600 target-ppc: Add Flag for ISA 2.07 Load/Store Quadword Instructions This patch adds a flag to identify the load/store quadword instructions that are introduced with Power ISA 2.07. The flag is added to the Power8 model since P8 supports these instructions. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 52a4984d97a942f35debb1887cb53d7f09bf1e26 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Feb 10 11:26:55 2014 -0600 target-ppc: Add bctar Instruction This patch adds the Branch Conditional to Address Register (bctar) instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 60511041d6b846c9b6804a2c552ceda27d4e1f06 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Feb 10 11:26:54 2014 -0600 target-ppc: Add Target Address SPR (TAR) to Power8 This patch adds support for the Target Address Register (TAR) to the Power8 model. Because supported SPRs are typically identified in an init_proc_*() function and because the Power8 model is currently just using the init_proc_POWER7() function, a new init_proc_POWER8() function is added and plugged into the P8 model. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 94840e0700a3cbd0b0d99ae9ddecf47b4bbcc5d7 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Feb 10 11:26:53 2014 -0600 target-ppc: Add Flag for bctar This patch adds a flag for the bctar instruction. This instruction is being introduced via Power ISA 2.07. Also, the flag is added to the Power8 machine model since the P8 processor supports this instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit f5bc1bfa35af5288fe43f459696e712474dafc66 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Mon Feb 10 11:25:09 2014 -0600 target-ppc: Fix xxpermdi When T==A or T==B The existing implementation of xxpermdi is defective if the target VSR is also a source VSR. This patch fixes the defect in this case but also preserves the simpler, two TCG operation implementation when the target is not once of the two sources. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3f34cf910cbc4e77d25a300d8c290ae50bdcc2ed Author: Cédric Le Goater <clg@xxxxxxxxxx> Date: Thu Feb 20 14:20:35 2014 +0100 target-ppc: add extended opcodes for dcbt/dcbtst The latest glibc provides a memrchr routine using an extended opcode of the 'dcbt' instruction : 00000000000a7cc0 <memrchr>: a7cc0: 11 00 4c 3c addis r2,r12,17 a7cc4: b8 f8 42 38 addi r2,r2,-1864 a7cc8: 14 2a e3 7c add r7,r3,r5 a7ccc: d0 00 07 7c neg r0,r7 a7cd0: ff ff e7 38 addi r7,r7,-1 a7cd4: 78 1b 6a 7c mr r10,r3 a7cd8: 24 06 e6 78 rldicr r6,r7,0,56 a7cdc: 60 00 20 39 li r9,96 a7ce0: 2c 32 09 7e dcbtt r9,r6 .... which breaks grep, and other commands, in TCG mode : invalid bits: 02000000 for opcode: 1f - 16 - 08 (7e09322c) 00003fff799feca0 This patch adds the extended opcodes for dcbt/dcbtst as no-ops just like the 'dcbt' instruction. Signed-off-by: Cédric Le Goater <clg@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 61de36761b565a4138d8ad7ec75489ab28fe84b6 Author: Alexander Graf <agraf@xxxxxxx> Date: Thu Feb 6 16:08:15 2014 +0100 qdev: Keep global allocation counter per bus When we have 2 separate qdev devices that both create a qbus of the same type without specifying a bus name or device name, we end up with two buses of the same name, such as ide.0 on the Mac machines: dev: macio-ide, id "" bus: ide.0 type IDE dev: macio-ide, id "" bus: ide.0 type IDE If we now spawn a device that connects to a ide.0 the last created bus gets the device, with the first created bus inaccessible to the command line. After some discussion on IRC we concluded that the best quick fix way forward for this is to make automated bus-class type based allocation count a global counter. That's what this patch implements. With this we instead get dev: macio-ide, id "" bus: ide.1 type IDE dev: macio-ide, id "" bus: ide.0 type IDE on the example mentioned above. This also means that if you did -device ...,bus=ide.0 you got a device on the first bus (the last created one) before this patch and get that device on the second one (the first created one) now. Breaks migration unless you change bus=ide.0 to bus=ide.1 on the destination. This is intended and makes the bus enumeration work as expected. As per review request follows a list of otherwise affected boards and the reasoning for the conclusion that they are ok: target machine bus id times ------ ------- ------ ----- aarch64 n800 i2c-bus.0 2 aarch64 n810 i2c-bus.0 2 arm n800 i2c-bus.0 2 arm n810 i2c-bus.0 2 -> Devices are only created explicitly on one of the two buses, using s->mpu->i2c[0], so no change to the guest. aarch64 vexpress-a15 virtio-mmio-bus.0 4 aarch64 vexpress-a9 virtio-mmio-bus.0 4 aarch64 virt virtio-mmio-bus.0 32 arm vexpress-a15 virtio-mmio-bus.0 4 arm vexpress-a9 virtio-mmio-bus.0 4 arm virt virtio-mmio-bus.0 32 -> Makes -device bus= work for all virtio-mmio buses. Breaks migration. Workaround for migration from old to new: specify virtio-mmio-bus.4 or .32 respectively rather than .0 on the destination. aarch64 xilinx-zynq-a9 usb-bus.0 2 arm xilinx-zynq-a9 usb-bus.0 2 mips64el fulong2e usb-bus.0 2 -> Normal USB operation not affected. Migration driver needs command line to use the other bus. i386 isapc ide.0 2 x86_64 isapc ide.0 2 mips mips ide.0 2 mips64 mips ide.0 2 mips64el mips ide.0 2 mipsel mips ide.0 2 ppc g3beige ide.0 2 ppc mac99 ide.0 2 ppc prep ide.0 2 ppc64 g3beige ide.0 2 ppc64 mac99 ide.0 2 ppc64 prep ide.0 2 -> Makes -device bus= work for all IDE buses. Breaks migration. Workaround for migration from old to new: specify ide.1 rather than ide.0 on the destination. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5736245c80bb277f3de7f37d9482c906743612ad Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue Jan 28 13:29:59 2014 +0530 target-ppc: Update external_htab even when HTAB is managed by kernel We will use this in later patches to make sure we use the right load functions when copying hpte entries. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3b66da82cebf3ddd1c2e06233c647369f617a6bc Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Feb 4 15:04:19 2014 +1100 spapr: print more detailed error message on failed load_elf() This makes use of new error codes which load_elf() can return and prints more informative error message. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 18674b26788a9e47f1157170234e32ece2044367 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Feb 4 15:04:18 2014 +1100 elf-loader: add more return codes The existing load_elf() just returns -1 if it fails to load ELF. However it could be smarter than this and tell more about the failure such as wrong endianness or incompatible platform. This adds additional return codes for wrong architecture, wrong endianness and if the image is not ELF at all. This adds a load_elf_strerror() helper to convert return codes into string messages. This fixes handling of what load_elf() returns for s390x, other callers just check the return value for <0 and this remains unchanged. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 6a2331d12ee7ca9fbcf2a3c22109513ca561a51e Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Feb 4 15:04:17 2014 +1100 moxie: fix load_elf() usage At the moment in the case of error, load_elf() returns -1 so load_kernel() will not signal error at all. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 133e70ee8831992e309f74c20084bc50e3bcf8e0 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Feb 4 15:04:16 2014 +1100 spapr: support only ELF kernel images Currently everybody uses ELF kernel images with "-kernel" option on pseries machine but QEMU still tries to boot from an image even it fails to recognize it is ELF. This produces undefined behaviour if the user tries a kernel image compiled for another architecture. This removes support of raw kernel images. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit eb1e7c3e514665bb948357ef39845efd9af29de1 Author: Fabien Chouteau <chouteau@xxxxxxxxxxx> Date: Wed Feb 5 14:59:28 2014 +0100 Add Enhanced Three-Speed Ethernet Controller (eTSEC) This implementation doesn't include ring priority, TCP/IP Off-Load, QoS. Signed-off-by: Fabien Chouteau <chouteau@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit b36f100e17c8e2e737b48d78c9049b96752e4adf Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Feb 4 15:12:34 2014 +1100 PPC: KVM: suppress warnings about not supported SPRs PR KVM lacks support of many SPRs in set/get one register API but it does really break PR KVM. So convert them to switchable traces for now. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 0658aa9cbacdfd40fffd23bfd6608870d12602c1 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Mon Feb 3 15:20:20 2014 +0000 virtex_ml507: Add support for loading initrd images Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> [agraf: fix up stray quotes and newlines in strings] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 69b31b907b1114b4ee24faa00582fd5ecaaccf5c Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Jan 31 13:24:00 2014 +1100 PPC: KVM: store SLB slot number When ppc_store_slb() is called from kvm_arch_get_registers(), it stores a SLB in CPUPPCState::slb[slot]. However it drops the slot number from ESID so when kvm_arch_put_registers() puts SLBs back to KVM, they do not have correct "index" field anymore. This broke migration with LPCR_AIR enabled as now the guest is handling interrupts in virtual mode and unable to reconstruct correct SLBs anymore. This adds "index" field for valid SLBs when putting them to KVM. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 66c3e32841f185243efa59381ab7721b24deca35 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:06:10 2014 -0600 target-ppc: Add ISA2.06 lfiwzx Instruction This patch adds the Load Floating Point as Integer Word and Zero Indexed (lfiwzx) instruction which was introduced in Power ISA 2.06. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit ce8ca30b398fb74e522be1a9ea87aa7868f27428 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:06:09 2014 -0600 target-ppc: Enable frsqrtes on Power7 and Power8 The frsqrtes instruction was introduced prior to ISA 2.06 and is support on both the Power7 and Power8 processors. However, this instruction is handled as illegal in the current QEMU emulation machines. This patch enables the existing implemention of frsqrtes in the P7 and P8 machines. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 6d41d146c92e99e21ef267be4c4b9893940e0838 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:06:08 2014 -0600 target-ppc: Add ISA 2.06 ftsqrt This patch adds the Floating Point Test for Square Root instruction which was introduced in Power ISA 2.06. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit da29cb7bc7b62c14a69a104f91867edf9ce88543 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:06:07 2014 -0600 target-ppc: Add ISA 2.06 ftdiv Instruction This patch adds the Floating Point Test for Divide instruction which was introduced in Power ISA 2.06B. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 29a0e4e9a1adfaf8864cfb7a79e5bb0f28aac282 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:06:06 2014 -0600 target-ppc: Add Flag for Power ISA V2.06 Floating Point Test Instructions This patch adds a flag for Floating Point Test instructions that were introduced in Power ISA V2.06B. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit c73860803f8f8f56ee01b6e796507bfb4ea073ec Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:06:05 2014 -0600 target-ppc: Fix and enable fri[mnpz] The fri* series of instructions was introduced prior to ISA 2.06 and is supported on Power7 and Power8 hardware. However, the instruction is still considered illegal in the P7 and P8 QEMU emulation models. This patch enables these instructions for the P7 and P8 machines. Also, the existing helper is modified to correctly handle some of the boundary cases (NaNs and the inexact flag). Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 28288b48a83e903198ee22d8558c43b021e39a17 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:06:00 2014 -0600 target-ppc: Add ISA 2.06 fcfid[u][s] Instructions This patch adds the fcfids, fcfidu and fcfidus instructions which were introduced in Power ISA 2.06B. A common macro is provided to eliminate repetitious code, and the existing fcfid instruction is refactored to use this macro. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit fab7fe426fa5325f93c931ffbe25f4e024b1ced4 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:05:59 2014 -0600 target-ppc: Add ISA2.06 Float to Integer Instructions This patch adds the four floating point to integer conversion instructions introduced by Power ISA V2.06: - Floating Convert to Integer Word Unsigned (fctiwu) - Floating Convert to Integer Word Unsigned with Round Toward Zero (fctiwuz) - Floating Convert to Integer Doubleword Unsigned (fctidu) - Floating Convert to Integer Doubleword Unsigned with Round Toward Zero (fctiduz) A common macro is developed to eliminate repetitious code. Existing instructions are also refactoried to use this macro (fctiw, fctiwz, fctid, fctidz). Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 1b0bd0029f16649a7f3d8ba021191bc6ca3a471f Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:05:58 2014 -0600 target-ppc: Add Flag for ISA V2.06 Floating Point Conversion This patch adds a flag for the floating point conversion instructions introduced in Power ISA 2.06B. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 587c51f74bcf2f9aa03b7d8e1cff229f74d02860 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:05:57 2014 -0600 target-ppc: Add ISA 2.06 stbcx. and sthcx. Instructions This patch adds the byte and halfword variants of the Store Conditional instructions. A common macro is introduced and the existing implementations of stwcx. and stdcx. are refactored to use this macro. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5c77a786e21e9dc12efc0f0590221e67dd5143da Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:05:56 2014 -0600 target-ppc: Add ISA2.06 lbarx, lharx Instructions This patch adds the byte and halfword variants of the Load and Reserve instructions. Since there is much commonality among all forms of Load and Reserve, a macro is provided and the existing implementations of lwarx and ldarx are refactoried to use this macro. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 1fa6c533047b4447cef693a1f54babc6a69fe19d Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:05:55 2014 -0600 target-ppc: Add Flag for ISA2.06 Atomic Instructions This patch adds a flag for the atomic instructions introduced in Power ISA V2.06B. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit a98eb9e99df4c11966fcd56cbcb6f06e6f413a89 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:05:54 2014 -0600 target-ppc: Add ISA 2.06 divwe[o] Instructions This patch addes the signed Divide Word Extended instructions which were introduced in Power ISA 2.06B. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 6a4fda3358ca5a21e17d553074f74d512745c4f6 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:05:53 2014 -0600 target-ppc: Add ISA 2.06 divweu[o] Instructions This patch addes the Unsigned Divide Word Extended instructions which were introduced in Power ISA 2.06B. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit e44259b6d4f4de69a868510a198b2696f24118a1 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:05:52 2014 -0600 target-ppc: Add ISA2.06 divde[o] Instructions This patch adds the Divide Doubleword Extended instructions. The implementation builds on the unsigned helper provided in the previous patch. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 98d1eb2748e84f9e3118d1bd2495f0cc917ac18d Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:05:51 2014 -0600 target-ppc: Add ISA2.06 divdeu[o] Instructions This patch adds the Divide Doubleword Extended Unsigned instructions. This instruction requires dividing a 128-bit value by a 64 bit value. Since 128 bit integer division is not supported in TCG, a helper is used. An architecture independent 128-bit division routine is added to host-utils. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> [agraf: use ||] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit a824bc191a90d86980a9ed090cb1d1219faaf8e7 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:05:50 2014 -0600 target-ppc: Add Flag for ISA2.06 Divide Extended Instructions This patch adds a flag for the Divide Extended instructions that were introduced in Power ISA V2.06B. The flag is added to the Power7 and Power8 models. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 86ba37edcb6556b124840f04d180a34ffcc71086 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 10:05:49 2014 -0600 target-ppc: Add ISA2.06 bpermd Instruction This patch adds the Bit Permute Doubleword (bpermd) instruction, which was introduced in Power ISA 2.06 as part of the base 64-bit architecture. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 7ee19fb9d682689d36c849576c808cf92e3bae40 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:45 2014 -0600 target-ppc: Scalar Non-Signalling Conversions This patch adds the non-signalling scalar conversion instructions: - VSX Scalar Convert Single Precision to Double Precision Non-Signalling (xscvspdpn) - VSX Scalar Convert Double Precision to Single Precision Non-Signalling (xscvdpspn) Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3d1140bf3e73e4fd244914bdf2867fe634759c71 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:44 2014 -0600 target-ppc: Scalar Round to Single Precision This patch adds the VSX Scalar Round to Single Precision (xsrsp) instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 097ec5d850df7dd1da87220726ce87a6ab3566c4 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:43 2014 -0600 target-ppc: Floating Merge Word Instructions This patch adds the Floating Merge Even Word (fmrgew) and Floating Merge Odd Word (fmrgow) instructions. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit f5c0f7f981333da59cc35c3210d05ec1775c97c1 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:42 2014 -0600 target-ppc: Move To/From VSR Instructions This patch adds the Move To VSR instructions (mfvsrd, mfvsrwz) and Move From VSR instructions (mtvsrd, mtvsrwa, mtvsrwz). These instructions are unusual in that they are considered a floating point instruction if the indexed VSR is in the first half of the array (0-31) but they are considered vector instructions if the indexed VSR is in the second half of the array (32-63). Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 67a33f37277e29355239c7cb80af14f914f201f3 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:41 2014 -0600 target-ppc: VSX Stage 4: Add xxleqv, xxlnand and xxlorc This patchs adds the VSX Logical instructions that are new with ISA V2.07: - VSX Logical Equivalence (xxleqv) - VSX Logical NAND (xxlnand) - VSX Logical ORC (xxlorc) Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 74698350ca1bc95eda751f8c5a93268f20f7214e Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:40 2014 -0600 target-ppc: VSX Stage 4: Add xscvsxdsp and xscvuxdsp This patch adds the VSX Scalar Convert Unsigned Integer Doubleword to Floating Point Format and Round to Single Precision (xscvuxdsp) and VSX Scalar Convert Signed Integer Douglbeword to Floating Point Format and Round to Single Precision (xscvsxdsp) instructions. The existing integer to floating point conversion macro (VSX_CVT_INT_TO_FP) is modified to support the rounding of the intermediate floating point result to single precision. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit f53f81e08bd0192121c4e0c3f1fdc53832631b4b Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:39 2014 -0600 target-ppc: VSX Stage 4: Add Scalar SP Fused Multiply-Adds This patch adds the Single Precision VSX Scalar Fused Multiply-Add instructions: xsmaddasp, xsmaddmsp, xssubasp, xssubmsp, xsnmaddasp, xsnmaddmsp, xsnmsubasp, xsnmsubmsp. The existing VSX_MADD() macro is modified to support rounding of the intermediate double precision result to single precision. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 968e76bcab9a3c40f37c9a52822b6daa90ae7cd8 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:38 2014 -0600 target-ppc: VSX Stage 4: add xsrsqrtesp This patch adds the VSX Scalar Reciprocal Square Root Estimate Single Precision (xsrsqrtesp) instruction. The existing VSX_RSQRTE() macro is modified to support rounding of the intermediate double-precision result to single precision. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit cea4e57473efc2fad1d241e87984eba4e5d9690c Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:37 2014 -0600 target-ppc: VSX Stage 4: Add xssqrtsp This patch adds the VSX Scalar Square Root Single Precision (xssqrtsp) instruction. The existing VSX_SQRT() macro is modified to support rounding of the intermediate double-precision result to single-precision. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 2c0c52ae620cf121a8b9084c7c1168d867564ee8 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:36 2014 -0600 target-ppc: VSX Stage 4: Add xsresp This patch adds the VSX Scalar Reciprocal Estimate Single Precision (xsresp) instruction. The existing VSX_RE macro is modified to support rounding of the intermediate double precision result to single precision. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit b24d0b472b0d471e93ccc7fc7d4fd6ed30e7e434 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:35 2014 -0600 target-ppc: VSX Stage 4: Add xsdivsp This patch adds the VSX Scalar Divide Single Precision (xsdivsp) instruction. The existing VSX_DIV macro is modified to support rounding of the intermediate double precision result to single precision. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit ab9408a2d11670d15b2692ca60646d8da8158d6f Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:34 2014 -0600 target-ppc: VSX Stage 4: Add xsmulsp This patch adds the VSX Scalar Multiply Single-Precision (xsmulsp) instruction. The existing VSX_MUL macro is modified to support rounding of the intermediate result to single precision. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3fd0aadfc19ba146ed6ced27b4e6ff6afc08473a Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:33 2014 -0600 target-ppc: VSX Stage 4: Add xsaddsp and xssubsp This patch adds the VSX Scalar Add Single-Precision (xsaddsp) and VSX Scalar Subtract Single-Precision (xssubsp) instructions. The existing VSX_ADD_SUB macro is modified to support the rounding of the (intermediate) result to single-precision. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit e16a626b8280cfcf3de385c59ddd1fde2840c2c3 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:32 2014 -0600 target-ppc: VSX Stage 4: Add stxsiwx and stxsspx This patch adds two store scalar instructions: - Store VSX Scalar as Integer Word Indexed (stxsiwx) - Store VSX Scalar Single-Precision Indexed (stxsspx) Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit f026da78308ea468d26d78792a6655bb34431f18 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:31 2014 -0600 target-ppc: VSX Stage 4: Refactor stxsdx This patch refactors the stxsdx instruction. Reusable code is extracted into a macro which will be used in subsequent patches in this series. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit cac7f0ba4a5a47050a249ef085bc846630224d0d Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:30 2014 -0600 target-ppc: VSX Stage 4: Add lxsiwax, lxsiwzx and lxsspx This patch adds the scalar load instructions introduced in ISA V2.07: - Load VSX Scalar as Integer Word Algebraic Indexd (lxsiwax) - Load VSX Scalar as Integer Word and Zero Indexed (lxsiwzx) - Load VSX Scalar Single-Precision Indexed (lxsspx) Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit e072fe796ee2b5f43e0dba259d0706e1b296138a Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:29 2014 -0600 target-ppc: VSX Stage 4: Refactor lxsdx This patch refactors the lxsdx generator. Resuable code is isolated into a macro. The macro will be used in subsequent patches in this series to implement other scalar load instructions. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit dbcc48fa8fc534c240129fcdece9c3fb0434e82c Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Jan 15 08:10:28 2014 -0600 target-ppc: VSX Stage 4: Add VSX 2.07 Flag This patch adds a flag to identify those VSX instructions that are new to Power ISA V2.07. The flag is added to the Power 8 processor initialization so that the P8 models understand how to decode and emulate instructions in this category. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 88e33d08c9c2fc0aabc9b832719324bd2d454db9 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:35 2014 -0600 target-ppc: Add VSX Rounding Instructions This patch adds the VSX Round to Floating Point Integer instructions: - xsrdpi, xsrdpic, xsrdpim, xsrdpip, xsrdpiz - xvrdpi, xvrdpic, xvrdpim, xvrdpip, xvrdpiz - xvrspi, xvrspic, xvrspim, xvrspip, xvrspiz Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5177d2ca938496f060448f71f9edd9145231d9af Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:34 2014 -0600 target-ppc: Add VSX ISA2.06 Integer Conversion Instructions This patch adds the VSX Integer Conversion instructions defined by V2.06 of the PowerPC ISA: - xscvdpsxds, xscvdpsxws, xscvdpuxds, xscvdpuxws - xvcvdpsxds, xvcvdpsxws, xvcvdpuxds, xvcvdpuxws - xvcvspsxds, xvcvspsxws, xvcvspuxds, xvcvspuxws - xscvsxddp, xscvuxddp - xvcvsxddp, xscvsxwdp, xvcvuxddp, xvcvuxwdp - xvcvsxdsp, xscvsxwsp, xvcvuxdsp, xvcvuxwsp Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit ed8ac5686a8e1aba7ddc5d8ca3a56a7496a2a536 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:33 2014 -0600 target-ppc: Add VSX Floating Point to Floating Point Conversion Instructions This patch adds the VSX instructions that convert between floating point formats: xscvdpsp, xscvspdp, xvcvdpsp, xvcvspdp. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 354a6decf1508f15fb1b4b419efcd05d209bece4 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:32 2014 -0600 target-ppc: Add VSX Vector Compare Instructions This patch adds the VSX floating point compare vector instructions: - xvcmpeqdp[.], xvcmpgedp[.], xvcmpgtdp[.] - xvcmpeqsp[.], xvcmpgesp[.], xvcmpgtsp[.] Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 959e9c9d1e5507a6c68d0b875d71ef967d3cfd6c Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:31 2014 -0600 target-ppc: Add VSX xmax/xmin Instructions This patch adds the VSX floating point maximum and minimum instructions: - xsmaxdp, xvmaxdp, xvmaxsp - xsmindp, xvmindp, xvminsp Because of the Power ISA definitions of maximum and minimum on various boundary cases, the standard softfloat comparison routines (e.g. float64_lt) do not work as well as one might think. Therefore specific routines for comparing 64 and 32 bit floating point numbers are implemented in the PowerPC helper code. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 4f17e9c738321151e6b7aa4d2c25c3f1e2443cca Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:30 2014 -0600 target-ppc: Add VSX xscmp*dp Instructions This patch adds the VSX scalar floating point compare ordered and unordered instructions. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 595c6eefb79a77a650dd7a49e812920ed53b0e9c Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:29 2014 -0600 target-ppc: Add VSX ISA2.06 Multiply Add Instructions This patch adds the VSX floating point multiply/add instructions defined by V2.06 of the PowerPC ISA: - xsmaddadp, xvmaddadp, xvmaddasp - xsmaddmdp, xvmaddmdp, xvmaddmsp - xsmsubadp, xvmsubadp, xvmsubasp - xsmsubmdp, xvmsubmdp, xvmsubmsp - xsnmaddadp, xvnmaddadp, xvnmaddasp - xsnmaddmdp, xvnmaddmdp, xvnmaddmsp - xsnmsubadp, xvnmsubadp, xvnmsubasp - xsnmsubmdp, xvnmsubmdp, xvnmsubmsp Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5cb151acb18ab247f1e7c703e242b430551e3129 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:28 2014 -0600 target-ppc: Add VSX ISA2.06 xtsqrt Instructions This patch adds the VSX floating point test for software square root instructions defined by V2.06 of the PowerPC ISA: xstsqrtdp, xvtsqrtdp, xvtsqrtsp. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit bc80838f86375c420d37c6c20e6a9098904932ce Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:27 2014 -0600 target-ppc: Add VSX ISA2.06 xtdiv Instructions This patch adds the VSX floating point test for software divide instructions defined by V2.06 of the PowerPC ISA: xstdivdp, xvtdivdp, and xvtdivsp. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit d3f9df8fb83f72947a44bc773bec92105db731ff Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:26 2014 -0600 target-ppc: Add VSX ISA2.06 xrsqrte Instructions This patch adds the VSX floating point reciprocal square root estimate instructions defined by V2.06 of the PowerPC ISA: xsrsqrtedp, xvrsqrtedp, xvrsqrtesp. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit d32404fe42ec67beee7d26aef8571e5e9c1e39b3 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:25 2014 -0600 target-ppc: Add VSX ISA2.06 xsqrt Instructions This patch adds the VSX floating point square root instructions defined by V2.06 of the PowerPC ISA: xssqrtdp, xvsqrtdp, xvsqrtsp. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 2009227fbe868979d6a0518ef34972462f140404 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:24 2014 -0600 target-ppc: Add VSX ISA2.06 xre Instructions This patch adds the VSX floating point reciprocal estimate instructions defined by V2.06 of the PowerPC ISA: xsredp, xvredp, xvresp. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 4b98eeef50c1bb619dc32bddc9d54ed03c365c5f Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:23 2014 -0600 target-ppc: Add VSX ISA2.06 xdiv Instructions This patch adds the VSX floating point divide instructions defined by V2.06 of the PowerPC ISA: xsdivdp, xvdivdp, xvdivsp. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5e591d8812df5efa38518b6bf933d02c61fa1c10 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:22 2014 -0600 target-ppc: Add VSX ISA2.06 xmul Instructions This patch adds the VSX floating point multiply instructions defined by V2.06 of the PowerPC ISA: xsmuldp, xvmuldp, xvmulsp. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit ee6e02c0aca020a1934a14c36cff258545dc29b5 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:21 2014 -0600 target-ppc: Add VSX ISA2.06 xadd/xsub Instructions This patch adds the floating point addition and subtraction instructions defined by V2.06 of the PowerPC ISA: xssubdp, xvsubdp and xvsubsp. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3c3cbbdc84dbe594b4fa4df52eb8ed6f42d640d8 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:20 2014 -0600 target-ppc: General Support for VSX Helpers This patch adds general support that will be used by the VSX helper routines: - a union describing the various VSR subfields. - access routines to get and set VSRs - VSX decoders - a general routine to generate a handler that invokes a VSX helper. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 59800ec8e52bcfa271fa61fb0aae19205ef1b7f1 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Thu Jan 2 16:21:19 2014 -0600 target-ppc: Add set_fprf Argument to fload_invalid_op_excp() The fload_invalid_op_excp() function sets assorted invalid operation status bits. However, it also implicitly modifies the FPRF field of the PowerPC FPSCR. Many VSX instructions set invalid operation bits but do not alter FPRF. Thus the function is more generally useful if the setting of the FPRF field is made conditional via a parameter. All invocations of this routine in existing instructions are modified to pass 1 and thus retain their current behavior. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 4e38181979ec4bc80c75f0c181f9df2d4e933c13 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Dec 23 13:42:22 2013 +1100 target-ppc: disable unsupported modes for SPR_CTRL/SPR_UCTRL The Figure 17 "SPR encodings" of the PowerISA 2.07 describes CTRL SPR as: priviledged # spr5-9 spr0-4 name mtspr mfspr len cat 136 00100 01000 CTRL - no 32 S 152 00100 11000 CTRL yes - 32 S According to this chart, the hypervisor's CTRL (#152) does not support reading, the user-space's CTRL (UCTRL, #136) does not support writing. This replaces unsupported operations with the default SPR_NOACCESS hook. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3052f0d59426a1f8120ffbf66fd438973bfd2912 Author: Nathan Whitehorn <nwhitehorn@xxxxxxxxxxx> Date: Sun Jan 12 17:34:21 2014 -0500 spapr_vscsi: Fix REPORT_LUNS handling Intercept REPORT_LUNS commands addressed either to SRP LUN 0 or the well-known LUN for REPORT_LUNS commands. This is required to implement the SAM and SPC specifications. Since SRP implements only a single SCSI target port per connection, the SRP target is required to report all available LUNs in response to a REPORT_LUNS command addressed either to LUN 0 or the well-known LUN. Instead, QEMU was forwarding such requests to the first QEMU SCSI target, with the result that initiators that relied on this feature would only see LUNs on the first QEMU SCSI target. Behavior for REPORT_LUNS commands addressed to any other LUN is not specified by the standard and so is left unchanged. This preserves behavior under Linux and SLOF, which enumerate possible LUNs by hand and so address no commands either to LUN 0 or the well-known REPORT_LUNS LUN. Signed-off-by: Nathan Whitehorn <nwhitehorn@xxxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> [agraf: define constant as ULL for 32bit hosts] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 09aa9a526a86fd2e380e86157c55dfd180661c64 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Jan 13 20:29:09 2014 +1100 spapr-pci: enable adding PHB via -device Recent changes introduced cannot_instantiate_with_device_add_yet and removed capability of adding yet another PCI host bridge via command line for SPAPR platform (POWERPC64 server). This brings the capability back and puts SPAPR PHB into "bridge" category. This is not much use for emulated PHB but it is absolutely required for VFIO as we put an IOMMU group onto a separate PHB on SPAPR. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 6cd8712c5fd74a8ec0aae1b7cc34af026354f06a Author: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Date: Mon Jan 6 19:23:48 2014 +0100 PPC: KVM: add support for LPCR The LPCR special purpose register was introduced with the PowerPC 970MP family. This patch initializes LPCR for the following families: - 970 MP - POWER5+ - POWER7 - POWER8 Signed-off-by: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 7a7c05d77d60f6a23705da4005e96d379fd49ddb Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Jan 6 16:36:40 2014 +1100 PPC: KVM: fix "set one register" Due to missing @one_reg_id assignment in _spr_register(), the kvm_get_one_reg/kvm_set_one_reg API has never really been working. This reenables the API by assigning the @one_reg_id field in the SPR descriptor. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 363248e8c92c6331253e2a768884c69183805050 Author: Cédric Le Goater <clg@xxxxxxxxxx> Date: Tue Feb 4 18:21:39 2014 +0100 mmu-hash64: fix Virtual Page Class Key Protection commit f80872e21c07edd06eb343eeeefc8af404b518a6 (mmu-hash64: Implement Virtual Page Class Key Protection) added a new page protection mechanism based on page keys and the AMR register to control access. The AMR register allows or prohibits reads and/or writes on a page depending on the control bits associated to the key. A store or a load is only permitted if the associate bit is 0 (Power ISA), and not 1 as the code is currently doing. This patch modifies ppc_hash64_amr_prot() to correct the protection check. This issue was unvailed by commit ccfb53ed6360cac0d5f6f7915ca9ae7eed866412 (target-ppc: fix Authority Mask Register init value) which changed the initialisation value of the AMR register to 0. Signed-off-by: Cédric Le Goater <clg@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 0dc083fe10c5cc848f36498b9157a336cbc8c7c1 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Jan 6 16:36:39 2014 +1100 target-ppc: fix Authority Mask Register init value The existing default value (-1) of the AMR register forbids data access to all 32 classes. Since the guest linux does not change this register, we end up with the guest hanging right after switching from the real to protected mode. This sets the default AMR value to zero what enables data access for all classes. The only reason for not hitting this bug before is that kvm_arch_put_registers() did not put any SPR to KVM due to missing assignment of @one_reg_id in _spr_register() (which is going to be fixed by a separate patch). Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit ca480de66400c4fcaf59100b813e402f9edb08f7 Author: Anton Blanchard <anton@xxxxxxxxx> Date: Tue Dec 24 12:17:24 2013 +1100 target-ppc: dump DAR and DSISR The DAR and DSISR can be very useful when debugging issues, so add them to ppc_cpu_dump_state. We had another bug in this area: all of the v2.06 MMU types were missing. Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 135a129a1cd047cc913e88c795eda859a0ebb81f Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Mon Dec 23 21:10:40 2013 +0530 kvm: Add a new machine option kvm-type Targets like ppc64 support different types of KVM, one which use hypervisor mode and the other which doesn't. Add a new machine option kvm-type that helps in selecting the respective ones We also add a new QEMUMachine callback get_vm_type that helps in mapping the string representation of kvm type specified. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> [agraf: spelling fixes, use error_report(), use qemumachine.h] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 9c06a1f79f959fffd09bfb7efc3d76051a6cd2da Author: Alexander Graf <agraf@xxxxxxx> Date: Mon Jan 27 18:22:10 2014 +0100 KVM: Split QEMUMachine typedef into separate header Older gcc versions (such as the one in SLES11) get confused when you declare a typedef on the same struct twice. To work around that limitation, let's extract the QEMUMachine typedef into a separate header file that is guarded by preprocessor duplicate include checks. This fixes the following type of compile errors for me: In file included from vl.c:125: include/hw/xen/xen.h:39: error: redefinition of typedef "QEMUMachine" include/sysemu/kvm.h:155: error: previous declaration of "QEMUMachine" was here Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 88ccd23a0c99155ff1eb5162d3685fde9c679b3d Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Dec 20 17:41:34 2013 +1100 target-ppc: remove unsupported SPRs from 970 and P5+ SPR_750FX_HID2 and L2CR are not defined in 970* user manuals nor POWER5 bookIV nor PowerISA 2.04, the numbers assigned to them are not defined either so remove them. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 401949176c00029692378d83b0dcc638ccbd7b6e Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Dec 20 17:41:33 2013 +1100 target-ppc: remove embedded MMU SPRs from 970, P5+/7/7+/8 PowerISA 2.04+ puts MMUCFG and MMUCSR0 SPRs to "E" (embedded) category so remove it from POWER7/8 class as it is "S" (server) category. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 0bfe9299dae5c92498a4f503e6d5786bdbc7c4d7 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Dec 20 17:41:32 2013 +1100 target-ppc: fix SPR_CTRL/SPR_UCTRL register numbers Assuming that "U" in SPR_UCTRL is for "user", there is inconsistency with 970 user manuals/P5-bookIV/PowerISA204 which define the number as: priviledged # spr5-9 spr0-4 name mtspr mfspr len cat 136 00100 01000 CTRL - no 32 S 152 00100 11000 CTRL yes - 32 S This swaps the numbers. No effect from this change is expected though. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 81d2fb4dfdf34889676410ff61753b351e3d67fb Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Dec 20 17:41:31 2013 +1100 target-ppc: remove powerpc 970gx The 970GX definition was added in 2007 and it made sense then but this version has never been released to the markets and it does not exist in the real world so there is no point in emulating it. This removes 970GX. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 6475c9f05ca89d76635108dca64a11759838e03c Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Dec 20 17:41:30 2013 +1100 target-ppc: fix LPCR SPR number PowerISA defines LPCR SPR number as 318=0x13E but QEMU uses the value of 316. This fixes the definition of LPCR SPR. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit a5100e752b4ed1027b6db27d3fbcb0e3c62b3f94 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Dec 20 13:14:57 2013 +1100 target-ppc: fix compile error when PPC_DUMP_CPU is enabled Since last use of PPC_DUMP_CPU by whoever he/she was, env->tlb became a union and POWERPC CPU class got QOM'ed so defining PPC_DUMP_CPU breaks compile. This fixes compiler errors. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit f55ea6297cc0224fe4934b90ff5343b620b14669 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Mar 4 21:00:28 2014 +0100 block/gluster: Add missing argument to qemu_gluster_init() call Commit adccfbcd6020e928db93b2b4faf0dbd05ffbe016 (block: gluster - add reopen support.) did not supply the qemu_gluster_init() Error ** argument, needed since commit a7451cb850d115f257080aff3fbc54f255ebf8f7 (gluster: correctly propagate errors). Pass through qemu_gluster_reopen_prepare()'s errp, as done in qemu_gluster_open(). Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit ac458e121c398c8619b2a7735e87e37b73c0b687 Merge: e00ef74 25254a7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 4 18:12:01 2014 +0000 Merge remote-tracking branch 'remotes/mjt/tags/trivial-patches-2014-03-04' into staging trivial patches for 2014-03-04 # gpg: Signature made Tue 04 Mar 2014 06:13:56 GMT using RSA key ID 74F0C838 # gpg: Good signature from "Michael Tokarev <mjt@xxxxxxxxxx>" # gpg: aka "Michael Tokarev <mjt@xxxxxxxxx>" # gpg: aka "Michael Tokarev <mjt@xxxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 6EE1 95D1 886E 8FFB 810D 4324 457C E0A0 8044 65C5 # Subkey fingerprint: E190 8639 3B10 B51B AC2C 8B73 5253 C5AD 74F0 C838 * remotes/mjt/tags/trivial-patches-2014-03-04: vl: Remove unneeded include file qga: Remove unneeded include file qemu-img: Remove unneeded include files exec: Remove unneeded include files util/iov: Use qemu/sockets.h instead of conditional code qjson.h: Remove spurious GCC_FMT_ATTR markup from qobject_from_json() declaration tests/test-int128: Don't use __noclone__ attribute on clang stubs: Optimize dependencies for gdbstub.c tcg: Fix typo in comment (dependancies -> dependencies) bswap: Modify prototypes of st[wl]_{le, be}_p (avoid type conversions) bswap: Modify prototype of stb_p (avoid type conversions) object: Report type in error when not user creatable. include/qemu/host-utils.h: Trivial typo: ctz->cto Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e00ef747f08db1c7dd58a5366db4dc3038a7307f Merge: 4a29420 b774539 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 4 17:01:07 2014 +0000 Merge remote-tracking branch 'remotes/qmp-unstable/queue/qmp' into staging * remotes/qmp-unstable/queue/qmp: (32 commits) qapi: Add missing null check to opts_start_struct() qapi: Clean up superfluous null check in qapi_dealloc_type_str() qapi: Clean up null checking in generated visitors qapi: Drop unused code in qapi-commands.py qapi: Drop nonsensical header guard in generated qapi-visit.c qapi: Fix licensing of scripts tests/qapi-schema: Cover flat union types tests/qapi-schema: Cover union types with base tests/qapi-schema: Cover complex types with base tests/qapi-schema: Cover anonymous union types tests/qapi-schema: Cover simple argument types tests/qapi-schema: Cover optional command arguments tests/qapi-schema: Actually check successful QMP command response monitor: Remove left-over code in do_info_profile. qerror: Improve QERR_DEVICE_NOT_ACTIVE message qmp: Check for returned data from __json_read in get_events dump: add 'query-dump-guest-memory-capability' command Define the architecture for compressed dump format dump: make kdump-compressed format available for 'dump-guest-memory' dump: add API to write dump pages ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4a29420ea1c5a34191281855f5f51e70deab8940 Merge: 4fd42af 3eba13e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 4 16:33:25 2014 +0000 Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging Block pull request # gpg: Signature made Fri 28 Feb 2014 18:27:24 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/block-pull-request: block/vmdk: do not report file offset for compressed extents discard rbd error output when not relevant in qemu-iotests block: use /var/tmp instead of /tmp for -snapshot qemu-io-test: Disable Quorum test when not compiled in. qmp: Make Quorum error events more palatable. qmp: Fix BlockdevOptionQuorum. block: gluster - add reopen support. block: gluster - code movements, state storage changes qemu-iotests: add more tests to the "quick" group Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4fd42afe6117ab16dc5e2e7216cced8010afc1d1 Merge: c2cb92f cb48da7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 4 15:53:00 2014 +0000 Merge remote-tracking branch 'remotes/rth/i386-fix' into staging * remotes/rth/i386-fix: target-i386: Fix ucomis and comis memory access target-i386: Fix SSE status flag corruption target-i386: Fix CC_OP_CLR vs PF Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c2cb92f9ea3c88acde6a8cb75abc148dfe27aee7 Merge: 739aa55 7f00eb3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 4 14:50:46 2014 +0000 Merge remote-tracking branch 'remotes/borntraeger/tags/kvm-s390-20140227' into staging Several features, fixes and cleanups for kvm/s390: - sclp event facility: cleanup structure. This allows to use realize/unrealize as well as migration support via vmsd - reboot: Two fixes that make reboot much more reliable - ipl: make elf loading more robust - flic interrupt controller: This allows to migrate floating interrupts, as well as clear them on reset etc. - enable async_pf feature of KVM on s390 - several sclp fixes and cleanups - several sigp fixes and cleanups * remotes/borntraeger/tags/kvm-s390-20140227: (22 commits) s390x/ipl: Fix crash of ELF images with arbitrary entry points s390x/kvm: Rework priv instruction handlers s390x/kvm: Add missing SIGP CPU RESET order s390x/kvm: Rework SIGP INITIAL CPU RESET handler s390x/cpu: Use ioctl to reset state in the kernel s390-ccw.img: new binary rom to match latest fixes s390-ccw.img: Fix sporadic errors with ccw boot image - initialize css s390-ccw.img: Fix sporadic reboot hangs: Initialize next_idx s390x/event-facility: exploit realize/unrealize s390x/event-facility: add support for live migration s390x/event-facility: code restructure s390x/event-facility: some renaming s390x/sclp: Fixed setting of condition code register s390x/sclp: Add missing checks to SCLP handler s390x/sclp: Fixed the size of sccb and code parameter s390x/eventfacility: mask out commands s390x/virtio-hcall: Specification exception for illegal subcodes s390x/virtio-hcall: Add range check for hypervisor call s390x/kvm: Fixed bad SIGP SET-ARCHITECTURE handler s390x/async_pf: Check for apf extension and enable pfault ... Conflicts: linux-headers/linux/kvm.h Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 739aa555b8d6e45920b44cb7a2a790fce5061890 Merge: d47e95c d9738fd Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 4 14:25:34 2014 +0000 Merge remote-tracking branch 'remotes/bonzini/scsi-next' into staging * remotes/bonzini/scsi-next: block/iscsi: fix segfault if writesame fails scsi-disk: Add support for port WWN and index descriptors in VPD page 83h block/iscsi: query for supported VPD pages block/iscsi: fix deadlock on scsi check condition scsi-bus: Fix transfer length for VERIFY with BYTCHK=11b scsi: report thin provisioning errors with werror=report scsi: Change scsi sense buf size to 252 Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d47e95c0c86ea5d8d050bf201ee27bcec617c10e Merge: 57f45b6 af87bf2 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Mar 4 13:09:06 2014 +0000 Merge remote-tracking branch 'remotes/mcayland/qemu-sparc' into staging * remotes/mcayland/qemu-sparc: sun4m: Add Sun CG3 framebuffer initialisation function sun4m: Add Sun CG3 framebuffer and corresponding OpenBIOS FCode ROM sun4m: fix slavio timer RUN/STOP bit sun4m: Set HostID in NVRAM Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 57f45b6207a65d96ee4913f33f1ec46cd32a083a Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Feb 27 21:28:03 2014 +0100 Makefile: Add missing dependency for system emulation (fix build) Comment from Makefile.objs: The system emulation needs this dependency (which was missing in Makefile), otherwise builds without tools (or massive parallel builds) fail. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 993c91a0e996346c7ee8fa2ca310cc76edb59e17 Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue Mar 4 00:35:32 2014 +0530 hw/9pfs: Include virtio-9p-device.o in build After commit ba1183da9a10b94611cad88c44a5c6df005f9b55 we are including hw/Makefile.objs directly from Makefile.target. Make sure hw/Makefile.objs rules doesn't depend on variable defined in Makefile.objs Tested-by: Serge Hallyn <serge.hallyn@xxxxxxxxxx> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> commit b51910baf227f0fd64abfa7ad6d8e00150a18194 Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Fri Feb 28 15:25:32 2014 +0100 linux-user: correct handling of break exception for MIPS Exception with break instruction has not been correctly propagated as SIGTRAP. This resolves crash issues with examples that use break instruction on MIPS. Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 974a196d7fc9f2f5553589b0022226b877e5c9b1 Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Mon Mar 3 15:07:41 2014 +0100 linux-user: translate signal number on return from sigtimedwait On success, sigtimedwait() returns a signal number that needs to be translated from a host value to a target value. This change also fixes issues with sigwait (that is implemented using sigtimedwait()). Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f19e00d776b781bfb0067b9b20a592440fd2990e Author: Alexander Graf <agraf@xxxxxxx> Date: Sun Mar 2 19:36:42 2014 +0000 linux-user: Implement sendmmsg syscall Glibc when built for newer kernels assumes that the sendmmsg syscall is available. Without it, dns resolution simply fails to work. Wrap the syscall with existing infrastructure so that we don't have a host dependency on sendmmsg. To avoid locking the same area of guest memory twice (which will break if DEBUG_REMAP is defined) we pull the lock/unlock part of do_sendrecvmsg() out into its own function so the actual implementation can be shared. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [PMM: add recvmmsg support; handle errors (which also implies support for non-blocking operations); cap the vector length as the kernel implementation does; don't lock guest memory twice; support MSG_WAITFORONE flag] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 76ca310a19463e9883e2e55a88ac8be1fc171eea Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Mar 2 19:36:41 2014 +0000 linux-user: Fix getresuid, getresgid if !USE_UID16 The size of the UID/GID types depends on whether USE_UID16 is defined. Define a new put_user_id() which writes a uid/gid type to guest memory. This fixes getresuid and getresgid, which were always storing 16 bits even if the uid type was 32 bits. Reported-by: Michael Matz <matz@xxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit cd98d390ae009c5c1be5ae9a656e943bb47e14f0 Author: Andreas Schwab <schwab@xxxxxxx> Date: Sun Mar 2 19:36:40 2014 +0000 linux-user: Don't use UID16 on AArch64 The AArch64 kernel defines its __kernel_uid_t type as 32 bits, unlike 32 bit ARM, so don't enable our 16-bit UID wrapper handling. Signed-off-by: Andreas Schwab <schwab@xxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8a3ae9109eb45dd77b182a4953ef9e636f665296 Author: Michael Matz <matz@xxxxxxx> Date: Sun Mar 2 19:36:39 2014 +0000 linux-user: AArch64: Implement SA_RESTORER for signal handlers Implement support for signal handlers with the SA_RESTORER flag set. Signed-off-by: Michael Matz <matz@xxxxxxx> [PMM: minor tweaks to make patch apply to current master] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4cf2348026002d64556f89d0971c663311be2525 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Mar 2 19:36:38 2014 +0000 linux-user/signal.c: Fix AArch64 big-endian FP register restore Fix the loop restoring the FP registers from the signal frame to match the one used when setting up the signal frame, so that it handles TARGET_WORDS_BIGENDIAN being set. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4fa4ce7107c6ec432f185307158c5df91ce54308 Author: Chen Gang <gang.chen.5i5j@xxxxxxxxx> Date: Sun Mar 2 01:36:19 2014 +0800 hw/9pfs: use g_strdup_printf() instead of PATH_MAX limitation When path is truncated by PATH_MAX limitation, it causes QEMU to access incorrect file. So use original full path instead of PATH_MAX within 9pfs (need check/process ENOMEM for related memory allocation). The related test: - Environments (for qemu-devel): - Host is under fedora17 desktop with ext4fs: qemu-system-x86_64 -hda test.img -m 1024 \ -net nic,vlan=4,model=virtio,macaddr=00:16:35:AF:94:04 \ -net tap,vlan=4,ifname=tap4,script=no,downscript=no \ -device virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=hostshare \ -fsdev local,security_model=passthrough,id=fsdev0,\ path=/upstream/vm/data/share/1234567890abcdefghijklmnopqrstuvwxyz\ ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890acdefghijklmnopqrstuvwxyz\ ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890/111111111111111111111111111\ 1111111111111111111111111111111111111111111111111111222222222222\ 2222222222222222222222222222222222222222222222222222222222222222\ 2222222222222222222222222222222222233333333333333333333333333333\ 3333333333333333333333333333333333 - Guest is ubuntu12 server with 9pfs. mount -t 9p -o trans=virtio,version=9p2000.L hostshare /share - Limitations: full path limitation is PATH_MAX (4096B include nul) under Linux. file/dir node name maximized length is 256 (include nul) under ext4. - Special test: Under host, modify the file: "/upstream/vm/data/share/1234567890abcdefg\ hijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890acdefghijklmno\ pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890/111111111111111111111\ 111111111111111111111111111111111111111111111111111111111122222222222\ 222222222222222222222222222222222222222222222222222222222222222222222\ 222222222222222222222222222222233333333333333333333333333333333333333\ 3333333333333333333333333/4444444444444444444444444444444444444444444\ 444444444444444444444444444444444444444444444444444444444444444444444\ 444444444444444444444444444444444444444444444444444444444444444444444\ 444444444444444444444444444444444444444/55555555555555555555555555555\ 555555555555555555555555555555555555555555555555555555555555555555555\ 555555555555555555555555555555555555555555555555555555555555555555555\ 555555555555555555555555555555555555555555555555555555555555555555555\ 55555555/666666666666666666666666666666666666666666666666666666666666\ 666666666666666666666666666666666666666666666666666666666666666666666\ 666666666666666666666666666666666666666666666666666666666666666666666\ 666666666666666666666/77777777777777777777777777777777777777777777777\ 777777777777777777777777777777777777777777777777777777777777777777777\ 777777777777777777777777777777777777777777777777777777777777777777777\ 77777777777777777777777777777777777777777777777777777777777/888888888\ 888888888888888888888888888888888888888888888888888888888888888888888\ 888888888888888888888888888888888888888888888888888888888888888888888\ 888888888888888888888888888888888888888888888888888888888888888888888\ 888888888/99999999999999999999999999999999999999999999999999999999999\ 999999999999999999999999999999999999999999999999999999999999999999999\ 999999999999999999999999999999999999999999999999999999999999999999999\ 99999999999999999999999999999999999999999/000000000000000000000000000\ 000000000000000000000000000000000000000000000000000000000000000000000\ 000000000000000000000000000000000000000000000000000000000000000000000\ 000000000000000000000000000000000000000000000000/aaaaaaaaaaaaaaaaaaaa\ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbb\ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ccccccccc\ ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\ ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\ ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\ cccccccccc/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\ ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\ ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\ dddddddddddddddddddddd/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\ eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\ eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\ eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee/fffffffffffffff\ fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/gggggggggg\ ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg\ ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg\ ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg\ ggggggggggggggggggggggg/iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\ iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\ iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\ iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii/jjjjjjjjjjjjj\ jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj\ jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj/ppppppppppppppppppppp\ ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp\ ppppppppppppppppppppppppppppppppppppppp/test1234567890file.log" (need enter dir firstly, then modify file, or can not open it). Under guest, still allow modify "test1234567890file.log" (will generate "test123456" file with contents). After apply this patch, can not open "test1234567890file.log" under guest (permission denied). - Common test: All are still OK after apply this path. "mkdir -p", "create/open file/dir", "modify file/dir", "rm file/dir". change various mount point paths under host and/or guest. Signed-off-by: Chen Gang <gang.chen.5i5j@xxxxxxxxx> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> commit fae0864573b08b12f29003baabfd9902d89608fe Author: Chen Gang <gang.chen.5i5j@xxxxxxxxx> Date: Sun Mar 2 01:35:07 2014 +0800 hw/9pfs/virtio-9p-local.c: use snprintf() instead of sprintf() 'ctx->fs_root' + 'path'/'fullname.data' may be larger than PATH_MAX, so need use snprintf() instead of sprintf() just like another area have done in 9pfs. This could possibly result in the truncation of pathname, which we address in the follow up patch. Signed-off-by: Chen Gang <gang.chen.5i5j@xxxxxxxxx> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> commit 75b7931ec63577acb2dd472eb8d772012f1a4807 Author: Chen Gang <gang.chen.5i5j@xxxxxxxxx> Date: Sun Mar 2 01:34:10 2014 +0800 hw/9pfs/virtio-9p-local.c: move v9fs_string_free() to below "err_out:" When "goto err_out", 'v9fs_string' already was allocated, so still need free 'v9fs_string' before return. Signed-off-by: Chen Gang <gang.chen.5i5j@xxxxxxxxx> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> commit b774539743c52ef605c6e2cbac19376c2757cb86 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Sat Mar 1 08:40:39 2014 +0100 qapi: Add missing null check to opts_start_struct() Argument is null when visiting an unboxed struct. I can't see such a visit in the current code. Fix it anyway. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 25a7017555f1b4aeb543b5d323ff4afb8f9c5437 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Sat Mar 1 08:40:38 2014 +0100 qapi: Clean up superfluous null check in qapi_dealloc_type_str() Argument can't be null. No other Visitor method type_str() checks for null. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 949ceeb31b84dce43e4619b6d7f02cac0e62e1e1 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Sat Mar 1 08:40:37 2014 +0100 qapi: Clean up null checking in generated visitors Visitors get passed a pointer to the visited object. The generated visitors try to cope with this pointer being null in some places, for instance like this: visit_start_optional(m, obj ? &(*obj)->has_name : NULL, "name", &err); visit_start_optional() passes its second argument to Visitor method start_optional. Three out of three methods dereference it unconditionally. I fail to see how this pointer could legitimately be null. All this useless null checking is highly redundant, which Coverity duly reports. About 200 times. Remove the useless null checks. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 56bed4135f139721d42992da3924786282bb0286 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Sat Mar 1 08:40:36 2014 +0100 qapi: Drop unused code in qapi-commands.py Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit a105acbce3954cb31ab30cae04f489dfe07cfd02 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Sat Mar 1 08:40:35 2014 +0100 qapi: Drop nonsensical header guard in generated qapi-visit.c Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 678e48a2e43d1cafbb510c60d7597897b0d90256 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Sat Mar 1 08:40:34 2014 +0100 qapi: Fix licensing of scripts The scripts carry this copyright notice: # This work is licensed under the terms of the GNU GPLv2. # See the COPYING.LIB file in the top-level directory. The sentences contradict each other, as COPYING.LIB contains the LGPL 2.1. Michael Roth says this was a simple pasto, and he meant to refer COPYING. Let's fix that. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 2fc00432830e42e3c24850a379194a61f09e3663 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Sat Mar 1 08:40:33 2014 +0100 tests/qapi-schema: Cover flat union types The test demonstrates a generator bug: the generated struct UserDefFlatUnion doesn't include members for the indirect base UserDefZero. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 7ad993b480d3f4f1261d3374516effd9bff20bc6 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Sat Mar 1 08:40:32 2014 +0100 tests/qapi-schema: Cover union types with base Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit aabbd472a08249335d6a004173b30d552cb70d1d Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Sat Mar 1 08:40:31 2014 +0100 tests/qapi-schema: Cover complex types with base Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 2c38b600109edcad399ca687024b7a7febd80076 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Sat Mar 1 08:40:30 2014 +0100 tests/qapi-schema: Cover anonymous union types Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit c2216a8a7a587e594f50bebbdf81fcf168444b68 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Sat Mar 1 08:40:29 2014 +0100 tests/qapi-schema: Cover simple argument types Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit ab22ad96cea4300a92b400b0c46af2f50a037362 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Sat Mar 1 08:40:28 2014 +0100 tests/qapi-schema: Cover optional command arguments Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 357765fed57de3204cb259db3ffa3737e33ca5c0 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Sat Mar 1 08:40:27 2014 +0100 tests/qapi-schema: Actually check successful QMP command response Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 25254a7191cdaa6cc10edb7bdbbfd0a6d02b9905 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Feb 23 18:02:11 2014 +0100 vl: Remove unneeded include file This file does not depend on windows.h. Cc: Anthony Liguori <aliguori@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit cae8a9289b9ee874bc8711c2629037661061b9c1 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Feb 23 18:02:10 2014 +0100 qga: Remove unneeded include file This file does not depend on windows.h. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 67d065c3db489882dce1502246d5fcca10396ea4 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Feb 23 18:02:09 2014 +0100 qemu-img: Remove unneeded include files There is no dependency on windows.h, and the standard include files are already included by qemu-common.h. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 777872e5c65dabb1d80b8c13427c6a3e58dafe40 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Feb 23 18:02:08 2014 +0100 exec: Remove unneeded include files This file does not depend on windows.h. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit cc99c6f5ff3fb2acfa52764a539e129cada104e4 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Feb 23 18:02:07 2014 +0100 util/iov: Use qemu/sockets.h instead of conditional code Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit aa830cdc28edb69c1fe81c8fd9471ab288ad0926 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 23:51:46 2014 +0000 qjson.h: Remove spurious GCC_FMT_ATTR markup from qobject_from_json() declaration The function qobject_from_json() doesn't actually allow its argument to be a format string -- it passes a NULL va_list* to qobject_from_jsonv(), and the parser code will then never actually interpret %-escape sequences (it tests whether the va_list pointer is NULL and will stop with a parse error). The spurious attribute markup causes clang warnings in some of the test cases where we programmatically construct JSON to feed to qobject_from_json(): tests/test-qmp-input-visitor.c:76:35: warning: format string is not a string literal (potentially insecure) [-Wformat-security] data->obj = qobject_from_json(json_string); ^~~~~~~~~~~ Remove the incorrect attribute. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Suggested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 7edd9ddc979f112287ff5184590830c67ea991bf Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 23:39:46 2014 +0000 tests/test-int128: Don't use __noclone__ attribute on clang clang doesn't support the __noclone__ attribute and emits a warning about it. Fortunately clang also implements a mechanism for asking if a particular attribute is implemented; use it. We assume that if the compiler doesn't support __has_attribute() then it must be GCC and must support __noclone__. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 8ead6018837f13f1ef4a40c3eb5054512c160577 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Feb 20 20:08:31 2014 +0100 stubs: Optimize dependencies for gdbstub.c It does not need qemu-common.h. Including exec/gdbstub.h fixes a warning from static code analyzers and avoids mismatching declarations for xml_builtin. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit c5d3c49896582bb338e19149b23d3613510059fb Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Fri Feb 21 20:52:39 2014 +0100 tcg: Fix typo in comment (dependancies -> dependencies) Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 55e7c29e46f845f503fda3e8cac3f5e0e8b3d984 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Feb 19 06:11:45 2014 +0100 bswap: Modify prototypes of st[wl]_{le, be}_p (avoid type conversions) The functions use uint16_t or uint32_t values, so show this in the function prototypes. Non-optimizing compilers will avoid unnecessary type conversions when generating calls of these inline functions. stq_le_p, stq_be_p already use similar prototypes. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 0064aceb29faea018dfb7cf0bca5d9644272a295 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Feb 19 06:11:44 2014 +0100 bswap: Modify prototype of stb_p (avoid type conversions) The function uses an uint8_t value, so show this in the function prototype. Non-optimizing compilers will avoid unnecessary type conversions from (u)int8_t to int and back to uint8_t when generating calls of this inline function. stw_p, stl_p and stq_p already use similar prototypes. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit de580dafade551cf67607f114ff9b5eeb881cc42 Author: Hani Benhabiles <kroosec@xxxxxxxxx> Date: Tue Feb 18 23:42:36 2014 +0100 object: Report type in error when not user creatable. Signed-off-by: Hani Benhabiles <hani@xxxxxxxxx> Reviewed-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 1c884abeded1fee3680a3f1db655bf70d3b49e97 Author: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Date: Wed Feb 12 17:14:33 2014 +0000 include/qemu/host-utils.h: Trivial typo: ctz->cto Signed-off-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit de92f3f86adc73db1ee8d1eebdfcf3b59476495b Author: Hani Benhabiles <kroosec@xxxxxxxxx> Date: Wed Feb 26 23:09:52 2014 +0100 monitor: Remove left-over code in do_info_profile. This is a left-over from 4a1418e. Signed-off-by: Hani Benhabiles <hani@xxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit ffe9fe3a25b93c045acc4d929056f8ea776a160a Author: Hani Benhabiles <kroosec@xxxxxxxxx> Date: Tue Feb 25 08:10:05 2014 +0100 qerror: Improve QERR_DEVICE_NOT_ACTIVE message The error message as currently used is confusing as there are no "balloon" or "spice" devices. (qemu) balloon 1024 balloon: Device 'balloon' has not been activated With this patch: (qemu) balloon 1024 balloon: No balloon device has been activated Signed-off-by: Hani Benhabiles <hani@xxxxxxxxx> Suggested-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 4864512389b06389501e60d965edb8defb66a0fc Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Feb 24 13:45:01 2014 +0800 qmp: Check for returned data from __json_read in get_events When QEMU process aborts and socket is closed, qmp client will not detect it. When this happens, some qemu-iotests scripts will enter an endless loop waiting for qmp events. It's better we raise an exception in qmp.py to catch this and make the test script stop. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 3eba13ec25341ce473591ff338eab3196890a4eb Author: Peter Lieven <pl@xxxxxxx> Date: Wed Feb 26 10:47:57 2014 +0100 block/vmdk: do not report file offset for compressed extents Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 9147d019f3315d5be97e349aead3ced93ef46c6a Author: Loic Dachary <loic@xxxxxxxxxxx> Date: Wed Jan 8 21:05:38 2014 +0100 discard rbd error output when not relevant in qemu-iotests Suppress rbd progress messages with --no-progress so they are not confused with an error output when comparing test results ( progress is displayed on stderr ). Signed-off-by: Loic Dachary <loic@xxxxxxxxxxx> Reviewed-by: Josh Durgin <josh.durgin@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 69bef7931e8880c709556f8444938d8bb9a16118 Author: Amit Shah <amit.shah@xxxxxxxxxx> Date: Wed Feb 26 15:12:37 2014 +0530 block: use /var/tmp instead of /tmp for -snapshot If TMPDIR is not specified, the default was to use /tmp for the working copy of the block devices. Update this to /var/tmp instead, so systems using tmp-on-tmpfs don't end up inadvertently using RAM for the block device. Signed-off-by: Amit Shah <amit.shah@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4b350f1de1685d7763b3b856eccdedbd691932b4 Author: Benoît Canet <benoit.canet@xxxxxxxxxxx> Date: Sat Feb 22 18:43:42 2014 +0100 qemu-io-test: Disable Quorum test when not compiled in. Quorum is not compiled by default: make the quorum 081 test aware of this. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0c762736df0cce743b4017c41435632dcb866413 Author: Benoît Canet <benoit.canet@xxxxxxxxxxx> Date: Sat Feb 22 18:43:41 2014 +0100 qmp: Make Quorum error events more palatable. Insert quorum QMP events documentation alphabetically. Also change the "ret" errno value by an optional "error" being an strerror(-ret) in the QUORUM_REPORT_BAD qmp event. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a9e6a0cbe2c12c7b5708451d2211d9b00922d605 Author: Benoît Canet <benoit.canet@xxxxxxxxxxx> Date: Sat Feb 22 18:43:40 2014 +0100 qmp: Fix BlockdevOptionQuorum. Fix some nits before QEMU 2.0 freeze. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit adccfbcd6020e928db93b2b4faf0dbd05ffbe016 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Mon Feb 17 11:11:12 2014 -0500 block: gluster - add reopen support. Gluster does parse open flags in its .bdrv_open() implementation, and the .bdrv_reopen_* implementations need to do the same. A new gluster connection to the image file to be created is established in the .bdrv_reopen_prepare(), and the image file opened with the new flags. If this is successful, then the old image file is closed, and the old connection torn down. The relevant structure pointers in the gluster state structure are updated to the new connection. If it is not successful, then the new file handle and connection is abandoned (if it exists), while the old connection is not modified at all. With reopen supported, block-commit (and offline commit) is now also supported for image files whose base image uses the native gluster protocol driver. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1b37b3442f78a77844fdaf7f53e5f04e4ce8f1d6 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Mon Feb 17 11:11:11 2014 -0500 block: gluster - code movements, state storage changes In preparation for supporting reopen on gluster, move flag parsing out to a function. Also, add a NULL check in the gconf cleanup. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 9a05feabd537615b7f3d9d899686e513e71fdc12 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Feb 20 18:28:03 2014 +0100 qemu-iotests: add more tests to the "quick" group None of these needs QEMU_PROG, and they all take but a few seconds. We need to point the launching script to qemu-nbd, though. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7d6dc7f30c4781857ce230333da6ddd21fe0dcde Author: qiaonuohan <qiaonuohan@xxxxxxxxxxxxxx> Date: Tue Feb 18 14:11:38 2014 +0800 dump: add 'query-dump-guest-memory-capability' command 'query-dump-guest-memory-capability' is used to query the available formats for 'dump-guest-memory'. The output of the command will be like: -> { "execute": "query-dump-guest-memory-capability" } <- { "return": { "formats": ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] } Signed-off-by: Qiao Nuohan <qiaonuohan@xxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 4ab23a918249772458fd330758dc0fad96edce50 Author: qiaonuohan <qiaonuohan@xxxxxxxxxxxxxx> Date: Tue Feb 18 14:11:37 2014 +0800 Define the architecture for compressed dump format Signed-off-by: Ekaterina Tumanova <tumanova@xxxxxxxxxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Qiao Nuohan <qiaonuohan@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit b53ccc30c40df52d192e469a86c188a8649c6df3 Author: qiaonuohan <qiaonuohan@xxxxxxxxxxxxxx> Date: Tue Feb 18 14:11:36 2014 +0800 dump: make kdump-compressed format available for 'dump-guest-memory' Make monitor command 'dump-guest-memory' be able to dump in kdump-compressed format. The command's usage: dump [-p] protocol [begin] [length] [format] 'format' is used to specified the format of vmcore and can be: 1. 'elf': ELF format, without compression 2. 'kdump-zlib': kdump-compressed format, with zlib-compressed 3. 'kdump-lzo': kdump-compressed format, with lzo-compressed 4. 'kdump-snappy': kdump-compressed format, with snappy-compressed Without 'format' being set, it is same as 'elf'. And if non-elf format is specified, paging and filter is not allowed. Note: 1. The kdump-compressed format is readable only with the crash utility and makedumpfile, and it can be smaller than the ELF format because of the compression support. 2. The kdump-compressed format is the 6th edition. Signed-off-by: Qiao Nuohan <qiaonuohan@xxxxxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d12f57ec6640d36e380367a0ab6ab9f3f29b6d51 Author: qiaonuohan <qiaonuohan@xxxxxxxxxxxxxx> Date: Tue Feb 18 14:11:35 2014 +0800 dump: add API to write dump pages functions are used to write page to vmcore. vmcore is written page by page. page desc is used to store the information of a page, including a page's size, offset, compression format, etc. Signed-off-by: Qiao Nuohan <qiaonuohan@xxxxxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 64cfba6a47411092c941c8d17256fb5673cc8cbf Author: qiaonuohan <qiaonuohan@xxxxxxxxxxxxxx> Date: Tue Feb 18 14:11:34 2014 +0800 dump: add APIs to operate DataCache DataCache is used to store data temporarily, then the data will be written to vmcore. These functions will be called later when writing data of page to vmcore. Signed-off-by: Qiao Nuohan <qiaonuohan@xxxxxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d0686c7291fe8f0210e7a666f80892fa71395510 Author: qiaonuohan <qiaonuohan@xxxxxxxxxxxxxx> Date: Tue Feb 18 14:11:33 2014 +0800 dump: add API to write dump_bitmap functions are used to write 1st and 2nd dump_bitmap of kdump-compressed format, which is used to indicate whether the corresponded page is existed in vmcore. 1st and 2nd dump_bitmap are same, because dump level is specified to 1 here. Signed-off-by: Qiao Nuohan <qiaonuohan@xxxxxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 298f116827405f37dde10a2a6cbc75d20f9ba99c Author: qiaonuohan <qiaonuohan@xxxxxxxxxxxxxx> Date: Tue Feb 18 14:11:32 2014 +0800 dump: add API to write dump header the functions are used to write header of kdump-compressed format to vmcore. Header of kdump-compressed format includes: 1. common header: DiskDumpHeader32 / DiskDumpHeader64 2. sub header: KdumpSubHeader32 / KdumpSubHeader64 3. extra information: only elf notes here Signed-off-by: Qiao Nuohan <qiaonuohan@xxxxxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 7aad248d3596a1fb94778f2cd215f86a802b3abb Author: qiaonuohan <qiaonuohan@xxxxxxxxxxxxxx> Date: Tue Feb 18 14:11:31 2014 +0800 dump: add members to DumpState and init some of them add some members to DumpState that will be used in writing vmcore in kdump-compressed format. some of them, like page_size, will be initialized in the patch. Signed-off-by: Qiao Nuohan <qiaonuohan@xxxxxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 607dacd0a082a4ea73a7a16a1c70406f37ebacdb Author: qiaonuohan <qiaonuohan@xxxxxxxxxxxxxx> Date: Tue Feb 18 14:11:30 2014 +0800 dump: add support for lzo/snappy kdump-compressed format supports three compression format, zlib/lzo/snappy. Currently, only zlib is available. This patch is used to support lzo/snappy. '--enable-lzo/--enable-snappy' is needed to be specified with configure to make lzo/snappy available for qemu Signed-off-by: Qiao Nuohan <qiaonuohan@xxxxxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 4835ef7784502c231f243c3133054850d23dd837 Author: qiaonuohan <qiaonuohan@xxxxxxxxxxxxxx> Date: Tue Feb 18 14:11:29 2014 +0800 dump: add API to write elf notes to buffer the function can be used by write_elf32_notes/write_elf64_notes to write notes to a buffer. If fd_write_vmcore is used, write_elf32_notes/write_elf64_notes will write elf notes to vmcore directly. Instead, if buf_write_note is used, elf notes will be written to opaque->note_buf at first. Signed-off-by: Qiao Nuohan <qiaonuohan@xxxxxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 5d31babe5c7d854d6b8470bc9fa67a698926e65d Author: qiaonuohan <qiaonuohan@xxxxxxxxxxxxxx> Date: Tue Feb 18 14:11:28 2014 +0800 dump: add API to write vmcore Function is used to write vmcore in flatten format. In flatten format, data is written block by block, and in front of each block, a struct MakedumpfileDataHeader is stored there to indicate the offset and size of the data block. struct MakedumpfileDataHeader { int64_t offset; int64_t buf_size; }; Signed-off-by: Qiao Nuohan <qiaonuohan@xxxxxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit fda053875e69120b2fde5fb34975ef5a49290f12 Author: qiaonuohan <qiaonuohan@xxxxxxxxxxxxxx> Date: Tue Feb 18 14:11:27 2014 +0800 dump: add API to write header of flatten format flatten format will be used when writing kdump-compressed format. The format is also used by makedumpfile, you can refer to the following URL to get more detailed information about flatten format of kdump-compressed format: http://sourceforge.net/projects/makedumpfile/ The two functions here are used to write start flat header and end flat header to vmcore, and they will be called later when flatten format is used. struct MakedumpfileHeader stored at the head of vmcore is used to indicate the vmcore is in flatten format. struct MakedumpfileHeader { char signature[16]; /* = "makedumpfile" */ int64_t type; /* = 1 */ int64_t version; /* = 1 */ }; And struct MakedumpfileDataHeader, with offset and buf_size set to -1, is used to indicate the end of vmcore in flatten format. struct MakedumpfileDataHeader { int64_t offset; /* = -1 */ int64_t buf_size; /* = -1 */ }; Signed-off-by: Qiao Nuohan <qiaonuohan@xxxxxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 6a519918b3f666759e20bcd0bb88378f3e4ffb57 Author: qiaonuohan <qiaonuohan@xxxxxxxxxxxxxx> Date: Tue Feb 18 14:11:26 2014 +0800 dump: add argument to write_elfxx_notes write_elf32_notes/wirte_elf64_notes use fd_write_vmcore to write elf notes to vmcore. Adding parameter "WriteCoreDumpFunction f" makes it available to choose the method of writing elf notes Signed-off-by: Qiao Nuohan <qiaonuohan@xxxxxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit b5ba1cc6260917926781fb79fbb05d53bf586d53 Author: qiaonuohan <qiaonuohan@xxxxxxxxxxxxxx> Date: Tue Feb 18 14:11:25 2014 +0800 dump: const-qualify the buf of WriteCoreDumpFunction WriteCoreDumpFunction is a function pointer that points to the function used to write content in "buf" into core file, so "buf" should be const-qualify. Signed-off-by: Qiao Nuohan <qiaonuohan@xxxxxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit cb48da7f8140b5cbb648d990876720da9cd04d8f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Feb 24 15:53:40 2014 -0800 target-i386: Fix ucomis and comis memory access We were loading 16 bytes for both single and double-precision scalar comparisons. Reported-by: Alexander Bluhm <bluhm@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4e47e39ab0ded72c0af174131ecf49d588d66c12 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Feb 24 14:59:54 2014 -0800 target-i386: Fix SSE status flag corruption When we restore the mxcsr register with FXRSTOR, or set it with gdb, we need to update the various SSE status flags in CPUX86State Reported-by: Richard Purdie <richard.purdie@xxxxxxxxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d2fe51bda8adf33d07c21e034fdc13a1e1fa4e19 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Jan 10 12:38:40 2014 -0800 target-i386: Fix CC_OP_CLR vs PF Parity should be set for a zero result. Cc: qemu-stable@xxxxxxxxxx Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit fbb0621a0f7aae2803d7460fc225402f9ea92000 Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Tue Feb 18 09:08:14 2014 -0500 MAINTAINERS: update status for HMP, QAPI and QMP trees This commit updates the status for the HMP, QAPI and QMP trees from "Supported" to "Maintained". In practice this means that patch review and pull requests may take longer. Also, I'll rely more on reviewers such as Eric Blake so that I'm able to send pull requests regularly. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit cd159d0954f65df61864a85e355acdf7ae7fe0f9 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Feb 12 11:05:13 2014 +0800 QMP: Allow dot separated dict path arguments in qmp-shell As another convenience to allow using commands that expect a dict as argument, this patch adds support for foo.bar=value syntax, similar to command line argument style: (QEMU) blockdev-add options.driver=file options.id=drive1 options.filename=... Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d844a7b6569fb2b5252773444b18841426e5b906 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Feb 27 06:31:33 2014 +0800 modules: Fix building with --enable-modules Compiling util/modules.c with modules enabled fails now. Fix it by including qemu-common.h before #ifdef testing in module.c. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Message-id: 1393453893-12125-1-git-send-email-famz@xxxxxxxxxx Reviewed-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f9a49dfa0202348b543983d61fab441b7374a874 Author: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Date: Tue Feb 4 13:41:53 2014 -0500 file_ram_alloc: unify mem-path,mem-prealloc error handling -mem-prealloc asks to preallocate memory residing on -mem-path path. Currently QEMU exits in case: - Memory file has been created but allocation via explicit write fails. And it fallbacks to malloc in case: - Querying huge page size fails. - Lack of sync MMU support. - Open fails. - mmap fails. Have the same behaviour for all cases: fail in case -mem-path and -mem-prealloc are specified for regions where the requested size is suitable for hugepages. Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 9ba3cf540fb902cbb40f0689868d51a2ac111852 Author: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Date: Tue Feb 25 23:22:07 2014 -0300 kvm-all: exit in case max vcpus exceeded Rather than fall back to TCG (so the user has to discover whats happening, in case of no access to qemu stdout/stderr). Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 9fbee91a131a05e443d7108d7fbdf3ca91020290 Merge: 73795ce 521f438 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 27 16:00:30 2014 +0000 Merge remote-tracking branch 'remotes/kvm/uq/master' into staging * remotes/kvm/uq/master: KVM: Use return value for error print Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 73795cea968ba2e9342a3122cd66d52d13d46a61 Merge: 2ce5868 4b94302 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 27 11:31:51 2014 +0000 Merge remote-tracking branch 'remotes/awilliam/tags/vfio-pci-for-qemu-20140226.0' into staging Updates include: - Coverify fixes for vfio & pci-assign (Markus) - VFIO blacklisting support for known brokwn PCI option ROMs (Bandan) # gpg: Signature made Wed 26 Feb 2014 18:15:28 GMT using RSA key ID 3BB08B22 # gpg: Can't check signature: public key not found * remotes/awilliam/tags/vfio-pci-for-qemu-20140226.0: vfio: blacklist loading of unstable roms qdev-monitor: set DeviceState opts before calling realize pci-assign: Fix potential read beyond buffer on -EBUSY vfio: Fix overrun after readlink() fills buffer completely Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit af87bf290f31d8ef0aaf8f20259fa34e51ed1e7a Author: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Date: Tue Oct 15 21:03:04 2013 +0100 sun4m: Add Sun CG3 framebuffer initialisation function In order to allow the user to choose the framebuffer for sparc-softmmu, add -vga tcx and -vga cg3 options to the QEMU command line. If no option is specified, the default TCX framebuffer is used. Since proprietary FCode ROMs use a resolution of 1152x900, slightly relax the validation rules to allow both displays to be initiated at the higher resolution used by these ROMs upon request (OpenBIOS FCode ROMs default to the normal QEMU sun4m default resolution of 1024x768). Finally move any fprintf(stderr ...) statements in the areas affected by this patch over to the new error_report() function. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> CC: Blue Swirl <blauwirbel@xxxxxxxxx> CC: Anthony Liguori <aliguori@xxxxxxxxxx> CC: Peter Maydell <peter.maydell@xxxxxxxxxx> CC: Bob Breuer <breuerr@xxxxxx> CC: Artyom Tarasenko <atar4qemu@xxxxxxxxx> commit 9eb08a435a5380f3fe07d9019f49c0358cb2d491 Author: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Date: Tue Oct 15 21:03:04 2013 +0100 sun4m: Add Sun CG3 framebuffer and corresponding OpenBIOS FCode ROM The CG3 framebuffer is a simple 8-bit framebuffer for use with operating systems such as early Solaris that do not have drivers for TCX. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> CC: Blue Swirl <blauwirbel@xxxxxxxxx> CC: Anthony Liguori <aliguori@xxxxxxxxxx> CC: Peter Maydell <peter.maydell@xxxxxxxxxx> CC: Bob Breuer <breuerr@xxxxxx> CC: Artyom Tarasenko <atar4qemu@xxxxxxxxx> commit ead4cf04f855575c24e795d7179d93b1601575b7 Author: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Date: Sat Feb 22 22:54:53 2014 +0000 sun4m: fix slavio timer RUN/STOP bit The sun4m architecture has one 'system' timer and one timer per CPU. The CPU timers can be configured in two modes: * 22 bits Counter/Timer. Periodic interrupts. * 54 bits User timer. For profiling. In this mode, the Run/Stop bit controls the timer. The run/stop bit controls the timer only when it is in "User" mode, but its state shall be persistent. Signed-off-by: Olivier Danet <odanet@xxxxxxxxxxxx> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> commit f9681f116ce06612b12ef41d8637f6659255ec98 Author: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Date: Sun Feb 23 17:08:06 2014 +0000 sun4m: Set HostID in NVRAM On SparcStations, the HostID field in the NVRAM is equal to the last three bytes of the MAC address (which is also stored in the NVRAM). This constant is used as an identification/serial number on Solaris. Signed-off-by: Olivier Danet <odanet@xxxxxxxxxxxx> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> commit 7f00eb30febf1054c74b163ced984afcdbf6e670 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Sat Feb 8 12:31:15 2014 +0100 s390x/ipl: Fix crash of ELF images with arbitrary entry points When loading S390 kernels, the current code expects an ELF file with the start address 0x10000. Other ELF files cause a segmentation fault. To avoid these crashes, we should get the start address from the ELF file instead of always using a hard-coded address. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Acked-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 1eecf41b3e8128979dd571f63d0b4c7fedc919c2 Author: Frank Blaschka <blaschka@xxxxxxxxxxxxxxxxxx> Date: Tue Feb 11 08:41:38 2014 +0100 s390x/kvm: Rework priv instruction handlers The current implementation uses the second byte of the instruction to identify the instruction handler. This is not sufficient to support instructions not starting with 0xb2. This patch adds separate handlers for 0xb2, 0xb9 and 0xeb to be able to support the full instruction set. Signed-off-by: Frank Blaschka <blaschka@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Reviewed-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 04c2b5168e242e6fa6901442bd399aa7087effca Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Fri Jan 24 17:18:38 2014 +0100 s390x/kvm: Add missing SIGP CPU RESET order The SIGP order CPU RESET was still missing in the list of our supported handler. This patch now adds a simple implementation, by using the cpu_reset() function that is already available in target-s390x/cpu.c. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit f7d3e466764e0258d0883d90edb7e98ad0b56e18 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Fri Jan 24 16:39:54 2014 +0100 s390x/kvm: Rework SIGP INITIAL CPU RESET handler The s390_cpu_initial_reset() function had two deficiencies: First, it used an ioctl for the destination CPU, and this ioctl could block nearly forever, as long as the destination CPU was running in the SIE loop. Second, it also cleared the general purpose registers - something it should not do according to the Principles of Operations. Since we've already got another function for the initial CPU reset in cpu.c, we can also use that function instead. And by using run_on_cpu() for executing this code, we make sure that the destination CPU is correctly kicked out of kernel mode now. Suggested-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 49f5c9e98ab44700b58e23ca8c17e21850328da1 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Wed Feb 12 09:56:35 2014 +0100 s390x/cpu: Use ioctl to reset state in the kernel Some of the state in the kernel can not be reset from QEMU yet. For this we've got to use the KVM_S390_INITIAL_RESET ioctl to make sure that the state in the kernel is set to the right values during initial CPU reset, too. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Acked-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 0ca3611221d8d80bcf98337f4691addc07df0b08 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Thu Feb 13 09:48:12 2014 +0100 s390-ccw.img: new binary rom to match latest fixes Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 5d739a4787a53da8d787551c8de27ad39fabdb34 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Tue Feb 11 22:46:53 2014 +0100 s390-ccw.img: Fix sporadic errors with ccw boot image - initialize css We have to set the cssid to 0, otherwise the stsch code will return an operand exception without the m bit. In the same way we should set m=0. This case was triggered in some cases during reboot, if for some reason the location of blk_schid.cssid contains 1 and m was 0. Turns out that the qemu elf loader does not zero out the bss section on reboot. The symptom was an dump of the old kernel with several areas overwritten. The bootloader does not register a program check handler, so bios exception jumped back into the old kernel. Lets just use a local struct with a designed initializer. That will guarantee that all other subelements are initialized to 0. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> commit d1028f1b5b4cf83e8af5f48996cf392fb12d391a Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Wed Feb 12 16:17:35 2014 +0100 s390-ccw.img: Fix sporadic reboot hangs: Initialize next_idx The current code does not initialize next_idx in the virtio ring. As the ccw bios will always use guest memory at a fixed location, this queue might != 0 after a reboot. Lets make the initialization explicit. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> commit c804c2a71752dd1e150cde768d8c54b02fa8bad9 Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Fri Dec 20 12:02:17 2013 +0100 s390x/event-facility: exploit realize/unrealize init/exit functionality of abstract SCLPEvent class is now exploiting realize/unrealize. Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 6fbef18a4c8b3cd9c3da4772ed5ddaec9be06fac Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 18 13:59:57 2013 +0100 s390x/event-facility: add support for live migration Add support for live migration using VMStateDescription. Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 477a72a1eff40639761e103f5b7652af7746c48e Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 18 10:10:49 2013 +0100 s390x/event-facility: code restructure Code restructure in order to simplify class hierarchy - remove S390SCLPDevice abstract base class and move function pointers into new SCLPEventFacilityClass - implement SCLPEventFacility as SysBusDevice - use define constants for instance creation strings The following ascii-art shows the class structure wrt the SCLP EventFacility before (CURRENT) and after the restructure (NEW): ---- CURRENT: "s390-sclp-events-bus" +-------------------------+ | SCLPEventsBus | |-------------------------| |BusState qbus | +-------------------------+ +-------------------------+ | SCLPEventFacility | - to be replaced by new SCLPEventFacility, |-------------------------| which will be a SysBusDevice |SCLPEventsBus sbus | |DeviceState *qdev | |unsigned int receive_mask| +-------------------------+ +-------------------------+ | S390SCLPDeviceClass | - to be replaced by new SCLPEventFacilityClass |-------------------------| |DeviceClass qdev | |*(init)() | +-------------------------+ "s390-sclp-event-facility" | instance-of | V "s390-sclp-device" - this is an abstract class +-------------------------+ | S390SCLPDevice (A)| - to be replaced by new SCLPEventFacility |-------------------------| |SysBusDevice busdev | |SCLPEventFacility *ef | | | |*(sclp_command_handler)()| - these 2 go to new SCLPEventFacilityClass |*(event_pending)() | +-------------------------+ ---- NEW: "s390-sclp-events-bus" +-------------------------+ | SCLPEventsBus | |-------------------------| |BusState qbus | +-------------------------+ +-------------------------+ | SCLPEventFacilityClass | |-------------------------| |DeviceClass parent_class | | | |*(init)() | |*(command_handler)() | |*(event_pending)() | +-------------------------+ "s390-sclp-event-facility" +-------------------------+ | SCLPEventFacility | |-------------------------| |SysBusDevice parent_class| |SCLPEventsBus sbus | |unsigned int receive_mask| +-------------------------+ Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 65e526c24e27863b2a0093e1350a8ae558be5936 Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Mon Dec 23 10:25:38 2013 +0100 s390x/event-facility: some renaming Do some renaming to shorten some identifiers and to emphasize sclp. Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Acked-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit e8803d93df1bbaebe015b602a8178b424903bf5f Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Jan 14 12:13:32 2014 +0100 s390x/sclp: Fixed setting of condition code register In the SCLP handler function, the condition code register must only be set if no exception occured. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 6e25280216fc23c8387892f76d961559da124528 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Mon Jan 13 12:55:55 2014 +0100 s390x/sclp: Add missing checks to SCLP handler If the 51 most significant bits of the SCCB address are zero or equal to the prefix, we should throw an specification exception, too. Also moved the check for privileged mode to sclp_service_call() to have all program checks in one place now. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit a0fa2cb8ccf0b73cfd3ac01d557401a2303c0de4 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Mon Jan 13 12:19:03 2014 +0100 s390x/sclp: Fixed the size of sccb and code parameter The pointer to the SCCB should not be limited to 32 bits only. In contrast to this, the command word parameter is only 32 bits (the upper 32 bits should be ignored). Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 9da45bb217db41510684cbfd4e173186eb2f8477 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Fri Feb 7 13:41:58 2014 +0100 s390x/eventfacility: mask out commands As a followup to commit 5f04c14a10fa7f259bc0808f35a0beda49f7821e (s390-sclp: Define New SCLP Codes) we should mask the sclp command not only in base sclp, but also in the event facility. Based on an initial patch from Ralf Hoppe. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 77319f22635e3f0ef86730503b4d18dd9a833529 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Jan 14 13:32:23 2014 +0100 s390x/virtio-hcall: Specification exception for illegal subcodes So far, the DIAG 500 hypervisor call was only setting -EINVAL in R2 when a guest tried to call this function with an illegal subcode. This patch now changes the behavior so that a specification exception is thrown instead, since this is the common behavior of other DIAG functions (and other CPU instructions) when being called with illegal parameters. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit f2c55d1735175ab37ab9f69854460087112d2756 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Mon Jan 13 09:26:49 2014 +0100 s390x/virtio-hcall: Add range check for hypervisor call The handler for diag 500 did not check whether the requested function was in the supported range, so illegal values could crash QEMU in the worst case. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> CC: qemu-stable@xxxxxxxxxx commit 0788082a4b3f41cb453b654d1a66f87adfa794a9 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Wed Jan 22 17:02:46 2014 +0100 s390x/kvm: Fixed bad SIGP SET-ARCHITECTURE handler The SET-ARCHITECTURE handler in QEMU caused a program interruption. This is wrong according to the "Principles of Operations" specification (since SIGP should never cause a program interrupt) and was likely only introduced for debugging purposes. Since we handle SET-ARCHITECTURE in the kernel already and only dropped to user space in case of bad mode parameters, we should just report INVALID PARAMETER in QEMU instead. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 819bd3091e986c1b6b10203a7138a53b849a53e0 Author: Dominik Dingel <dingel@xxxxxxxxxxxxxxxxxx> Date: Thu Sep 5 13:54:39 2013 +0200 s390x/async_pf: Check for apf extension and enable pfault S390 can also use async page faults, to enhance guest scheduling. In case of live migration we want to disable the feature and let all pending request finish. Signed-off-by: Dominik Dingel <dingel@xxxxxxxxxxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 3a553fc65826e0e682ed0fff770ad0d421c6d407 Author: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Date: Tue Jul 16 09:04:04 2013 +0200 s390x/kvm: implement floating-interrupt controller device This patch implements a floating-interrupt controller device (flic) which interacts with the s390 flic kvm_device. Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 216db403d0b032563d82e107429626c08d825535 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Fri Feb 7 12:13:39 2014 +0100 update linux headers to kvm/next This updates the kvm headers to commit d3714010c307d26df251c45be9cd12ab6d41f0c4 KVM: x86: emulator_cmpxchg_emulated should mark_page_dirty in kvm/next. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 2ce5868ca1457d1dcbaa917df98ca1ba28593e40 Merge: 6f6831f c04018e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 22:53:50 2014 +0000 Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20140226' into staging target-arm queue: * fixes for various Coverity-spotted bugs * support new KVM device control API for VGIC * support KVM VGIC save/restore/migration * more AArch64 system mode foundations * support ARMv8 CRC instructions for A32/T32 * PL330 minor fixes and cleanup # gpg: Signature made Wed 26 Feb 2014 17:51:32 GMT using RSA key ID 14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@xxxxxxxxxx>" * remotes/pmaydell/tags/pull-target-arm-20140226: (45 commits) dma/pl330: implement dmaadnh instruction dma/pl330: Fix buffer depth dma/pl330: Add event debugging printfs dma/pl330: Rename parent_obj dma/pl330: printf format type sweep. dma/pl330: Fix misleading type dma/pl330: Delete overly verbose debug printf target-arm: Add support for AArch32 ARMv8 CRC32 instructions include/qemu/crc32c.h: Rename include guards to match filename target-arm: Add utility function for checking AA32/64 state of an EL target-arm: Implement AArch64 view of CPACR target-arm: A64: Implement MSR (immediate) instructions target-arm: Store AIF bits in env->pstate for AArch32 target-arm: A64: Implement WFI target-arm: Get MMU index information correct for A64 code target-arm: Implement AArch64 OSLAR_EL1 sysreg as WI target-arm: Implement AArch64 dummy breakpoint and watchpoint registers target-arm: Implement AArch64 ID and feature registers target-arm: Implement AArch64 generic timers target-arm: Implement AArch64 MPIDR ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 6f6831f61a44fde832ee6fab0cc5632de34cf6b7 Merge: bc3fbad 41310c6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 22:31:10 2014 +0000 Merge remote-tracking branch 'remotes/juanquintela/tags/migration/20140225' into staging migration/next for 20140225 # gpg: Signature made Tue 25 Feb 2014 14:04:31 GMT using RSA key ID 5872D723 # gpg: Can't check signature: public key not found * remotes/juanquintela/tags/migration/20140225: rdma: rename 'x-rdma' => 'rdma' Fix two XBZRLE corruption issues Fix vmstate_info_int32_le comparison/assign qemu_file: use fwrite() correctly Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit bc3fbad816961a5b4a7f51a37472c4ac01effb92 Merge: 28c05ed ad37bb3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 20:04:37 2014 +0000 Merge remote-tracking branch 'remotes/stefanha/tags/net-pull-request' into staging Net patches # gpg: Signature made Tue 25 Feb 2014 13:32:33 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/net-pull-request: virtio-net: use qemu_get_queue() where possible vhost_net: use offload API instead of bypassing it net: remove implicit peer from offload API net: Disable netmap backend when not supported net: add offloading support to netmap backend net: make tap offloading callbacks static net: virtio-net and vmxnet3 use offloading API net: TAP uses NetClientInfo offloading callbacks net: extend NetClientInfo for offloading net: change vnet-hdr TAP prototypes opencores_eth: flush queue whenever can_receive can go from false to true Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 28c05edff54ce583e89d09c9237acff20e9bd48f Merge: d5001cf cd6c883 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 18:22:11 2014 +0000 Merge remote-tracking branch 'remotes/kraxel/tags/pull-audio-3' into staging hda-audio: qom cleanups # gpg: Signature made Mon 24 Feb 2014 12:19:48 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-audio-3: hda-audio: qom cleanups Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4b9430294ed406a00f045d825ada146aecf32309 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Wed Feb 26 10:33:45 2014 -0700 vfio: blacklist loading of unstable roms Certain cards such as the Broadcom BCM57810 have rom quirks that exhibit unstable system behavior duing device assignment. In the particular case of 57810, rom execution hangs and if a FLR follows, the device becomes inoperable until a power cycle. This change blacklists loading of rom for such cards unless the user specifies a romfile or rombar=1 on the cmd line Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 52aa17cbd800b9e71b67cf7f80c3498183d34ec8 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Wed Feb 26 10:32:40 2014 -0700 qdev-monitor: set DeviceState opts before calling realize Setting opts before the realize property is set allows the following patch to make decisions based on whether the user specified "rombar". This also avoids having to create a new tristate property especially for this purpose Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 82d07945652f16078b172d2bd46659e8f5f30d8e Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Feb 26 10:30:03 2014 -0700 pci-assign: Fix potential read beyond buffer on -EBUSY readlink() doesn't write a terminating null byte. assign_failed_examine() passes the unterminated string to strrchr(). Oops. Terminate it. Spotted by Coverity. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 13665a2d2f675341e73618fcd7f9d36b6c68b509 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Feb 26 10:28:36 2014 -0700 vfio: Fix overrun after readlink() fills buffer completely readlink() returns the number of bytes written to the buffer, and it doesn't write a terminating null byte. vfio_init() writes it itself. Overruns the buffer when readlink() filled it completely. Fix by treating readlink() filling the buffer completely as error, like we do in pci-assign.c's assign_failed_examine(). Spotted by Coverity. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit c04018e93390e31b40044f3db92c173fb0ccb3d2 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Feb 26 17:20:09 2014 +0000 dma/pl330: implement dmaadnh instruction Implement the missing DMAADNH instruction. This is a minor variant of the DMAADDH instruction, so factor out to a common implementation for both (dmaadxh). Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 73ab13532a7cae53441da89b46c279b5f50785e3.1393372019.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a5ae7e3984d4bb624d6e8ec95c64fa272deb07fc Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Feb 26 17:20:08 2014 +0000 dma/pl330: Fix buffer depth This is the product of the data-width and the depth arguments, I.e the depth of the FIFO is in terms of data entries and not bytes (which is what the original implementation was suggesting). Fix. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: c34de31031511538ccdb3164b48ee8a6a973ebd4.1393372019.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 432a0a130e203e18656e54f59e817271bf1c078f Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Feb 26 17:20:08 2014 +0000 dma/pl330: Add event debugging printfs These are helpful to anyone trying to debug event sequencing. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: e82a0ad804db3de4f46839e55a9d287735ef870d.1393372019.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 1c8be73d4ec576450f315d6a94fc0c89e200c479 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Feb 26 17:20:08 2014 +0000 dma/pl330: Rename parent_obj As per current QOM conventions. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: abb137347ea1ee9c31487b544f3d5435fb17f6a4.1393372019.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c3143ba87768cbbedece32b90aa5eb5485d6d23b Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Feb 26 17:20:08 2014 +0000 dma/pl330: printf format type sweep. Use PRI formats as appropriate rather than raw %x and %d. This fixes debug printfery on some host platforms. Fix types of debug only variables as appropriate. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: dbb5f5fd048b2d4a3cb5c6357577d11211a7a585.1393372019.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 024c6e2ea575d6ca2e3e1cfb8fcff7f218bb5daf Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Feb 26 17:20:08 2014 +0000 dma/pl330: Fix misleading type This type really should just be a regular int as no usages rely on it's 32 bitness (it's only meaningful as a bit position and not a bit mask). This also fixes a printf which uses the variable with a regular %d. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 2a99d31f377aee371476d9da8fd0d1b7efa30f63.1393372019.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 63a31905cbce5e7c2503dd22bf5977636df271e5 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Feb 26 17:20:07 2014 +0000 dma/pl330: Delete overly verbose debug printf When using event synchronisation, this particular debug printf floods. Just delete it. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: dd94d19493f97c47497b9d8caf74ca43e70d58fd.1393372019.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit eb0ecd5ad908b72dfe4fadf84272616b2de101d1 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Wed Feb 26 17:20:07 2014 +0000 target-arm: Add support for AArch32 ARMv8 CRC32 instructions Add support for AArch32 CRC32 and CRC32C instructions added in ARMv8 and add a CPU feature flag to enable these instructions. The CRC32-C implementation used is the built-in qemu implementation and The CRC-32 implementation is from zlib. This requires adding zlib to LIBS to ensure it is linked for the linux-user binary. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1393411566-24104-3-git-send-email-will.newton@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0956ff5a4e1fceb33e098133dd2b083647bb8eaa Author: Will Newton <will.newton@xxxxxxxxxx> Date: Wed Feb 26 17:20:07 2014 +0000 include/qemu/crc32c.h: Rename include guards to match filename Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1393411566-24104-2-git-send-email-will.newton@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 1f79ee32b556cad0b6db6f7c866ac4e6b4244cc1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:07 2014 +0000 target-arm: Add utility function for checking AA32/64 state of an EL There are various situations where we need to behave differently depending on whether a given exception level is in AArch64 or AArch32 state. The state of the current exception level is stored in env->aarch64, but there's no equivalent guest-visible architected state bits for the status of the exception levels "above" the current one which may still affect execution. At the moment we only support EL1 (ie no EL2 or EL3) and insist that AArch64 capable CPUs run with EL1 in AArch64 state, but these may change in the future, so abstract out the "what state is this?" check into a utility function which can be enhanced later if necessary. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 34222fb8101298ead0e43766340843b469597580 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:06 2014 +0000 target-arm: Implement AArch64 view of CPACR Implement the AArch64 view of the CPACR. The AArch64 CPACR is defined to have a lot of RES0 bits, but since the architecture defines that RES0 bits may be implemented as reads-as-written and we know that a v8 CPU will have no registered coprocessors for cp0..cp13 we can safely implement the whole register this way. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 9cfa0b4e4c3076683b6c528a1a3b43d5a202a497 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:06 2014 +0000 target-arm: A64: Implement MSR (immediate) instructions Implement the MSR (immediate) instructions, which can update the PSTATE SP and DAIF fields. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 4cc35614a056839df8b0675cd16f55e758cd570d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:06 2014 +0000 target-arm: Store AIF bits in env->pstate for AArch32 To avoid complication in code that otherwise would not need to care about whether EL1 is AArch32 or AArch64, we should store the interrupt mask bits (CPSR.AIF in AArch32 and PSTATE.DAIF in AArch64) in one place consistently regardless of EL1's mode. Since AArch64 has an extra enable bit (D for debug exceptions) which isn't visible in AArch32, this means we need to keep the enables in env->pstate. (This is also consistent with the general approach we're taking that we handle 32 bit CPUs as being like AArch64/ARMv8 CPUs but which only run in 32 bit mode.) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 1ed69e82b8f1dc69eb4c3e556a6417885a5dd49c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:06 2014 +0000 target-arm: A64: Implement WFI Implement the WFI instruction for A64; this just involves wiring up the instruction, and adding a gen_a64_set_pc_im() which was accidentally omitted from the A64 decoder top loop. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit d9ea7d290b685844d3603103bc53ad977e6f68a3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:05 2014 +0000 target-arm: Get MMU index information correct for A64 code Emit the correct MMU index information for loads and stores from A64 code, rather than hardwiring it to "always kernel mode", by storing the exception level in the TB flags, and make cpu_mmu_index() return the right answer when the CPU is in AArch64 mode. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit cd5c11b84b2539049e0fdc2c4c5f3e86e88a8bff Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:05 2014 +0000 target-arm: Implement AArch64 OSLAR_EL1 sysreg as WI Define a dummy version of the AArch64 OSLAR_EL1 system register which just ignores writes. Linux will always write to this (it is the OS lock used for debugging), but we don't support debug. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 0b45451e588e35965175c06b832a799a159716f0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:05 2014 +0000 target-arm: Implement AArch64 dummy breakpoint and watchpoint registers In AArch64 the breakpoint and watchpoint registers are mandatory, so the kernel always accesses them on bootup. Implement dummy versions, which read as written but have no actual effect. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit e60cef860f76cd558ee70e1d145eea1c24de20e7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:05 2014 +0000 target-arm: Implement AArch64 ID and feature registers Implement the AArch64-specific ID and feature registers. Although many of these are currently not used by the architecture (and so always zero for all implementations), we define the full set of fields in the ARMCPU struct for symmetry. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit a7adc4b779d24e75d05d43fb6311ab9e6449523a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:05 2014 +0000 target-arm: Implement AArch64 generic timers Implement the AArch64 view of the generic timer system registers. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4b7fff2fabeaa3d13e23b249b855f39f0921048d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:04 2014 +0000 target-arm: Implement AArch64 MPIDR Implement the AArch64 MPIDR system register. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 327ed10fa2331384c1a58c794e0356e6d88089c8 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:04 2014 +0000 target-arm: Implement AArch64 TTBR* Implement the AArch64 TTBR* registers. For v7 these were already 64 bits to handle LPAE, but implemented as two separate uint32_t fields. Combine them into a single uint64_t which can be used for all purposes. Since this requires touching every use, take the opportunity to rename the field to the architectural name. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit a505d7fe5f638c4aaba93150f71968147f7c2b3a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:04 2014 +0000 target-arm: Implement AArch64 VBAR_EL1 Implement the A64 view of the VBAR system register. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit cb2e37dffaab38e962b86b3ca6f4cf0de22d9e69 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:04 2014 +0000 target-arm: Implement AArch64 TCR_EL1 Implement the AArch64 TCR_EL1, which is the 64 bit view of the AArch32 TTBCR. (The uses of the bits in the register are completely different, but in any given situation the CPU will always interpret them one way or the other. In fact for QEMU EL1 is always 64 bit, but we share the state field because this is the correct mapping to permit a future implementation of EL2.) We also make the AArch64 view the 'master' as far as migration and reset is concerned. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 5ebafdf31a22069952cd6c4f4e60df1cb6a6a22e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:03 2014 +0000 target-arm: Implement AArch64 SCTLR_EL1 Implement the AArch64 view of the system control register SCTLR_EL1. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit b0fe2427511232f361942f672511970e5c75eb4b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:03 2014 +0000 target-arm: Implement AArch64 memory attribute registers Implement the AArch64 memory attribute registers. Since QEMU doesn't model caches it does not need to care about memory attributes at all, and we can simply make these read-as-written. We did not previously implement the AArch32 versions of the MAIR registers, which went unnoticed because of the overbroad TLB_LOCKDOWN reginfo definition; provide them now to keep the 64<->32 register relationship clear. We already provided AMAIR registers for 32 bit as simple RAZ/WI; extend that to provide a 64 bit RAZ/WI AMAIR_EL1. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 91e240698f6a82cb73893ee0ce26369aa6232f7b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:03 2014 +0000 target-arm: Implement AArch64 dummy MDSCR_EL1 We don't support letting the guest do debug, but Linux prods the monitor debug system control register anyway, so implement a dummy RAZ/WI version. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 168aa23bb01a1f6266ba9228dfd248617872ca5c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:03 2014 +0000 target-arm: Implement AArch64 TLB invalidate ops Implement the AArch64 TLB invalidate operations. This is the full set of TLBI ops defined for a CPU which doesn't implement EL2 or EL3. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8af35c37d296daa463c0d4ed575a51729afc7f6d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:02 2014 +0000 target-arm: Implement AArch64 cache invalidate/clean ops Implement all the AArch64 cache invalidate and clean ops (which are all NOPs since QEMU doesn't emulate the cache). The only remaining unimplemented cache op is DC ZVA. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit cd4da6317748e3ae2bed5fcc5fb3f81e5c853446 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:02 2014 +0000 target-arm: Implement AArch64 MIDR_EL1 Implement the AArch64 view of the MIDR system register (for AArch64 it is a simple constant, unlike the complicated mess that TI925 imposes on the 32-bit view). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 0eef9d9833df1c2376bd3b761abc6580df15af3b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:02 2014 +0000 target-arm: Implement AArch64 CurrentEL sysreg Implement the CurrentEL sysreg. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 7da845b0f42a791d65045284f90977d636c654cc Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:01 2014 +0000 target-arm: A64: Make cache ID registers visible to AArch64 Make the cache ID system registers (CLIDR, CSSELR, CCSIDR, CTR) visible to AArch64. These are mostly simple 64-bit extensions of the existing 32 bit system registers and so can share reginfo definitions. CTR needs to have a split definition, but we can clean up the temporary user-mode implementation in favour of using the CPU-specified reset value, and implement the system-mode-required semantics of restricting its EL0 accessibility if SCTLR.UCT is not set. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 67ed771dedd2a7c6f094e0d70fb1fde8f5fb79da Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:20:01 2014 +0000 target-arm: Fix raw read and write functions on AArch64 registers The raw read and write functions were using the ARM_CP_64BIT flag in ri->type to determine whether to treat the register's state field as uint32_t or uint64_t; however AArch64 register info structs don't use that flag. Abstract out the "how big is the field?" test into a function and fix it to work for AArch64 registers. For this to work we must ensure that the reginfo structs put into the hashtable have the correct state field for their use, not the placeholder STATE_BOTH. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 855011be05fad72e17e0280d0bab87a4bc840695 Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Wed Feb 26 17:20:01 2014 +0000 hw: arm_gic_kvm: Add KVM VGIC save/restore logic Save and restore the ARM KVM VGIC state from the kernel. We rely on QEMU to marshal the GICState data structure and therefore simply synchronize the kernel state with the QEMU emulated state in both directions. We take some care on the restore path to check the VGIC has been configured with enough IRQs and CPU interfaces that we can properly restore the state, and for separate set/clear registers we first fully clear the registers and then set the required bits. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1392687921-26921-1-git-send-email-christoffer.dall@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 1da41cc1c6c3efbe2ed47228068bd80dbdc49d0e Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Wed Feb 26 17:20:00 2014 +0000 arm: vgic device control api support Support creating the ARM vgic device through the device control API and setting the base address for the distributor and cpu interfaces in KVM VMs using this API. Because the older KVM_CREATE_IRQCHIP interface needs the irq chip to be created prior to creating the VCPUs, we first test if we can use the device control API in kvm_arch_irqchip_create (using the test flag from the device control API). If we cannot, it means we have to fall back to KVM_CREATE_IRQCHIP and use the older ioctl at this point in time. If however, we can use the device control API, we don't do anything and wait until the arm_gic_kvm driver initializes and let that use the device control API. Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1392687720-26806-5-git-send-email-christoffer.dall@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0a6a7ccaae4015aa02bdbce75bafb9d868636655 Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Wed Feb 26 17:20:00 2014 +0000 kvm: Common device control API functions Introduces two simple functions: int kvm_device_ioctl(int fd, int type, ...); int kvm_create_device(KVMState *s, uint64_t type, bool test); These functions wrap the basic ioctl-based interactions with KVM in a way similar to other KVM ioctl wrappers. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1392687720-26806-4-git-send-email-christoffer.dall@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d6032e06d10d20e91729816a8c9c6792e5774ab1 Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Wed Feb 26 17:20:00 2014 +0000 kvm: Introduce kvm_arch_irqchip_create Introduce kvm_arch_irqchip_create an arch-specific hook in preparation for architecture-specific use of the device control API to create IRQ chips. Following patches will implement the ARM irqchip create method to prefer the device control API over the older KVM_CREATE_IRQCHIP API. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1392687720-26806-3-git-send-email-christoffer.dall@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 876074c228ddccffe9bfcf31920202d68777545b Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Wed Feb 26 17:20:00 2014 +0000 linux-headers: Update from v3.14-rc3 Update to tag v3.14-rc3 (6d0abeca3242a88cab8232e4acd7e2bf088f3bc2) Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1392687720-26806-2-git-send-email-christoffer.dall@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 6453fa998a11e133e673c0a613b88484a8231d1d Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Wed Feb 26 17:19:59 2014 +0000 hw/intc/arm_gic: Fix GIC_SET_LEVEL The GIC_SET_LEVEL macro unfortunately overwrote the entire level bitmask instead of just or'ing on the necessary bits, causing active level PPIs on a core to clear PPIs on other cores. Cc: qemu-stable@xxxxxxxxxx Reported-by: Rob Herring <rob.herring@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1393031030-8692-1-git-send-email-christoffer.dall@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c10f7fc3d167799f19d2184f05012b24cc56878d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:19:59 2014 +0000 target-arm: Load correct access bits from ARMv5 level 2 page table descriptors In ARMv5 level 2 page table descriptors, each 4K or 64K page is split into four subpages, each of which can have different access permission settings, which are specified by four two-bit fields in the l2 descriptor. A long-standing cut-and-paste error meant we were using the wrong bits in the virtual address to select the access-permission field for 4K pages. The error has presumably not been noticed before because most guests don't make use of the ability to set the access permissions differently for each 1K subpage: if the guest gives the whole page the same access permissions it doesn't matter which of the 4 AP fields we select. (The whole issue is irrelevant for ARMv7 CPUs anyway because subpages aren't supported there.) Reported-by: Vivek Rai <Vivek.Rai@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1392667690-8731-1-git-send-email-peter.maydell@xxxxxxxxxx commit cf143ad35018c5fc1da6365b45acda2b34aba90a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:19:59 2014 +0000 hw/arm/musicpal: Remove nonexistent CDTP2, CDTP3 registers The ethernet device in the musicpal only has two tx queues, but we modelled it with four CTDP registers, presumably a cut and paste from the rx queue registers. Since the tx_queue[] array is only 2 entries long this allowed a guest to overrun this buffer. Remove the nonexistent registers. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1392737293-10073-1-git-send-email-peter.maydell@xxxxxxxxxx Acked-by: Jan Kiszka <jan.kiszka@xxxxxx> Cc: qemu-stable@xxxxxxxxxx commit fce0a826083e0416981e2ea9518ce5faa75b81a3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:19:58 2014 +0000 hw/intc/exynos4210_combiner: Don't overrun output_irq array in init The Exynos4210 combiner has IIC_NIRQ inputs and IIC_NGRP outputs; use the correct constant in the loop initializing our output sysbus IRQs so that we don't overrun the output_irq[] array. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1392659611-8439-1-git-send-email-peter.maydell@xxxxxxxxxx Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Cc: qemu-stable@xxxxxxxxxx commit 775fda92a1b52c784cd51c095d67fcca7250e1e5 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:19:58 2014 +0000 target-arm: Fix incorrect arithmetic constructing short-form PAR for ATS ops Correct some obviously nonsensical bit manipulation spotted by Coverity when constructing the short-form PAR value for ATS operations. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1392659525-8335-1-git-send-email-peter.maydell@xxxxxxxxxx commit cba933b2257ef0ad241756a0ff86bc0acda685ca Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:19:58 2014 +0000 hw/timer/arm_timer: Avoid array overrun for bad addresses The integrator's timer read/write functions log an error for bad addresses in guest accesses, but were falling through and using an out of bounds array index rather than returning early. Fix this. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Message-id: 1392647854-8067-4-git-send-email-peter.maydell@xxxxxxxxxx Cc: qemu-stable@xxxxxxxxxx commit 106a73b6d200035c5156f90b5f9b6a53d3adb43b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:19:58 2014 +0000 hw/net/stellaris_enet: Avoid unintended sign extension Add a cast to avoid an unintended sign extension that would mean we returned 0xffffffff in the high 32 bits for an IA0 read if bit 31 in the MAC address was 1. (This is harmless since we'll only be doing 4 byte reads, but it could be confusing, so best avoided.) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Message-id: 1392647854-8067-3-git-send-email-peter.maydell@xxxxxxxxxx commit ec1efab95767312ff4afb816d0d4b548e093b031 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 26 17:19:57 2014 +0000 hw/misc/arm_sysctl: Fix bad boundary check on mb clock accesses Fix incorrect use of sizeof() rather than ARRAY_SIZE() to guard accesses into the mb_clock[] array, which was allowing a malicious guest to overwrite the end of the array. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Message-id: 1392647854-8067-2-git-send-email-peter.maydell@xxxxxxxxxx Cc: qemu-stable@xxxxxxxxxx commit d77f7779b4d74354b3444ceb0f93105ced3c26c8 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Feb 21 17:43:09 2014 +0100 fsdev: Fix overrun after readlink() fills buffer completely readlink() returns the number of bytes written to the buffer, and it doesn't write a terminating null byte. do_readlink() writes it itself. Overruns the buffer when readlink() filled it completely. Fix by reserving space for the null byte when calling readlink(), like we do elsewhere. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> commit d5001cf787ad0514839a81d0f2e771e01e076e21 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Feb 25 16:42:23 2014 -0800 xilinx: Delete hw/include/xilinx.h This is now obsolete - remove the header and all its inclusions. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit d91a68a73b6457c22b743e158e36894ccaa489bc Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Feb 25 16:41:49 2014 -0800 xilinx: Inline usages of xilinx_axi*_init() Inline the only usage of each of xilinx_axiethernet_init and xilinx_axidma_init. Converts this init to at least a semi-recent QOM styling. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit b8d4e1c43b06caadf96c350511201fd50642e4f2 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Feb 25 16:41:14 2014 -0800 xilinx: Inline usage of xilinx_ethlite_create() Inline the only usage. Converts this init to at least a semi-recent QOM styling. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 29873712e6f82d4dafd7ab8cff930136f92a0e06 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Feb 25 16:40:39 2014 -0800 xilinx: Inline usages of xilinx_timer_create() Inline these usages. Converts these init to at least a semi-recent QOM styling. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 13c9bfbfbb3e20d5b58c7760d3338e7a3948ecd8 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Feb 25 16:40:04 2014 -0800 xilinx: Inline usages of xilinx_intc_create() Inline these usages. Converts these init to at least a semi-recent QOM styling. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 8174196b7f8e82a2f17aa2ab0ba1a791c610fbb1 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Feb 25 16:39:29 2014 -0800 microblaze/ml605: Define macros for irq/memory maps Define (missing) macros for the interrupt and memory maps for the sake of self documentation. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 81cce07ec6217351d291fc318fb8bf2d8f865032 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Feb 25 16:38:54 2014 -0800 ppc/virtex_ml507: Define macros for irq/memory maps Define macros for the interrupt and memory maps for the sake of self documentation. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 05a738c4eca9e809226dec4b83624a3bad8066ee Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Feb 25 16:38:19 2014 -0800 microblaze/s3adsp_1800: Define macros for irq map Define macros for the interrupt map for the sake of self documentation. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit aa0d1f448871314bfc535da97eb003fe7766d4c2 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Feb 25 17:36:55 2014 +0100 modules: do not include gmodule-2.0 in static builds gmodule-2.0's pkg-config files include -Wl,--export-dynamic, which breaks static builds. It is a glib bug, but we need to support --static builds for the linux-user targets, and in the end all that is needed to fix this is: * outlaw --enable-modules --static, which makes little sense anyway * only include gmodule-2.0's cflags and ldflags if --enable-modules is specified on the command line. Reported-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Message-id: 1393346215-5636-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a89d97df1f6d9f5bd6403a9d91d9d7cd86bdd394 Merge: 0459650 9c70434 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Feb 25 15:17:24 2014 +0000 Merge remote-tracking branch 'remotes/spice/tags/pull-spice-3' into staging qxl: add sanity check # gpg: Signature made Mon 24 Feb 2014 12:01:27 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/spice/tags/pull-spice-3: qxl: add sanity check Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit ad37bb3b000963b36b5c30f5a4239cfbc4fe8725 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Feb 20 12:14:09 2014 +0100 virtio-net: use qemu_get_queue() where possible qemu_get_queue() is a shorthand for qemu_get_subqueue(n->nic, 0). Use the shorthand where possible. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e3e48565c1553f9ab4c34c2388287a013ef30deb Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Feb 20 12:14:08 2014 +0100 vhost_net: use offload API instead of bypassing it There is no need to access backend->info->has_vnet_hdr() and friends anymore. Use the qemu_has_vnet_hdr() API instead. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d6085e3ace20bc9b0fa625d8d79b22668710e217 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Feb 20 12:14:07 2014 +0100 net: remove implicit peer from offload API The virtio_net offload APIs are used on the NIC's peer (i.e. the tap device). The API was defined to implicitly use nc->peer, saving the caller the trouble. This wasn't ideal because: 1. There are callers who have the peer but not the NIC. Currently they are forced to bypass the API and access peer->info->... directly. 2. The rest of the net.h API uses nc, not nc->peer, so it is inconsistent. This patch pushes nc->peer back up to callers. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 41310c68781d742fa9bbfd5fcb1df9b7f23f5759 Author: Michael R. Hines <mrhines@xxxxxxxxxx> Date: Thu Dec 19 04:52:01 2013 +0800 rdma: rename 'x-rdma' => 'rdma' As far as we can tell, all known bugs have been fixed: 1. Parallel migrations are working 2. IPv6 migration is working 3. virt-test is working I'm not comfortable sending the revised libvirt patch until this is accepted or review suggestions are addressed, (including pin-all support. It does not make sense to remove experimental for one thing and not the other. That's too many trips through the libvirt community). Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael R. Hines <mrhines@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 6d3cb1f970ee85361618f7ff02869180394e012d Author: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Date: Thu Feb 13 19:44:45 2014 +0000 Fix two XBZRLE corruption issues Push zero'd pages into the XBZRLE cache A page that was cached by XBZRLE, zero'd and then XBZRLE'd again was being compared against a stale cache value Don't use 'qemu_put_buffer_async' to put pages from the XBZRLE cache Since the cache might change before the data hits the wire Signed-off-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 24a370ef2351dc596a7e47508b952ddfba79ef94 Author: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Date: Wed Feb 12 17:20:10 2014 +0000 Fix vmstate_info_int32_le comparison/assign Fix comparison of vmstate_info_int32_le so that it succeeds if loaded value is (l)ess than or (e)qual When the comparison succeeds, assign the value loaded This is a change in behaviour but I think the original intent, since the idea is to check if the version/size of the thing you're loading is less than some limit, but you might well want to do something based on the actual version/size in the file Fix up comment and name text Signed-off-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit aded6539d983280212e08d09f14157b1cb4d58cc Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Feb 11 22:56:00 2014 +0100 qemu_file: use fwrite() correctly fwrite() returns the number of items written. But when there is one error, it can return a short write. In the particular bug that I was tracking, I did a migration to a read-only filesystem. And it was able to finish the migration correctly. fwrite() never returned a negative error code, nor zero, always 4096. (migration writes chunks of about 14000 bytes). And it was able to "complete" the migration with success (yes, reading the file was a bit more difficult). To add insult to injury, if your amount of memory was big enough (12GB on my case), it overwrote some important structure, and from them, malloc failed. This check makes the problem go away. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 0459650d94d18218808fcabc8c3227d2ee99af39 Merge: 05fd3bf a749f42 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Feb 25 12:30:01 2014 +0000 Merge remote-tracking branch 'remotes/mdroth/qga-pull-2014-02-24' into staging * remotes/mdroth/qga-pull-2014-02-24: qemu-ga: isa-serial support on Windows qga: Fix memory allocation pasto qga: Don't require 'time' argument in guest-set-time command qga: vss-win32: Fix interference with snapshot deletion by other VSS request qga: vss-win32: Fix interference with snapshot creation by other VSS requesters qga: vss-win32: Use NULL as an invalid pointer for OpenEvent and CreateEvent Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 05fd3bf2a1c9fc26414d3cf608732c40d0d9eb23 Merge: e7a1d6c 604e1f9 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Feb 25 11:54:40 2014 +0000 Merge remote-tracking branch 'remotes/xtensa/tags/20140224-xtensa' into staging Xtensa fixes and improvements queue 2014-02-24: - add support for ML605 and KC705 FPGA boards; - flush opencores_eth queue when new RX descriptor is available; - add basic checks to cache opcodes; - make core configuration available to tests; - implement HW config ID special registers. # gpg: Signature made Mon 24 Feb 2014 00:52:42 GMT using RSA key ID F83FA044 # gpg: Good signature from "Max Filippov <max.filippov@xxxxxxxxxxxxxxxxxx>" # gpg: aka "Max Filippov <jcmvbkbc@xxxxxxxxx>" * remotes/xtensa/tags/20140224-xtensa: target-xtensa: provide HW confg ID registers target-xtensa: refactor standard core configuration target-xtensa: add basic tests for cache opcodes target-xtensa: allow using core configuration in tests target-xtensa: add overridable test_init macro target-xtensa: add basic checks to icache opcodes target-xtensa: add basic checks to dcache opcodes target-xtensa: add RRRI4 opcode format fields opencores_eth: flush queue whenever can_receive can go from false to true hw/xtensa: add support for ML605 and KC705 FPGA board Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0a985b37272b563b1f8414431c6064eb1aa0c97b Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Thu Feb 20 15:40:43 2014 +0100 net: Disable netmap backend when not supported This patch fixes configure so that the netmap backend is not compiled in if the host doesn't support an API version >= 11. A version upper bound (15) has been added so that the netmap API can be extended with some minor features without requiring QEMU code modifications. Moreover, some changes have been done to net/netmap.c in order to reflect the current netmap API/ABI (11). The NETMAP_WITH_LIBS macro makes possible to include some utilities (e.g. netmap ring macros, D(), RD() and other high level functions) through the netmap headers. In this way we get rid of the D and RD macro definitions in the QEMU code, and we open the way for further code simplifications that will be introduced by future patches. Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f6c65bfb93fd90f69a11fd1db1e7b2cebb056b01 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Thu Feb 6 17:02:20 2014 +0100 net: add offloading support to netmap backend Whit this patch, the netmap backend supports TSO/UFO/CSUM offloadings, and accepts the virtio-net header, similarly to what happens with TAP. The offloading callbacks in the NetClientInfo interface have been implemented. Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3bac80d31af9d38d02e80d1541a1ea8e70067bad Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Thu Feb 6 17:02:19 2014 +0100 net: make tap offloading callbacks static Since TAP offloadings are manipulated through a new API, it's not necessary to export them in include/net/tap.h anymore. Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit cf528b89580797050b8cf60fee6247f35531a675 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Thu Feb 6 17:02:18 2014 +0100 net: virtio-net and vmxnet3 use offloading API With this patch, virtio-net and vmxnet3 frontends make use of the qemu_peer_* API for backend offloadings manipulations, instead of calling TAP-specific functions directly. We also remove the existing checks which prevent those frontends from using offloadings with backends different from TAP (e.g. netmap). Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2e753bcc7db1a7d2af0d47c0ae7e82a04ce69d63 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Thu Feb 6 17:02:17 2014 +0100 net: TAP uses NetClientInfo offloading callbacks The TAP NetClientInfo structure is inizialized with the TAP-specific functions that manipulates offloading features. Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1f55ac4586bfae81b1e805fb2f0713cb21501ae2 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Thu Feb 6 17:02:16 2014 +0100 net: extend NetClientInfo for offloading Some new callbacks have been added to generalize the operations done by virtio-net and vmxnet3 frontends to manipulate TAP offloadings. Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e96dfd110ee1ad70e7ddbfae01ca95c66f70dac0 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Thu Feb 6 17:02:15 2014 +0100 net: change vnet-hdr TAP prototypes The tap_has_vnet_hdr() and tap_has_vnet_hdr_len() functions used to return int, even though they only return true/false values. This patch changes the prototypes to return bool. Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6e50d18847a76704c8a49e406084a2321117b954 Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Mon Feb 3 08:20:02 2014 +0400 opencores_eth: flush queue whenever can_receive can go from false to true The following registers control whether MAC can receive frames: - MODER.RXEN bit that enables/disables receiver; - TX_BD_NUM register that specifies number of RX descriptors. Notify QEMU networking core when the MAC is ready to receive frames. Discard frame and raise BUSY interrupt when the frame arrives but the current RX descriptor is not empty. Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e7a1d6c52a3ac6e76e5653c830b2545e0a4043d3 Merge: c58e291 6141f3b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Feb 25 10:50:11 2014 +0000 Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging Block patches # gpg: Signature made Fri 21 Feb 2014 21:42:24 GMT using RSA key ID C88F2FD6 # gpg: Good signature from "Kevin Wolf <kwolf@xxxxxxxxxx>" * remotes/kevin/tags/for-upstream: (54 commits) iotests: Mixed quorum child device specifications quorum: Simplify quorum_open() quorum: Add unit test. quorum: Add quorum_open() and quorum_close(). quorum: Implement recursive .bdrv_recurse_is_first_non_filter in quorum. quorum: Add quorum_co_flush(). quorum: Add quorum_invalidate_cache(). quorum: Add quorum_getlength(). quorum: Add quorum mechanism. quorum: Add quorum_aio_readv. blkverify: Extract qemu_iovec_clone() and qemu_iovec_compare() from blkverify. quorum: Add quorum_aio_writev and its dependencies. quorum: Create BDRVQuorumState and BlkDriver and do init. quorum: Create quorum.c, add QuorumChildRequest and QuorumAIOCB. check-qdict: Test termination of qdict_array_split() check-qdict: Adjust test for qdict_array_split() qdict: Extract non-QDicts in qdict_array_split() qemu-config: Sections must consist of keys qemu-iotests: Check qemu-img command line parsing qemu-img: Allow -o help with incomplete argument list ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c58e291591dbc1c846fa152d4792554803405ebb Merge: 6dedf05 58da5b1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Feb 24 16:12:55 2014 +0000 Merge remote-tracking branch 'remotes/sstabellini/xen-140220' into staging * remotes/sstabellini/xen-140220: xen_disk: fix io accounting Call pci_piix3_xen_ide_unplug from unplug_disks Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 6dedf0522c3fdeb10fe27d4aef35f4c57f3d0806 Merge: 98b21dc f966f9d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Feb 24 15:37:59 2014 +0000 Merge remote-tracking branch 'remotes/bonzini/configure' into staging * remotes/bonzini/configure: build: softmmu targets do not have a "main.o" file configure: Disable libtool if -fPIE does not work with it (bug #1257099) block: convert block drivers linked with libs to modules Makefile: introduce common-obj-m and block-obj-m for DSO Makefile: install modules with "make install" module: implement module loading rules.mak: introduce DSO rules darwin: do not use -mdynamic-no-pic block: use per-object cflags and libs rules.mak: allow per object cflags and libs rules.mak: fix $(obj) to a real relative path util: Split out exec_dir from os_find_datadir Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 98b21dcdb331798709edafcd65b5b7a1e07302db Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 15:10:16 2014 +0000 configure: check that C++ compiler actually works Check that the C++ compiler works with the C compiler; if it does not, then don't pass CXX to the build process. This fixes a regression where QEMU was no longer building if the build environment didn't have a C++ compiler (introduced in commit 3144f78b, which incorrectly assumed that rules.mak would only see a non-empty $(CXX) if configure had actually found a working C++ compiler). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reported-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reported-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Tested-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Tested-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Message-id: 1392909016-14028-1-git-send-email-peter.maydell@xxxxxxxxxx commit 9c70434f825fd0d2e89d1aa0f872159378d0aab3 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Feb 19 11:40:17 2014 +0100 qxl: add sanity check Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit cd6c88305f2ae8fe335a001058032e03f0ff4b4e Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Jan 21 17:10:04 2014 +0100 hda-audio: qom cleanups Add HDA_AUDIO type and macro, drop DO_UPCAST(). Had to add a abstract hda audio class as parent for all hda-* variants to make that fly. Killed some init code duplication while being at it. Cc: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 604e1f9cd0602e92ba49a27dd3a46db3d29f882e Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Sat Feb 15 20:49:09 2014 +0400 target-xtensa: provide HW confg ID registers Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> commit 676056d4f1598f3f368da26fdc43371e8ab3a7fb Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Sat Feb 15 20:58:47 2014 +0400 target-xtensa: refactor standard core configuration Coalesce all standard configuration sections into single DEFAULT_SECTIONS macro for all cores. This allows to add new features in a single place: overlay_tool.h Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> commit 2c09eee112677c64a5e060eb9d491981843d7531 Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Tue Feb 11 12:22:19 2014 +0400 target-xtensa: add basic tests for cache opcodes Test that non-locking prefetch operations don't cause exceptions on missing TLB and that other 'hit' cache operations do. Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> commit a2e67072b7c3b2abf70d0a11918723a5dd841a05 Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Mon Feb 10 20:20:52 2014 +0400 target-xtensa: allow using core configuration in tests Add path to the core configuration directory to test build command and replace .include asm directive with #include to enable preprocessing. Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> commit d0fa1f0df3c8c269df083e2c8a10dfad09dffcf3 Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Mon Feb 10 12:26:45 2014 +0400 target-xtensa: add overridable test_init macro Some test suites, like MMU, need per-test initialization. Don't make them redefine test macro, add test_init for that purpose. Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> commit e848dd4248230c0463841a16d1fa9eb054a2d211 Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Fri Feb 7 15:57:22 2014 +0400 target-xtensa: add basic checks to icache opcodes Check privilege level for privileged instructions (IHU, III, IIU and IPFL are privileged), memory accessibility for instructions that reference memory (IH* and IPFL) and windowed register validity for all instruction cache instructions. Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> commit 7c84259019a945e4ff275994b96c0de4496d2a5e Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Fri Feb 7 15:57:22 2014 +0400 target-xtensa: add basic checks to dcache opcodes Check privilege level for privileged instructions (DHI, DHU, DII, DIU, DIWB, DIWBI, DPFL are privileged), memory accessibility for instructions that reference memory (all DH* and DPFL) and windowed register validity for all data cache instructions. Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> commit 6502668237a27985dd386c6e42b46e8977b4f2c0 Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Mon Feb 10 09:16:33 2014 +0400 target-xtensa: add RRRI4 opcode format fields This encoding is used by cache instructions. Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> commit b807b5ff894b79e31ccd2ff5bd023577ecf45a6a Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Mon Feb 3 07:57:55 2014 +0400 opencores_eth: flush queue whenever can_receive can go from false to true The following registers control whether MAC can receive frames: - MODER.RXEN bit that enables/disables receiver; - TX_BD_NUM register that specifies number of RX descriptors. Notify QEMU networking core when the MAC is ready to receive frames. Discard frame and raise BUSY interrupt when the frame arrives but the current RX descriptor is not empty. Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e0db904d1dc97be0eed7fbb52954d03ec05bee07 Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Sun Feb 2 02:44:41 2014 +0400 hw/xtensa: add support for ML605 and KC705 FPGA board Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> commit a749f42da5129bbfadea6926964d9a213ed4bc5f Author: Miki Mishael <mmishael@xxxxxxxxxx> Date: Wed Jan 15 04:33:44 2014 -0500 qemu-ga: isa-serial support on Windows Add support for isa-serial method for qemu-ga on Windows, Added -p command line parameter for serial port name specification, e.g. "-p COM15". Signed-off-by: Miki Mishael <mmishael@xxxxxxxxxx> Signed-off-by: Dmitry Fleytman <dfleytma@xxxxxxxxxx> *added default isa-serial path to help output Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 10b7c5dd0da1a92182e87f5fc1887d779ad1a9e8 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Feb 21 13:36:49 2014 +0100 qga: Fix memory allocation pasto qmp_guest_file_seek() allocates memory for a GuestFileRead object instead of the GuestFileSeek object it actually uses. Harmless, because the GuestFileRead is slightly larger. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 2c958923bc09b1faf2505a988b4b1c458580e9ac Author: Michal Privoznik <mprivozn@xxxxxxxxxx> Date: Fri Jan 31 11:29:51 2014 +0100 qga: Don't require 'time' argument in guest-set-time command As the description to the guest-set-time states, the command is there to ease time synchronization after resume. If guest was suspended for longer period of time, its system time can go off so badly, that even NTP refuses to set it. That's why the command was invented: to give users chance to set the time (not necessarily 100% correct). However, there's is no real need for us to require users to pass an arbitrary time. Especially if we can read the correct value from RTC (boiling down to reading host's time). Hence this commit enables logic: guest-set-time() == guest-set-time($now_from_rtc) Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit d9e1f574cb6eac0a3a2f97b67d2e7a3ad9c1dc95 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Mon Jan 13 12:25:39 2014 -0500 qga: vss-win32: Fix interference with snapshot deletion by other VSS request When a VSS requester such as vshadow.exe or diskshadow.exe requests to delete snapshots, qemu-ga VSS provider's DeleteSnapshots() is also called and returns E_NOTIMPL, that makes the deletion fail. To avoid this issue, return S_OK and set values that represent no snapshots are deleted by qemu-ga VSS provider. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Gal Hammer <ghammer@xxxxxxxxxx> Reviewed-by: Yan Vugenfirer <yvugenfi@xxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit ff8adbcfdbbd9c0f2b01ff8a32bc75082fdd9844 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Mon Jan 13 12:25:29 2014 -0500 qga: vss-win32: Fix interference with snapshot creation by other VSS requesters When a VSS requester such as vshadow.exe or diskshadow.exe requests to create disk snapshots, Windows may choose qemu-ga VSS provider if it is only provider registered on the system. However, because it provides only a function to freeze the filesystem, the snapshotting fails. This patch adds a check into CQGAVssProvider::IsVolumeSupported() to reject the request from other VSS requesters, so that the other provider is chosen. The check of requester is done by confirming event channels between qemu-ga's requester and provider established. To ensure that the events are initialized when CQGAVssProvider::IsVolumeSupported() is called, it moves the initialization earlier. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Gal Hammer <ghammer@xxxxxxxxxx> Reviewed-by: Yan Vugenfirer <yvugenfi@xxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 4c1b8f1e8357d85c613d779596e4079cc581d74f Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Mon Jan 13 12:25:23 2014 -0500 qga: vss-win32: Use NULL as an invalid pointer for OpenEvent and CreateEvent OpenEvent and CreateEvent WinAPI return NULL when failed to open/create events handles, instead of INVALID_HANDLE_VALUE (although their return types are HANDLE). This replaces INVALID_HANDLE_VALUE related to event handles with NULL. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Gal Hammer <ghammer@xxxxxxxxxx> Reviewed-by: Yan Vugenfirer <yvugenfi@xxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit d9738fd2463f71530d8d92fbb52ebdd1d78074fc Author: Peter Lieven <pl@xxxxxxx> Date: Sat Feb 22 13:17:24 2014 +0100 block/iscsi: fix segfault if writesame fails commit fa6252b0 introduced a segfault because it tries to read iTask.task->sense after iTask.task has been freed. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 64cc22841e72d37d577416f5836155ecd0a9bfb6 Author: Roland Dreier <roland@xxxxxxxxxxxxxxx> Date: Wed Feb 19 08:28:41 2014 -0800 scsi-disk: Add support for port WWN and index descriptors in VPD page 83h To make a VM more convincing to my application, it's useful to be able to add a port WWN and relative target port index to the descriptors returned for VPD page 83h. Add device properties to allow setting these, and return them from INQUIRY commands. Signed-off-by: Roland Dreier <roland@xxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 24d3bd67aca958c8ea103646d9d326de00056e4d Author: Peter Lieven <pl@xxxxxxx> Date: Mon Feb 17 18:34:08 2014 +0100 block/iscsi: query for supported VPD pages this patch ensures that we only query for block provisioning and block limits vpd pages if they are advertised. It also cleans up the inquiry code and eliminates some redundant code. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 837c390137193e715fee20b35c0ddb164b1c4fa4 Author: Peter Lieven <pl@xxxxxxx> Date: Tue Feb 18 13:08:39 2014 +0100 block/iscsi: fix deadlock on scsi check condition the retry logic was broken because the complete status of the task structure was not reset. this resulted in an infinite loop retrying the command over and over. CC: qemu-stable@xxxxxxxxxx Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 7ef8cf9a0861b6f67f5e57428478c31bfd811651 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jan 29 18:47:39 2014 +0100 scsi-bus: Fix transfer length for VERIFY with BYTCHK=11b The transfer length depends on field BYTCHK, which is encoded in byte 1, bits 1..2. However, the guard for for case BYTCHK=11b doesn't work, and we get case 01b instead. Fix it. Note that since emulated scsi-hd fails the command outright, it takes SCSI passthrough of a device that actually implements VERIFY with BYTCHK=11b to make the bug bite. Screwed up in commit d12ad44. Spotted by Coverity. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 703dd81aca15ef1d91dba013b6b66c6e3ff88628 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Jan 23 13:57:21 2014 +0100 scsi: report thin provisioning errors with werror=report SCSI defines a status code for when a thin-provisioned LUNs would exceed the allocated space, map ENOSPC to it. Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c5f52875b980e54e6bebad6121c76863356e1d7f Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Jan 24 15:02:24 2014 +0800 scsi: Change scsi sense buf size to 252 Current buffer size fails the assersion check in like hw/scsi/scsi-bus.c:1655: assert(req->sense_len <= sizeof(req->sense)); when backend (block/iscsi.c) returns more data then 96. Exercise the core dump path by booting an Gentoo ISO with scsi-generic device backed with iscsi (built with libiscsi 1.7.0): x86_64-softmmu/qemu-system-x86_64 \ -drive file=iscsi://localhost:3260/iqn.foobar/0,if=none,id=drive-disk \ -device virtio-scsi-pci,id=scsi1,bus=pci.0,addr=0x6 \ -device scsi-generic,drive=drive-disk,bus=scsi1.0,id=iscsi-disk \ -boot d \ -cdrom gentoo.iso qemu-system-x86_64: hw/scsi/scsi-bus.c:1655: scsi_req_complete: Assertion `req->sense_len <= sizeof(req->sense)' failed. According to SPC-4, section 4.5.2.1, 252 is the limit of sense data. So increase the value to fix it. Also remove duplicated define for the macro. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 6141f3bd6904df7cf9519c6444a14a608b9874c4 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Feb 21 22:30:38 2014 +0100 iotests: Mixed quorum child device specifications Add a test case to test 081 for mixing full option dicts and reference strings of specifying the quorum child block devices through QMP. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8a87f3d72279acb89f3d09b28d285d2fb6a7decf Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Feb 21 22:30:37 2014 +0100 quorum: Simplify quorum_open() Although it may not look like it, this patch simplifies quorum_open(). qdict_array_split() is now able to return QLists with different objects than only QDicts, therefore it will now do all the work and quorum_open() does not have to handle reference strings by itself. This allows mixing full option dicts and reference strings for specifying the child block devices of quorum; furthermore, it improves handling of malformed specifications. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c7fc5bc2a4d89ccdb1ffabc720e7c87558c9aaef Author: Benoît Canet <benoit.canet@xxxxxxxxxxx> Date: Fri Feb 21 22:21:21 2014 +0100 quorum: Add unit test. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c88a1de51ab2f26a9a37ffc317249736de8c015c Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Fri Feb 21 22:21:20 2014 +0100 quorum: Add quorum_open() and quorum_close(). Example of command line: -drive if=virtio,driver=quorum,\ children.0.file.filename=1.raw,\ children.0.node-name=1.raw,\ children.0.driver=raw,\ children.1.file.filename=2.raw,\ children.1.node-name=2.raw,\ children.1.driver=raw,\ children.2.file.filename=3.raw,\ children.2.node-name=3.raw,\ children.2.driver=raw,\ vote-threshold=2 blkverify=on with vote-threshold=2 and two files can be passed to emulate blkverify. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 98a7a38f81af2b79a134eaa6cbed543aa3ca5fe2 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Fri Feb 21 22:21:19 2014 +0100 quorum: Implement recursive .bdrv_recurse_is_first_non_filter in quorum. This is used to activate quorum snapshot. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1c508d174d4b9dfd066c3729a2560afeef5e081f Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Fri Feb 21 22:21:18 2014 +0100 quorum: Add quorum_co_flush(). Makes a vote to select error if any. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a28e4c408b28e4d55c5bd327a19290e1da3855dd Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Fri Feb 21 22:21:17 2014 +0100 quorum: Add quorum_invalidate_cache(). We really want that live migration works with quorum so implement quorum_invalidate_cache(). Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d55dee2044791a02394a3db7055cedac68dca26b Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Fri Feb 21 22:21:16 2014 +0100 quorum: Add quorum_getlength(). Check that every bs file returns the same length. Otherwise, return -EIO to disable the quorum and avoid length discrepancy. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 95c6bff3561eedaf7c7de287bc4a002720605a8d Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Fri Feb 21 22:21:15 2014 +0100 quorum: Add quorum mechanism. This patchset enables the core of the quorum mechanism. The num_children reads are compared to get the majority version and if this version exists more than threshold times the guest won't see the error at all. If a block is corrupted or if an error occurs during an IO or if the quorum cannot be established QMP events are used to report to the management. Use gnutls's SHA-256 to compare versions. --enable-quorum must be used to enable the feature. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7db6982a19f61e3668397b5e31ebfb16a477c414 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Fri Feb 21 22:21:14 2014 +0100 quorum: Add quorum_aio_readv. Add code to do num_children reads in parallel and cleanup the structures afterwards. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f70d7f7e4d05b7a7797815afdcb83f4375740838 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Fri Feb 21 22:21:13 2014 +0100 blkverify: Extract qemu_iovec_clone() and qemu_iovec_compare() from blkverify. qemu_iovec_compare() will be used to compare IOs vectors in quorum blkverify mode. The patch extracts these functions in order to factorize the code. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 13e7956e3190b51f02e75374bb9dfdcacfd08829 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Fri Feb 21 22:21:12 2014 +0100 quorum: Add quorum_aio_writev and its dependencies. Writes are mirrored num_children times on num_children devices. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit cadebd7a2a590c2ac5ced58c2fc207c7ae78fb1b Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Fri Feb 21 22:21:11 2014 +0100 quorum: Create BDRVQuorumState and BlkDriver and do init. Create the structure holding the quorum settings and write the minimal block driver instanciation boilerplate. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 27cec15e4ed4e69155f2499ceb46d22d8425102a Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Fri Feb 21 22:21:10 2014 +0100 quorum: Create quorum.c, add QuorumChildRequest and QuorumAIOCB. Quorum is a block filter mirroring writes to num_children children. For reads quorum reads each children and does a vote. If more than vote_threshold versions are identical the quorum is reached and this winning version is returned to the guest. So quorum prevents bit corruption. For high availability purpose minority errors are reported via QMP but the guest does not see them. This patch creates the driver C source file and introduces the structures that will be used in asynchronous reads and writes. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 64757582dafca9b0b3846677e368dd40bcd68b43 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Feb 21 21:05:13 2014 +0100 check-qdict: Test termination of qdict_array_split() qdict_array_split() should terminate if it encounters both an entry with a key of "%u" and entries with keys prefixed "%u." for the same index. This patch adds a test for this case. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7841c768846dcfa5a162ff46a8e98429aa0d2238 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Feb 21 19:11:41 2014 +0100 check-qdict: Adjust test for qdict_array_split() Test the new functionality of qdict_array_split(), that is, splitting off single objects. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit bae3f92a016b8eddc0d5806c24baea3ecedac0a0 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Feb 21 19:11:40 2014 +0100 qdict: Extract non-QDicts in qdict_array_split() Currently, qdict_array_split() only splits off entries with a key prefix of "%u.", packing them into a new QDict. This patch makes it support entries with the plain key "%u" as well, directly putting them into the new QList without creating a QDict. If there is both an entry with a key of "%u" and other entries with keys prefixed "%u." (for the same index), the function simply terminates. To do this, this patch also adds a static function which tests whether a given QDict contains any keys with the given prefix. This is used to test whether entries with a key prefixed "%u." do exist in the source QDict without modifying it. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit ae39c4b2015dd5ee35021d0f4212bb1304106524 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Feb 21 19:11:39 2014 +0100 qemu-config: Sections must consist of keys In config_parse_qdict_section(), the QList returned by qdict_array_split() is assumed to only contain QDicts. Currently, this is true but it may (and will) change in the future. Therefore, check whether the assumption actually holds. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a33cc31d08eb46ec2a4f214087c99e4bd4c907e9 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Feb 21 16:24:08 2014 +0100 qemu-iotests: Check qemu-img command line parsing Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit a283cb6e58fca846c658360971d23fdd1129db65 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Feb 21 16:24:07 2014 +0100 qemu-img: Allow -o help with incomplete argument list This patch allows using 'qemu-img $subcmd -o help' for the create, convert and amend subcommands, without specifying the previously required filename arguments. Note that it's still allowed and meaningful to specify a filename: An invocation like 'qemu-img create -o help sheepdog:foo' will also display options that are provided by the Sheepdog driver. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 626f84f39d4ae365a44dbbc0d0dd3c7739c3971a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Feb 21 16:24:06 2014 +0100 qemu-img amend: Support multiple -o options Instead of ignoring all option values but the last one, multiple -o options now have the same meaning as having a single option with all settings in the order of their respective -o options. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 2dc8328b4c6aba60f4ad543186f4e8aec2e9287e Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Feb 21 16:24:05 2014 +0100 qemu-img convert: Support multiple -o options Instead of ignoring all option values but the last one, multiple -o options now have the same meaning as having a single option with all settings in the order of their respective -o options. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 77386bf6ebe67164a2d102b207fb3bc11af8c1e8 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Feb 21 16:24:04 2014 +0100 qemu-img create: Support multiple -o options If you specified multiple -o options for qemu-img create, it would silently ignore all but the last one. This patch fixes the problem. Now multiple -o options has the same meaning as having a single option with all settings in the order of their respective -o options. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 7cc07ab8daa01f100f36ab63382d491f2d278c64 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Feb 21 16:24:03 2014 +0100 qemu-option: has_help_option() and is_valid_option_list() has_help_option() checks if any help option ('help' or '?') occurs anywhere in an option string, so that things like 'cluster_size=4k,help' are recognised. is_valid_option_list() ensures that the option list doesn't have options with leading commas or trailing unescaped commas. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 5b7aa9b56d1bfc79916262f380c3fc7961becb50 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:44:07 2014 +0100 vdi: say why an image is bad Instead of just putting it in debugging output, we can now put the value in an Error. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 76abe4071d111a9ca6dcc9b9689a831c39ffa718 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:44:06 2014 +0100 block: do not abuse EMEDIUMTYPE Returning "Wrong medium type" for an image that does not have a valid header is a bit weird. Improve the error by mentioning what format was trying to open it. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 89ac8480a8c7f73dd943dcb1313d6bd984f9a870 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:44:05 2014 +0100 vmdk: correctly propagate errors Now that we can return the "right" errors, use the Error** parameter to pass them back instead of just printing them. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 37f09e5e3d206e7c555d28a7755cecfa137dad22 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:44:04 2014 +0100 vmdk: do not try opening a file as both image and descriptor This prepares for propagating errors from vmdk_open_sparse and vmdk_open_desc_file up to the caller of vmdk_open. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d1833ef52be349e41d17e9c5ddaea8bb4ad3a7fb Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:44:03 2014 +0100 vmdk: push vmdk_read_desc up to caller Currently, we just try reading a VMDK file as both image and descriptor. This makes it hard to choose which of the two attempts gave the best error. We'll decide in advance if the file looks like an image or a descriptor, and this patch is the first step to that end. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a8842e6d2acc815e9660cc743bd0b0daba18c935 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:44:02 2014 +0100 vmdk: extract vmdk_read_desc Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c0f92b526dbd45fc5b539f51b7379156814dafe9 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:44:01 2014 +0100 vvfat: correctly propagate errors Before: $ ./qemu-io-old qemu-io-old> open -r -o driver=vvfat,fat-type=24,dir=i386-softmmu Valid FAT types are only 12, 16 and 32 qemu-io-old: can't open device (null): Could not open image: Invalid argument After: $ ./qemu-io qemu-io> open -r -o driver=vvfat,fat-type=24,dir=i386-softmmu qemu-io: can't open device (null): Valid FAT types are only 12, 16 and 32 Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 6890aad46b14849318053fe3ace6109e0f9c5932 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:44:00 2014 +0100 vhdx: correctly propagate errors Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 0fea6b797202c9efea534a474220a1cf23dd1968 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:43:59 2014 +0100 qed: correctly propagate errors Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b6d5066d32f9e6c3d7508c1af9ae78327a927120 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:43:58 2014 +0100 qcow: correctly propagate errors Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2a94fee3f649bdd2d71c78bb56977284f096f842 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:43:57 2014 +0100 curl: correctly propagate errors Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f8d924e48167ec14ec4556441ec7999a30ef6640 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:43:56 2014 +0100 cow: correctly propagate errors Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a7451cb850d115f257080aff3fbc54f255ebf8f7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:43:55 2014 +0100 gluster: correctly propagate errors Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 24897a767bd778fc6a050537d024565f9272cd06 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:43:54 2014 +0100 gluster: default scheme to gluster:// and host to localhost. Currently, "gluster:///volname/img" and (using file. options) "file.driver=gluster,file.filename=foo" will segfault. Also, "//host/volname/img" will be rejected, but it is a valid URL that should be accepted just fine with "file.driver=gluster". Accept all of these, by inferring missing transport and host as TCP and localhost respectively. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f2917853f715b0ef55df29eb2ffea29dc69ce814 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:43:53 2014 +0100 iscsi: correctly propagate errors in iscsi_open Before: $ ./qemu-io-old qemu-io-old> open -r -o file.driver=iscsi,file.filename=foo Failed to parse URL : foo qemu-io-old: can't open device (null): Could not open 'foo': Invalid argument After: $ ./qemu-io qemu-io> open -r -o file.driver=iscsi,file.filename=foo qemu-io: can't open device (null): Failed to parse URL : foo Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 35cb1748d54c8e56881a5e10138b3eb090f3a6bc Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:43:52 2014 +0100 iscsi: fix indentation Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 537b41f5013e1951fa15e8f18855b18d76124ce4 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:43:51 2014 +0100 nbd: move socket wrappers to qemu-nbd qemu-nbd is one of the few valid users of qerror_report_err. Move the error-reporting socket wrappers there. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c06b72781dc6dff3f1e8209b7280ff4650eb6f36 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:43:50 2014 +0100 nbd: inline tcp_socket_incoming_spec into sole caller Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 77e8b9ca64e85d3d309f322410964b7852ec091e Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:43:49 2014 +0100 nbd: correctly propagate errors Before: $ ./qemu-io-old qemu-io-old> open -r -o file.driver=nbd one of path and host must be specified. qemu-io-old: can't open device (null): Could not open image: Invalid argument $ ./qemu-io-old qemu-io-old> open -r -o file.driver=nbd,file.host=foo,file.path=bar path and host may not be used at the same time. qemu-io-old: can't open device (null): Could not open image: Invalid argument After: $ ./qemu-io qemu-io> open -r -o file.driver=nbd qemu-io: can't open device (null): one of path and host must be specified. $ ./qemu-io qemu-io> open -r -o file.driver=nbd,file.host=foo,file.path=bar qemu-io: can't open device (null): path and host may not be used at the same time. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a69d9af449e9de200abc751d8614124c7486426f Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 17 14:43:48 2014 +0100 nbd: produce a better error if neither host nor port is passed Before: $ qemu-io-old qemu-io-old> open -r -o file.driver=nbd qemu-io-old: can't open device (null): Could not open image: Invalid argument $ ./qemu-io-old qemu-io-old> open -r -o file.driver=nbd,file.host=foo,file.path=bar path and host may not be used at the same time. qemu-io-old: can't open device (null): Could not open image: Invalid argument After: $ ./qemu-io qemu-io> open -r -o file.driver=nbd one of path and host must be specified. qemu-io: can't open device (null): Could not open image: Invalid argument $ ./qemu-io qemu-io> open -r -o file.driver=nbd,file.host=foo,file.path=bar path and host may not be used at the same time. qemu-io: can't open device (null): Could not open image: Invalid argument Next patch will fix the error propagation. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f7d9fd8c7270de25b1e0d0a462b6958b53aa31b2 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Feb 18 18:33:12 2014 +0100 block: Remove bdrv_open_image()'s force_raw option This option is now unnecessary since specifying BDRV_O_PROTOCOL as flag will do exactly the same. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 5acd9d81e1a59e1929aa3a06571f3fda1101c3a2 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Feb 18 18:33:11 2014 +0100 block: Reuse success path from bdrv_open() The fail and success paths of bdrv_file_open() may be further shortened by reusing code already existent in bdrv_open(). This includes bdrv_file_open() not taking the reference to options which allows the removal of QDECREF(options) in that function. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 5469a2a688b47bc6d8d224c3f1b02cd96b0e4b65 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Feb 18 18:33:10 2014 +0100 block: Handle bs->options in bdrv_open() only The fail paths of bdrv_file_open() and bdrv_open() naturally exhibit similarities, thus it is possible to reuse the one from bdrv_open() and shorten the one in bdrv_file_open() accordingly. Also, setting bs->options in bdrv_file_open() is not necessary if it is already done in bdrv_open(). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d4446eae630a363403ec73182cf371deeed4e172 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Feb 18 18:33:09 2014 +0100 block: Remove bdrv_new() from bdrv_file_open() Change bdrv_file_open() to take a simple pointer to an already existing BDS instead of an indirect one. The BDS will be created in bdrv_open() if necessary. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 5d12aa63c77b4ee502da9b87de79bf2a9c225ee4 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Feb 18 18:33:08 2014 +0100 block: Reuse reference handling from bdrv_open() Remove the reference parameter and the related handling code from bdrv_file_open(), since it exists in bdrv_open() now as well. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2e40134bfdbb073512f9f264cb96162787ec62b1 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Feb 18 18:33:07 2014 +0100 block: Make bdrv_file_open() static Add the bdrv_open() option BDRV_O_PROTOCOL which results in passing the call to bdrv_file_open(). Additionally, make bdrv_file_open() static and therefore bdrv_open() the only way to call it. Consequently, all existing calls to bdrv_file_open() have to be adjusted to use bdrv_open() with the BDRV_O_PROTOCOL flag instead. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit ddf5636dc9e4be894f2ab4a5f803d915478b5099 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Feb 18 18:33:06 2014 +0100 block: Add reference parameter to bdrv_open() Allow bdrv_open() to handle references to existing block devices just as bdrv_file_open() is already capable of. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f67503e5bd8997ea7ec3f4bfa0af0e06321771a6 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Feb 18 18:33:05 2014 +0100 block: Change BDS parameter of bdrv_open() to ** Make bdrv_open() take a pointer to a BDS pointer, similarly to bdrv_file_open(). If a pointer to a NULL pointer is given, bdrv_open() will create a new BDS with an empty name; if the BDS pointer is not NULL, that existing BDS will be reused (in the same way as bdrv_open() already did). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e6dc8a1f83835054fcaf1dcb41af7c868688c068 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Feb 4 11:45:31 2014 +0100 block: Fix bdrv_is_first_non_filter() Consider top level BlockDriverStates as well. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Tested-by: Benoit Canet <benoit@xxxxxxxxxxx> commit a71835a0ccff168b19ffc9656fe27988821ec59a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Sat Feb 8 14:38:33 2014 +0100 qcow2: Set zero flag for discarded clusters Instead of making the backing file contents visible again after a discard request, set the zero flag if possible (i.e. on version >= 3). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 105a060188dc6fdd4551571a966514d1a5f6815a Merge: 3e890c7 2ea5a2c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Feb 21 15:04:57 2014 +0000 Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20140220' into staging target-arm queue: * Fix a bug causing an assertion in the NVIC on ARMv7M models * More A64 Neon instructions * Refactor cpreg API to separate out access check functions, as groundwork for AArch64 system mode * Fix bug in linux-user A64 store-exclusive of XZR # gpg: Signature made Thu 20 Feb 2014 11:12:57 GMT using RSA key ID 14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@xxxxxxxxxx>" * remotes/pmaydell/tags/pull-target-arm-20140220: (30 commits) linux-user: AArch64: Fix exclusive store of the zero register target-arm: A64: Implement unprivileged load/store target-arm: A64: Implement narrowing three-reg-diff operations target-arm: A64: Implement the wide 3-reg-different operations target-arm: A64: Add most remaining three-reg-diff widening ops target-arm: A64: Add opcode comments to disas_simd_three_reg_diff target-arm: A64: Implement store-exclusive for system mode target-arm: Fix incorrect type for value argument to write_raw_cp_reg target-arm: Remove failure status return from read/write_raw_cp_reg target-arm: Remove unnecessary code now read/write fns can't fail target-arm: Drop success/fail return from cpreg read and write functions target-arm: Convert miscellaneous reginfo structs to accessfn target-arm: Convert generic timer reginfo to accessfn target-arm: Convert performance monitor reginfo to accessfn target-arm: Split cpreg access checks out from read/write functions target-arm: Stop underdecoding ARM946 PRBS registers target-arm: Log bad system register accesses with LOG_UNIMP target-arm: Remove unused ARMCPUState sr substruct target-arm: Restrict check_ap() use of S and R bits to v6 and earlier target-arm: Define names for SCTLR bits ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3e890c77cf038d8c2de66ed7996fe77a6f94787c Merge: 7a87a7b b15d422 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Feb 21 14:54:04 2014 +0000 Merge remote-tracking branch 'remotes/stefanha/tags/qtest-monitor-process-pull-request' into staging qtest resource cleanup pull request # gpg: Signature made Wed 19 Feb 2014 14:46:34 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/qtest-monitor-process-pull-request: qtest: kill QEMU process on g_assert() failure qtest: make QEMU our direct child process qtest: drop unused child_pid field Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7a87a7b3e4213f7b020e434b14f8890d41b93fb7 Merge: e607784 94783de Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Feb 21 14:38:23 2014 +0000 Merge remote-tracking branch 'remotes/stefanha/tags/tracing-pull-request' into staging Tracing pull request # gpg: Signature made Wed 19 Feb 2014 15:42:20 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/tracing-pull-request: trace-events: Fix typo in "offset" Add ust generated files to .gitignore Update documentation for LTTng ust tracing Adapt Makefiles to the new LTTng ust interface Modified the tracetool framework for LTTng 2.x Fix configure script for LTTng 2.x Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e607784fedbf235599dc9a7ed96b624f6ecd1dd5 Merge: 9bd9d5e 6d093a4 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Feb 21 14:31:05 2014 +0000 Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging This fixes a target-i386 emulation regression # gpg: Signature made Wed 19 Feb 2014 15:42:12 GMT using RSA key ID C88F2FD6 # gpg: Good signature from "Kevin Wolf <kwolf@xxxxxxxxxx>" * remotes/kevin/tags/for-upstream: target-i386: Fix I/O bitmap checks for in/out Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 9bd9d5e3573ea0465b8eb5700e867674054d27f3 Merge: 774d566 69d4c70 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Feb 21 11:47:28 2014 +0000 Merge remote-tracking branch 'remotes/riku/linux-user-for-upstream' into staging * remotes/riku/linux-user-for-upstream: linux-user: Fix error handling in target_to_host_semarray() linux-user: Implement BLKPG ioctl linux-user: Fix error handling in lock_iovec() linux-user/signal.c: Don't pass sigaction uninitialised sa_flags linux-user/elfload.c: Avoid calling g_free() on uninitialized data linux-user: sync syscall numbers upto 3.13 Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 774d566cdbebb916af9760dac629aa7c1adf9d3d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 19:42:53 2014 +0000 tcg/i386: Fix build for systems without working cpuid.h (MacOSX, Win32) Win32 doesn't have a cpuid.h, and MacOSX may have one but without the __cpuid() function we use, which means that commit 9d2eec20 broke the build for those platforms. Fix this by tightening up our configure cpuid.h check to test that the functions we need are present, and adding some missing #ifdef guards in tcg/i386/tcg-target.c. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 521f438e36b0265d66862e9cd35e4db82686ca9f Author: Alexander Graf <agraf@xxxxxxx> Date: Mon Jan 27 15:18:09 2014 +0100 KVM: Use return value for error print Commit 94ccff13 introduced a more verbose failure message and retry operations on KVM VM creation. However, it ended up using a variable for its failure message that hasn't been initialized yet. Fix it to use the value it meant to set. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 58da5b1e01a586eb5a52ba3eec342d6828269839 Author: Olaf Hering <olaf@xxxxxxxxx> Date: Thu Feb 20 17:57:13 2014 +0000 xen_disk: fix io accounting bdrv_acct_done was called unconditional. But in case the ioreq has no segments there is no matching bdrv_acct_start call. This could lead to bogus accounting values. Found by code inspection. Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 15e8159e7613ec0b1418879acc916d1412c02a28 Author: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Date: Thu Feb 20 17:28:08 2014 +0000 Call pci_piix3_xen_ide_unplug from unplug_disks Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 2ca92bb993991d6dcb8f68751aca9fc2ec2b8867 Merge: 3d2bb5c d6bb65f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 15:25:05 2014 +0000 Merge remote-tracking branch 'remotes/kraxel/tags/pull-usb-3' into staging - xhci improvements and fixes. - uhci bugfix. - cleanups. # gpg: Signature made Tue 18 Feb 2014 15:48:10 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-usb-3: xhci: use DPRINTF() instead of fprintf(stderr, ...) xhci: switch debug printf to tracepoint xhci iso: allow for some latency xhci iso: fix time calculation uhci: invalidate queue on device address changes xhci: fix overflow in usb_xhci_post_load usb: Remove magic constants from device bmAttributes Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3d2bb5cc81ca52dcff854172625a3bb33987495c Merge: 61e8a92 6399ab3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 15:02:06 2014 +0000 Merge remote-tracking branch 'remotes/rth/tcg-next' into staging * remotes/rth/tcg-next: tcg/i386: Use SHLX/SHRX/SARX instructions tcg/i386: Use ANDN instruction tcg/i386: Add tcg_out_vex_modrm tcg/i386: Move TCG_CT_CONST_* to tcg-target.c disas/i386: Disassemble ANDN/SHLX/SHRX/SHAX tcg/optimize: Add more identity simplifications tcg/optimize: Optmize ANDC X,Y,Y to MOV X,0 tcg/optimize: Simply some logical ops to NOT tcg/optimize: Handle known-zeros masks for ANDC tcg/optimize: add known-zero bits compute for load ops tcg/optimize: improve known-zero bits for 32-bit ops tcg/optimize: fix known-zero bits optimization tcg/optimize: fix known-zero bits for right shift ops tcg-arm: The shift count of op_rotl_i32 is in args[2] not args[1]. TCG: Fix 32-bit host allocation typo Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 61e8a923646903d76a6d952019716b417d42eedc Merge: 4c0c9bb 91f32b0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 13:05:47 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/qom-devices-for-peter' into staging QOM infrastructure fixes and device conversions * QTest cleanups and test cases for PCI NICs * NAND fix for "info qtree" * Cleanup and extension of QOM machine tests * IndustryPack test cases and conversion to QOM realize * I2C cleanups * Cleanups of legacy qdev properties # gpg: Signature made Mon 17 Feb 2014 22:15:37 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/qom-devices-for-peter: (49 commits) qtest: Include system headers before user headers qapi: Refine human printing of sizes qdev: Use QAPI type names for properties qdev: Add enum property types to QAPI schema block: Handle "rechs" and "large" translation options qdev: Remove hex8/32/64 property types qdev: Remove most legacy printers qdev: Use human mode in "info qtree" qapi: Add human mode to StringOutputVisitor qdev: Inline qdev_prop_parse() qdev: Legacy properties are just strings qdev: Legacy properties are now read-only qdev: Remove legacy parsers for hex8/32/64 qdev: Sizes are now parsed by StringInputVisitor qapi: Add size parser to StringInputVisitor qtest: Don't segfault with invalid -qtest option ipack: Move IndustryPack out of hw/char/ ipoctal232: QOM parent field cleanup ipack: QOM parent field cleanup for IPackDevice ipack: QOM parent field cleanup for IPackBus ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f966f9ddd175bdf82f12650c3b7b5a93cc421d88 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Apr 30 11:44:16 2013 +0200 build: softmmu targets do not have a "main.o" file Thus this rule is useless. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 66518bf668f09eaab14c174bc975f85480e2371f Author: Don Slutz <dslutz@xxxxxxxxxxx> Date: Thu Jan 2 21:12:46 2014 -0500 configure: Disable libtool if -fPIE does not work with it (bug #1257099) Adjust TMPO and added TMPB, TMPL, and TMPA. libtool needs the names to be fixed (TMPB). Add new functions do_libtool and libtool_prog. Add check for broken gcc and libtool. Signed-off-by: Don Slutz <dslutz@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit d3399d7cf8a6cd751519d3979592d888bbab697a Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Feb 10 14:49:00 2014 +0800 block: convert block drivers linked with libs to modules The converted block drivers are: curl iscsi rbd ssh glusterfs Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit cc47569881d56ab11bd33b6fbaf60aeedb25e8a9 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Feb 10 14:48:59 2014 +0800 Makefile: introduce common-obj-m and block-obj-m for DSO $(common-obj-m) will include $(block-obj-m), like $(common-obj-y) does for $(block-obj-y). Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e3be6f0ecc7e2c8e47ae7a49d523c50bc1bdf621 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Feb 10 14:48:58 2014 +0800 Makefile: install modules with "make install" Install all the modules to ${MODDIR}. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e26110cfc67d48331a76e9b1e6f7fed7569e1ab3 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Feb 10 14:48:57 2014 +0800 module: implement module loading This patch adds loading, stamp checking and initialization of modules. The init function of dynamic module is no longer directly called as __attribute__((constructor)) in static linked version, it is called only after passed the checking of presense of stamp symbol: qemu_stamp_$RELEASEHASH where $RELEASEHASH is generated by hashing version strings and content of configure script. With this, modules built from a different tree/version/configure will not be loaded. The module loading code requires gmodule-2.0. Modules are searched under - CONFIG_MODDIR - executable folder (to allow running qemu-{img,io} in the build directory) - ../ of executable folder (to allow running system emulator in the build directory) Modules are linked under their subdir respectively, then copied to top level of build directory for above convinience, e.g.: $(BUILD_DIR)/block/curl.so -> $(BUILD_DIR)/block-curl.so Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 17969268f5938ae1d7f3dedbd73e507badb6146d Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Feb 10 14:48:56 2014 +0800 rules.mak: introduce DSO rules Add necessary rules and flags for shared object generation. The new rules introduced here are: 1) %.o in $(common-obj-m) is compiled to %.o, then linked to %.so. 2) %.mo in $(common-obj-m) is the placeholder for %.so for pattern matching in Makefile. It's linked to "-shared" with all its dependencies (multiple *.o) as input. Which means the list of depended objects must be specified in each sub-Makefile.objs: foo.mo-objs := bar.o baz.o qux.o in the same style with foo.o-cflags and foo.o-libs. The objects here will be prefixed with "$(obj)/" if it's a subdirectory Makefile.objs. 3) For all files ending up in %.so, the following is added automatically: foo.o-cflags += -fPIC -DBUILD_DSO Also introduce --enable-modules in configure, the option will enable support of shared object build. Otherwise objects are static linked to executables. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 13b6ce0ec98dc0d757d5c9b50f3ce349d7af43bd Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Feb 10 14:48:55 2014 +0800 darwin: do not use -mdynamic-no-pic While -mdynamic-no-pic can speed up the code somewhat, it is only used on the legacy PowerPC Mac OS X, and I am not sure if anyone is still testing that. Disabling PIC can cause problems when enabling modules, so do not do that. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 6ebc91e5d0f408371460ab4329dc6de7f93306ac Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Feb 10 14:48:54 2014 +0800 block: use per-object cflags and libs No longer adds flags and libs for them to global variables, instead create config-host.mak variables like FOO_CFLAGS and FOO_LIBS, which is used as per object cflags and libs. This removes unwanted dependencies from libcacard. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> [Split from Fam's patch to enable modules. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 5c0d52bcd3aada33e274ea7dad75955f98bc2636 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Feb 10 14:48:53 2014 +0800 rules.mak: allow per object cflags and libs Adds extract-libs in LINK to expand any "per object libs", the syntax to define such a libs options is like: foo.o-libs := $(CURL_LIBS) in block/Makefile.objs. Similarly, foo.o-cflags := $(FOO_CFLAGS) is also supported. "foo.o" must be listed in a nested var (e.g. common-obj-y) to make the option variables effective. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit ba1183da9a10b94611cad88c44a5c6df005f9b55 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Feb 10 14:48:52 2014 +0800 rules.mak: fix $(obj) to a real relative path Makefile.target includes rule.mak and unnested common-obj-y, then prefix them with '../', this will ignore object specific QEMU_CFLAGS in subdir Makefile.objs: $(obj)/curl.o: QEMU_CFLAGS += $(CURL_CFLAGS) Because $(obj) here is './block', instead of '../block'. This doesn't hurt compiling because we basically build all .o from top Makefile, before entering Makefile.target, but it will affact arriving per-object libs support. The starting point of $(obj) is passed in as argument of unnest-vars, as well as nested variables, so that different Makefiles can pass in a right value. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 10f5bff622cad71645e22c027b77ac31e51008ef Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Feb 10 14:48:51 2014 +0800 util: Split out exec_dir from os_find_datadir With this change, main() calls qemu_init_exec_dir and uses argv[0] to init exec_dir. The saved value can be retrieved with qemu_get_exec_dir later. It will be reused by module loading. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 4c0c9bbe78901a706497a8fa1a27935bafc20cf7 Merge: 46eef33 1094fd3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 12:04:02 2014 +0000 Merge remote-tracking branch 'remotes/qmp-unstable/queue/qmp' into staging * remotes/qmp-unstable/queue/qmp: monitor: Add object_add class argument completion. monitor: Add object_del id argument completion. monitor: Add device_add device argument completion. monitor: Add device_del id argument completion. qmp: expose list of supported character device backends Use error_is_set() only when necessary QMP: allow JSON dict arguments in qmp-shell hmp: migrate command (without -d) now blocks correctly Conflicts: blockdev.c [PMM: resolved trivial conflict in blockdev.c] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2ea5a2ca1f1dc302652d2ad5035e0b209ccaa177 Author: Janne Grunau <j@xxxxxxxxxx> Date: Thu Feb 20 10:35:56 2014 +0000 linux-user: AArch64: Fix exclusive store of the zero register Signed-off-by: Janne Grunau <j@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 60510aed69f69bfd44bf6e58c571dbba8b1b43a0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:56 2014 +0000 target-arm: A64: Implement unprivileged load/store Implement the unprivileged load and store instructions. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e4b998d47df70450f5aafc0fd7b3d56fa4920369 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:56 2014 +0000 target-arm: A64: Implement narrowing three-reg-diff operations Implement the narrowing three-reg-diff operations: ADDHN, RADDHN, SUBHN and RSUBHN. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit dfc15c7cebaa467de7ada96d2688d4f5f4d3e532 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:56 2014 +0000 target-arm: A64: Implement the wide 3-reg-different operations Implement the wide three-reg-different operations: SADDW, UADDW, SSUBW and USUBW. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 70d7f984a0a9e03c1327487aed9877a4eca0e709 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:55 2014 +0000 target-arm: A64: Add most remaining three-reg-diff widening ops Add the remainder of the 64x64->128 operations in the three-reg-diff category except for PMULL, PMULL2. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 13caf1fd2bdc4d8799098d73001caf7d8924073e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:55 2014 +0000 target-arm: A64: Add opcode comments to disas_simd_three_reg_diff The opcode switch in disas_simd_three_reg_diff() is missing the customary comments indicating which cases correspond to which instructions. Add them. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit d324b36ad93b84509aeee41f05ee17a6c5de7826 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:55 2014 +0000 target-arm: A64: Implement store-exclusive for system mode System mode store-exclusive use a different code path to usermode ones; implement this missing code, in a similar way to the 32 bit version. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7900e9f1f963184967594f4518c97ea682a9605f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:54 2014 +0000 target-arm: Fix incorrect type for value argument to write_raw_cp_reg The write_raw_cp_reg's value argument should be a uint64_t, since that's what all its callers hand it and what all the functions it calls take. A (harmless) typo meant we were accidentally declaring it as int64_t. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 59a1c327d72683e80fa1b886d42a3a5c17729484 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:54 2014 +0000 target-arm: Remove failure status return from read/write_raw_cp_reg The read_raw_cp_reg and write_raw_cp_reg functions can now never fail (in fact they should never have failed previously unless there was a bug in a reginfo that meant no raw accessor was provided for a might-trap register). This allows us to clean up their prototypes so the write function returns void and the read function returns the value read, which in turn lets us simplify the callers. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit ea4571eb8768c39bf6cacd64fdcb6ef405b18b18 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:54 2014 +0000 target-arm: Remove unnecessary code now read/write fns can't fail Now that cpreg read and write functions can't fail and throw an exception, we can remove the code from the translator that synchronises the guest PC in case an exception is thrown. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c4241c7d381086819131fba4fc8123848d83de8a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:54 2014 +0000 target-arm: Drop success/fail return from cpreg read and write functions All cpreg read and write functions now return 0, so we can clean up their prototypes: * write functions return void * read functions return the value rather than taking a pointer to write the value to This is a fairly mechanical change which makes only the bare minimum set of changes to the callers of read and write functions. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 92611c0019c38c860e6926dd2073c4448c382859 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:53 2014 +0000 target-arm: Convert miscellaneous reginfo structs to accessfn Convert the remaining miscellaneous cases of reginfo read/write functions returning EXCP_UDEF to use an accessfn instead: TEEHBR, and the ATS address-translation operations. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 00108f2d4d86f41694bafe173271528f7e69b0b7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:53 2014 +0000 target-arm: Convert generic timer reginfo to accessfn Convert the reginfo structs for the generic timer registers to use access functions rather than returning EXCP_UDEF from their read handlers. In some cases this allows us to remove a read handler completely. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit fcd252062a018380e9ce14ed4d71f6d557018e2b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:52 2014 +0000 target-arm: Convert performance monitor reginfo to accessfn Convert the performance monitor reginfo definitions to use an accessfn rather than returning EXCP_UDEF from read and write functions. This also allows us to fix a couple of XXX cases where we weren't imposing the access restrictions on RAZ/WI or constant registers. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f59df3f2354982ee0381b87d1ce561f1eb0ed505 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:52 2014 +0000 target-arm: Split cpreg access checks out from read/write functions Several of the system registers handled via the ARMCPRegInfo mechanism have access trap control bits controlling whether the registers are accessible to lower privilege levels. Replace the existing mechanism (allowing the read and write functions to return EXCP_UDEF if access is denied) with a dedicated "check access rights" function pointer in the ARMCPRegInfo. This will allow us to simplify some of the register definitions, which no longer need read/write functions purely to handle the access checks. We take the opportunity to define the return value from the access checking function in a way that allows us to set the correct exception syndrome information for exceptions taken to AArch64 (which may need to distinguish access failures due to a configurable trap or enable from other kinds of access failure). This commit defines the new mechanism but does not move any of the registers across to use it. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit e508a92b621c7160122e99d3754e568f2b8e255e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:52 2014 +0000 target-arm: Stop underdecoding ARM946 PRBS registers The ARM946 has 8 PRBS (protection region base and size) registers. Currently we implement these with a CP_ANY reginfo; however this underdecodes (since there are 16 possible values of CRm but only 8 registers) and we catch the invalid values in the read and write functions. However this causes issues with migration since we only migrate the first of a wildcard register set, so we only migrate c6_region[0]. It also makes it awkward to pull reginfo access checks out into their own function. Avoid all these problems by just defining separate reginfo structs for each of the 8 registers; this also lets us avoid having any read or write functions and will result in more efficient direct field accesses from generated code. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 626187d86b037c89367f2f94785717b75e0e4440 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:52 2014 +0000 target-arm: Log bad system register accesses with LOG_UNIMP Log guest attempts to access unimplemented system registers via the LOG_UNIMP reporting mechanism (for both the 32 bit and 64 bit instruction sets). This is particularly useful for debugging problems where the guest is trying to use a system register that QEMU doesn't implement. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 1456364ff0900893f81f8d06fb1b42e5c2ad8a23 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:51 2014 +0000 target-arm: Remove unused ARMCPUState sr substruct Remove the 'struct sr' from ARMCPUState -- it isn't actually used and is a hangover from the original separate system register implementation used by the SuSE linux-user-mode-only AArch64 target. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 99f678a679857d83b9709127b0f047551d7e3c45 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:51 2014 +0000 target-arm: Restrict check_ap() use of S and R bits to v6 and earlier The SCTLR bits S and R (8 and 9) only exist in ARMv6 and earlier. In ARMv7 these bits RAZ, and in ARMv8 they are reassigned. Guard the use of them in check_ap() so that we don't get incorrect results for ARMv8 CPUs. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 76e3e1bcaefe0da394f328854cb72f9449f23732 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:51 2014 +0000 target-arm: Define names for SCTLR bits The SCTLR is full of bits for enabling or disabling various things, and so there are many places in the code which check if certain bits are set. Define some named constants for the SCTLR bits so these checks are easier to read. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 83e9a4aec9ffcbcb86ca9d39d2c5aae8176411fb Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:50 2014 +0000 target-arm/kvm-consts.h: Define QEMU constants for known KVM CPUs Extend the set of CPUs for which we provide a QEMU_KVM_ARM_TARGET_* constant to include all the ones currently supported by the kernel headers we are using. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 057d5f62f822c4789ca0af9c9e9b42322679c793 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:50 2014 +0000 target-arm: A64: Implement remaining 3-same instructions Implement the remaining instructions in the SIMD 3-reg-same and scalar-3-reg-same groups: FMULX, FRECPS, FRSQRTS, FACGE, FACGT, FMLA and FMLS. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 67d43538aee10b6cfe8f3606c69187a3e142a2ba Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:50 2014 +0000 softfloat: Support halving the result of muladd operation The ARMv8 instruction set includes a fused floating point reciprocal square root step instruction which demands an "(x * y + z) / 2" fused operation. Support this by adding a flag to the softfloat muladd operations which requests that the result is halved before rounding. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit bc242f9bb6324a50e7572c0997904b66b630f73a Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Thu Feb 20 10:35:50 2014 +0000 target-arm: A64: Implement floating point pairwise insns Add support for the floating-point pairwise operations FADDP, FMAXP, FMAXNMP, FMINP and FMINNMP. To do this we use the code which was previously handling only integer pairwise operations, and push the integer-specific decode and handling of unallocated cases up one level in the call tree, so we can also call it from the floating-point section of the decoder. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8908f4d1850dbfd0de442e8deaed2f41821cdb89 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Thu Feb 20 10:35:49 2014 +0000 target-arm: A64: Implement SIMD FP compare and set insns This adds all forms of the SIMD floating point and set instructions: FCM(GT|GE|EQ|LE|LT) Most of the heavy lifting is done by either the existing neon helpers or some new helpers for the 64bit double cases. Most of the code paths are common although the 2misc versions are a little special as they compare against zero. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> [PMM: fixed some minor bugs, added the 2-misc-scalar encoding] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit b033cd3d0021bee24931d0118fbd34e8c8d8b5af Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:49 2014 +0000 target-arm: A64: Implement scalar three different instructions Implement the scalar three different instruction group: it only has three instructions in it. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 9f82e0ff4b21b3fce86115597e92b01fba448635 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:49 2014 +0000 target-arm: A64: Implement SIMD scalar indexed instructions Implement the SIMD scalar indexed instructions. The encoding here is nearly identical to the vector indexed grouping, so we combine the two. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit c44ad1fddcf5a3deea3fb5cc340935bb11ccfb8e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:49 2014 +0000 target-arm: A64: Implement long vector x indexed insns Implement the 'long' operations in the vector x indexed element category. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f5e51e7f10d6dbbeac268a7defc89831c62eff12 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:48 2014 +0000 target-arm: A64: Implement plain vector SIMD indexed element insns Implement all the SIMD vector x indexed element instructions in the subcategory which are not 'long' ops. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 873169022aa58daabd10979002f8009c7e5f3f05 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 20 10:35:48 2014 +0000 hw/intc/arm_gic: Fix NVIC assertion failure Commit 40d225009ef accidentally changed the behaviour of gic_acknowledge_irq() for the NVIC. The NVIC doesn't have SGIs, so this meant we hit an assertion: gic_acknowledge_irq: Assertion `s->sgi_pending[irq][cpu] != 0' failed. Return NVIC acknowledge-irq to its previous behaviour, like 11MPCore. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> commit 6d093a4f499fd945b39bd55b307dd9192dc99ead Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Jan 24 10:57:41 2014 +0100 target-i386: Fix I/O bitmap checks for in/out Commit 1b90d56e changed the implementation of in/out imm to not assign the accessed port number to cpu_T[0] as it appeared unnecessary. However, currently gen_check_io() makes use of cpu_T[0] to implement the I/O bitmap checks, so it's in fact still used and the change broke the check, leading to #GP in legitimate cases (and probably also allowing access to ports that shouldn't be allowed). This patch reintroduces the missing assignment for these cases. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit b15d422a23a3e4cf1b4195af209211eccdb88d51 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Feb 17 16:33:35 2014 +0100 qtest: kill QEMU process on g_assert() failure The QEMU process stays running if the test case fails. This patch fixes the leak by installing a SIGABRT signal handler which invokes qtest_end(). Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit cef60c925c41563721dc73b1ace7b2f399f72a5b Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Feb 17 14:54:17 2014 +0100 qtest: make QEMU our direct child process qtest_init() cannot use exec*p() to launch QEMU since the exec*p() functions take an argument array while qtest_init() takes char *extra_args. Therefore we execute /bin/sh -c <command-line> and let the shell parse the argument string. This left /bin/sh as our child process and our child's child was QEMU. We still want QEMU's pid so the -pidfile option was used to let QEMU report its pid. The pidfile needs to be unlinked when the test case exits or fails. In other words, the pidfile creates a new problem for us! Simplify all this using the shell 'exec' command. It allows us to replace the /bin/sh process with QEMU. Then we no longer need to use -pidfile because we already know our fork child's pid. Note: Yes, it seems silly to exec /bin/sh when we could just exec QEMU directly. But remember qtest_init() takes a single char *extra_args command-line fragment instead of a real argv[] array, so we need /bin/sh's argument parsing behavior. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> commit 98f9e35befe5c11e3da448cbe015969ed91730a4 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Feb 17 14:45:55 2014 +0100 qtest: drop unused child_pid field Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> commit 69d4c703a549f0630793a67b16a8fc6bc14c8654 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Feb 17 18:55:34 2014 +0000 linux-user: Fix error handling in target_to_host_semarray() Fix two issues in error handling in target_to_host_semarray(): * don't leak the host_array buffer if lock_user fails * return an error if malloc() fails v2: added missing * -Riku Voipio Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit fff8c539bd69dce14c63827111e9d74e6b961317 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sat Jan 18 07:38:30 2014 +0100 linux-user: Implement BLKPG ioctl Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 94783de6fe746f86a357bc4e3e6759f7f8ad3b39 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Feb 17 10:03:17 2014 +0100 trace-events: Fix typo in "offset" s/offet/offset/ Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5d59fd998f956d673bda9cea78a106ebcc5ad78f Author: Mohamad Gebai <mohamad.gebai@xxxxxxxxx> Date: Wed Jan 29 22:47:58 2014 -0500 Add ust generated files to .gitignore Signed-off-by: Mohamad Gebai <mohamad.gebai@xxxxxxxxxx> Reviewed-by: Alex Bennée <alex@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ef3ef4a0408743f3d562cda413e00afb7b782d6b Author: Mohamad Gebai <mohamad.gebai@xxxxxxxxx> Date: Wed Jan 29 22:47:57 2014 -0500 Update documentation for LTTng ust tracing Signed-off-by: Mohamad Gebai <mohamad.gebai@xxxxxxxxxx> Reviewed-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e6bf23f82d2d907dc99cf2581b4852417843a42d Author: Mohamad Gebai <mohamad.gebai@xxxxxxxxx> Date: Wed Jan 29 22:47:56 2014 -0500 Adapt Makefiles to the new LTTng ust interface Add generation of new files for LTTng ust. Signed-off-by: Mohamad Gebai <mohamad.gebai@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 9530570fa5f86a52e31c92b26578a973b439d493 Author: Mohamad Gebai <mohamad.gebai@xxxxxxxxx> Date: Wed Jan 29 22:47:55 2014 -0500 Modified the tracetool framework for LTTng 2.x * A new format is required to generate definitions for ust tracepoints. Files ust_events_h.py and ust_events_c.py define common macros, while new function ust_events_h in events.py does the actual definition of each tracepoint. * ust.py generates the new interface for calling userspace tracepoints with LTTng 2.x, replacing trace_name(args) to tracepoint(name, args). * As explained in ust_events_c.py, -Wredundant-decls gives a warning when compiling with gcc 4.7 or older. This is specific to lttng-ust so for now use a pragma clause to avoid getting a warning. Signed-off-by: Mohamad Gebai <mohamad.gebai@xxxxxxxxxx> Reviewed-by: Alex Bennée <alex@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bf15f63cad5c909890be6656743979c7a46ab56d Author: Mohamad Gebai <mohamad.gebai@xxxxxxxxx> Date: Wed Jan 29 22:47:54 2014 -0500 Fix configure script for LTTng 2.x Signed-off-by: Mohamad Gebai <mohamad.gebai@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 501bb4b0cb1debf2b495f0ba3980b97ceca652f5 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Feb 17 18:55:33 2014 +0000 linux-user: Fix error handling in lock_iovec() In lock_iovec() if lock_user() failed we were doing an unlock_user but not a free(vec), which is the wrong way round. We were also assuming that free() and unlock_user() don't touch errno, which is not guaranteed. Fix both these problems. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 3a5d30bf272c8db8e16e1e7ad5b8953f08df3e82 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Feb 17 18:55:32 2014 +0000 linux-user/signal.c: Don't pass sigaction uninitialised sa_flags When forcing a fatal signal, we weren't initialising the sa_flags field in the struct sigaction we used to reset the signal handler to SIG_DFL. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 6afafa86f3446f5e6dd410cc2c442e98adabc26c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Feb 17 18:55:31 2014 +0000 linux-user/elfload.c: Avoid calling g_free() on uninitialized data Avoid calling g_free() on unintialized data in the error-handling paths in elf_core_dump() by splitting the initialization of the elf_note_info struct out of fill_note_info() so that it's always valid to call free_note_info() whether we got to the point of being able to fill_note_info() or not. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 4fc4732047bf475f70b14c83053d7c6b22cb9d2f Author: Riku Voipio <riku.voipio@xxxxxxxxxx> Date: Mon Jan 13 14:04:20 2014 +0200 linux-user: sync syscall numbers upto 3.13 All others updated except unicore, which doesn't look right to begin with. Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit d6bb65fcd24c8cb8c37ffe324c360f3b0c94b902 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Feb 6 13:13:21 2014 +0100 xhci: use DPRINTF() instead of fprintf(stderr, ...) So we don't spam stderr with (guest-triggerable) messages by default. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 4f9cc7342281bfbbc1bfccc155c59551c06d63db Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Feb 6 13:06:38 2014 +0100 xhci: switch debug printf to tracepoint Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit cc03ff9d0a147a399a11c9f513afa5e06ceee453 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Feb 6 12:06:55 2014 +0100 xhci iso: allow for some latency Allow the scheduled transfer time be a bit behind, to compensate for latencies. Without this xhci will wait way to often for the mfindex wraparound, assuming the scheduled time is in the future just because qemu is a bit behind in processing the iso transfer requests. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 786ad214c72226fa5bd4ebf18aeb4c6b54d3ba80 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Feb 6 12:03:59 2014 +0100 xhci iso: fix time calculation Frameid specifies frames not microframes, so we need to shift it to get the microframe index. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit c348e481759057c925cce4bf54336f1518b8c702 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Feb 5 14:54:14 2014 +0100 uhci: invalidate queue on device address changes Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f6969b9fef543da1ffa975d24f4d7b75dc369b03 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Jan 29 17:03:10 2014 +0100 xhci: fix overflow in usb_xhci_post_load Found by Coverity. Reported-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit bd93976a1ad9cca9636da66dfde98a41e573130c Author: Pantelis Koukousoulas <pktoss@xxxxxxxxx> Date: Mon Dec 16 09:42:49 2013 +0200 usb: Remove magic constants from device bmAttributes Replace magic constants in device bmAttributes with symbolic ones from Linux kernel ch9.h Signed-off-by: Pantelis Koukousoulas <pktoss@xxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 91f32b0c92fb18a403e48d3c8ffc14422a0c1ca5 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Sat Feb 8 11:41:07 2014 +0100 qtest: Include system headers before user headers It is dangerous to include user headers before system headers since user macros can affect system headers. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 1094fd3a6219923c8d1abfc7dee5af996a181e7a Author: Hani Benhabiles <kroosec@xxxxxxxxx> Date: Thu Feb 6 23:30:13 2014 +0100 monitor: Add object_add class argument completion. Signed-off-by: Hani Benhabiles <hani@xxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit b48fa074b565131bd0782d122d54c001acfed86f Author: Hani Benhabiles <kroosec@xxxxxxxxx> Date: Thu Feb 6 23:30:12 2014 +0100 monitor: Add object_del id argument completion. Signed-off-by: Hani Benhabiles <hani@xxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 992d3e64c89bd2af1ae005080636e8da43c1b500 Author: Hani Benhabiles <kroosec@xxxxxxxxx> Date: Thu Feb 6 23:30:11 2014 +0100 monitor: Add device_add device argument completion. Signed-off-by: Hani Benhabiles <hani@xxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit fca72d9b4994343dd1e48d9bb9f45914f4429cfb Author: Hani Benhabiles <kroosec@xxxxxxxxx> Date: Thu Feb 6 23:30:10 2014 +0100 monitor: Add device_del id argument completion. Signed-off-by: Hani Benhabiles <hani@xxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 77d1c3c63fb18c3675d8c80262bbd172f646556a Author: Martin Kletzander <mkletzan@xxxxxxxxxx> Date: Sat Feb 1 12:52:42 2014 +0100 qmp: expose list of supported character device backends Introduce 'query-chardev-backends' QMP command which lists all supported character device backends. Signed-off-by: Martin Kletzander <mkletzan@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 84d18f065fb041a1c0d78d20320d740ae0673c8a Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Jan 30 15:07:28 2014 +0100 Use error_is_set() only when necessary error_is_set(&var) is the same as var != NULL, but it takes whole-program analysis to figure that out. Unnecessarily hard for optimizers, static checkers, and human readers. Dumb it down to obvious. Gets rid of several dozen Coverity false positives. Note that the obvious form is already used in many places. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit ff9ec34de8f6a37bd29ac72c0c4c94bd5d43d7b0 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Jan 29 12:17:31 2014 +0100 QMP: allow JSON dict arguments in qmp-shell qmp-shell hides the QMP wire protocol JSON encoding from the user. Most of the time this is helpful and makes the command-line human-friendly. Some QMP commands take a dict as an argument. In order to express this we need to revert back to JSON notation. This patch allows JSON dict arguments in qmp-shell so commands like blockdev-add and nbd-server-start can be invoked: (QEMU) blockdev-add options={"driver":"file","id":"drive1",...} Note that spaces are not allowed since str.split() is used to break up the command-line arguments first. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit dde3a2184074f5c4279fd7fbfc597b5dc5859fb8 Author: Soramichi AKIYAMA <akiyama@xxxxxxxxx> Date: Mon Jan 27 19:46:11 2014 +0900 hmp: migrate command (without -d) now blocks correctly This patch fixes a timing issue that migrate command (without -d) does not block in some cases. The original version of hmp.c:hmp_migrate_status_cb checks if the migration status is 'active' or not to detect the completion of a migration. However, if this function is executed when the migration status is stil 'setup' (the status before 'active'), migration command returns immediately even if the user does not specify -d option. Signed-off-by: Soramichi Akiyama <akiyama@xxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 6399ab3325b7d4f77441c8a00fa9dae98bb0ac43 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Jan 28 11:39:49 2014 -0800 tcg/i386: Use SHLX/SHRX/SARX instructions These three-operand shift instructions do not require the shift count to be placed into ECX. This reduces the number of mov insns required, with the mere addition of a new register constraint. Don't attempt to get rid of the matching constraint, as that's impossible to manipulate with just a new constraint. In addition, constant shifts still need the matching constraint. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 9d2eec202fad72ce05ee8d54dc5a6fb6dcb87776 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Jan 27 21:49:17 2014 -0800 tcg/i386: Use ANDN instruction Note that the optimizer cannot simplify ANDC X,Y,C to AND X,Y,~C so we must handle constants in the implementation of andc. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ecc7e84327c1c8e9b006edfaa5d0e3baf35a3f99 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Jan 27 21:19:40 2014 -0800 tcg/i386: Add tcg_out_vex_modrm Prepare for emitting BMI insns which require VEX encoding. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a1b29c9ae06abe7ded354eb70767e34dc035db72 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Jan 27 13:02:31 2014 -0800 tcg/i386: Move TCG_CT_CONST_* to tcg-target.c These are not needed by users of tcg-target.h. No need to recompile when we adjust them. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 189f792dc5dd744c5f5d2333a7c52784e108974e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Jan 28 16:39:36 2014 -0800 disas/i386: Disassemble ANDN/SHLX/SHRX/SHAX Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 464a1441c138b4f29cff26d406298661e588235b Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Jan 31 07:42:11 2014 -0600 tcg/optimize: Add more identity simplifications Recognize 0 operand to andc, and -1 operands to and, orc, eqv. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e64e958e202c563730159c52f7c9116c80ceca52 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Jan 28 13:26:17 2014 -0800 tcg/optimize: Optmize ANDC X,Y,Y to MOV X,0 Like we already do for SUB and XOR. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e201b56418a5bb6afadc42df16f94880c091fad4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Jan 28 13:15:38 2014 -0800 tcg/optimize: Simply some logical ops to NOT Given, of course, an appropriate constant. These could be generated from the "canonical" operation for inversion on the guest, or via other optimizations. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 23ec69ed3759fe5d8374cb22795ade1305c331c4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Jan 28 12:03:24 2014 -0800 tcg/optimize: Handle known-zeros masks for ANDC Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c8d70272535b84ccd3cd1a3dcad65aed34be6bb4 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Tue Sep 3 08:27:39 2013 +0200 tcg/optimize: add known-zero bits compute for load ops Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f096dc96188378bc2bcd80683490ca386b0c1683 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Tue Sep 3 08:27:38 2013 +0200 tcg/optimize: improve known-zero bits for 32-bit ops The shl_i32 op might set some bits of the unused 32 high bits of the mask. Fix that by clearing the unused 32 high bits for all 32-bit ops except load/store which operate on tl values. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3031244b01492528fd7b5e46b23eeb2124dc780a Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Tue Sep 3 08:27:38 2013 +0200 tcg/optimize: fix known-zero bits optimization Known-zero bits optimization is a great idea that helps to generate more optimized code. However the current implementation only works in very few cases as the computed mask is not saved. Fix this to make it really working. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e46b225a3137e62c975c49aaae7bb5f9583cc428 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Tue Sep 3 08:27:38 2013 +0200 tcg/optimize: fix known-zero bits for right shift ops 32-bit versions of sar and shr ops should not propagate known-zero bits from the unused 32 high bits. For sar it could even lead to wrong code being generated. Cc: qemu-stable@xxxxxxxxxx Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7a3a00979d9dfe2aaa66ce5fc68cd161b4f900ba Author: Huw Davies <huw@xxxxxxxxxxxxxxx> Date: Thu Feb 13 10:26:46 2014 +0000 tcg-arm: The shift count of op_rotl_i32 is in args[2] not args[1]. It's this that should be subtracted from 0x20 when converting to a right rotate. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Huw Davies <huw@xxxxxxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 46eef33b89e936ca793e13c4aeea1414e97e8dbb Author: Brad <brad@xxxxxxxxxxxx> Date: Tue Dec 10 19:49:08 2013 -0500 Fix QEMU build on OpenBSD on x86 archs This resolves the build issue with building the ROMs on OpenBSD on x86 archs. As of OpenBSD 5.3 the compiler builds PIE binaries by default and thus the whole OS/packages and so forth. The ROMs need to have PIE disabled. Check in configure whether the compiler supports the flags for disabling PIE, and if it does then use them for building the ROMs. This fixes the following buildbot failure: >From the OpenBSD buildbots.. Building optionrom/multiboot.img ld: multiboot.o: relocation R_X86_64_16 can not be used when making a shared object; recompile with -fPIC Signed-off by: Brad Smith <brad@xxxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f6aa2f7dee920f6f06fefe122cf2a58cabe3cac0 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Jan 21 08:36:38 2014 -0800 TCG: Fix 32-bit host allocation typo The second half register of a 64-bit temp on a 32-bit host was allocated with the wrong base_type. The base_type of the second half register is never checked, but for consistency it should be the same as the first half. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0dbcf95a1ea5a5ca6222765ff8813c2cc17e8abd Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Sat Feb 15 20:26:25 2014 +0000 libvixl: fix 64bit constants usage Since commit 999b53ec8794f203964db3ecf939a3da5c4bc843: Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Wed Feb 5 17:27:28 2014 +0000 disas: Implement disassembly output for A64 Use libvixl to implement disassembly output in debug logs for A64, for use with both AArch64 hosts and targets. disas/libvixl/ contains functions which uses 64bit constants without using appropriate suffixes, which fails on 32bits. Fix this by using ULL suffix. Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 078a1c37cad0d11d93ff8102f7653ce6109bb62d Merge: 44e3a39 88c1ee7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 15 16:36:40 2014 +0000 Merge remote-tracking branch 'remotes/mjt/tags/trivial-patches-2014-02-15' into staging trivial patches for 2014-02-15 # gpg: Signature made Sat 15 Feb 2014 12:10:46 GMT using RSA key ID 74F0C838 # gpg: Good signature from "Michael Tokarev <mjt@xxxxxxxxxx>" # gpg: aka "Michael Tokarev <mjt@xxxxxxxxx>" # gpg: aka "Michael Tokarev <mjt@xxxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 6EE1 95D1 886E 8FFB 810D 4324 457C E0A0 8044 65C5 # Subkey fingerprint: E190 8639 3B10 B51B AC2C 8B73 5253 C5AD 74F0 C838 * remotes/mjt/tags/trivial-patches-2014-02-15: char/serial: Fix emptyness check gitignore: anchor all ignored names vl: trim includes vl: remove old, long-unused defines net: declare struct iovec in checksum.h to fix compiler warning linux-user: refactor do_socketcall() configure: add hints to a remedy for feature_not_found errors configure: add hint of libfdt to DTC dependency not found message sparc/leon3: Initialize stack pointer misc: Fix case Qemu -> QEMU Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 44e3a39f30377e96f6a1f3a21f6b1c8b40b28baf Merge: 90ce3d7 0c5e94e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 15 16:15:52 2014 +0000 Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging Block pull request # gpg: Signature made Fri 14 Feb 2014 17:26:30 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/block-pull-request: block: Open by reference will try device then node_name. block: Relax bdrv_lookup_bs constraints. blockdev: Fix wrong usage of QDECREF causing snapshoted quorum to crash on close. block: mirror - use local_err to avoid NULL errp qemu-iotests: Don't run 005 on vmdk split formats block: qemu-iotests - add vhdx log replay tests for qemu-img block: qemu-iotests - fix test 070 (vhdx) block: Don't throw away errno via error_setg block: Add notes to iSCSI's .bdrv_open and .bdrv_reopen_prepare blockdev: Remove 'type' parameter from blockdev_init() sdhci: Drop unnecessary #include Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 90ce3d76eb917d25ecec4d3cb9ad8da7576a1505 Merge: a50f98b 5631e69 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 15 15:20:08 2014 +0000 Merge remote-tracking branch 'remotes/jliu/or32-ld-st' into staging * remotes/jliu/or32-ld-st: target-openrisc: Use new qemu_ld/st opcodes Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a50f98b0665289fd37720f287943e86f23b01f45 Merge: 933b19e 736d120 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 15 15:07:00 2014 +0000 Merge remote-tracking branch 'remotes/jovanovic/mips-ufrp' into staging * remotes/jovanovic/mips-ufrp: target-mips: add user-mode FR switch support for MIPS32r5 target-mips: add support for CP0_Config5 target-mips: add support for CP0_Config4 target-mips: add CPU definition for MIPS32R5 Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 88c1ee73d3231c74ff90bcfc084a7589670ec244 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Feb 10 22:49:35 2014 -0800 char/serial: Fix emptyness check This was guarding against a full fifo rather than an empty fifo when popping. Fix. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Martin Kletzander <mkletzan@xxxxxxxxxx> Reviewed-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 5556332aba80c0579244c4458d3e35f13badd5ed Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Tue Feb 11 14:22:32 2014 +0400 gitignore: anchor all ignored names by default, patterns/names in .gitignore are applied recursively to all subdirectories. So any name mentioned in .gitignore is ignored in all subdirectores. This is good for, say. object files (*.o), but not good for particular names which should be ignored only in one directory. For example, qemu-img.1 file is generated in the top directory, and it should be ignored only there, not in some subdir. At first, this might not matter much, but we have lots of examples already where it actually does not help at all. For example, top-level .gitignore ignores a file/dir named "patches" (which is very questionable by itself), but it is applied recursively, so git also ignores, for example, debian/patches/ which should not be ignored. So anchor all the names where appropriate. .gitignore should be cleaned up further, which will be addressed in a subsequent patch. Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit b33276a7a8224de8f1b2adbf03eede36d63e1c33 Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Fri Feb 7 12:26:14 2014 +0400 vl: trim includes Over time, lots of stuff moved from vl.c into separate files. But include statements has never been cleaned, and they continue to carry lots of anymore-unused stuff. Remove includes which are not relevant for vl.c anymore. Apparently there are more includes like this, because many are included from qemu-common.h and the like, or, for example, I don't see were we use win32-specific stuff in vl.c (so that maybe #include <windows.h> might be removed too). Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 24c84e687edd628084dd383ab1f1601765dbfd03 Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Fri Feb 7 12:23:05 2014 +0400 vl: remove old, long-unused defines Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 262471794d6d75435fa755eb2d6363d941743b14 Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Fri Feb 7 12:22:18 2014 +0400 net: declare struct iovec in checksum.h to fix compiler warning The checksum calculation header exports a function that refers to struct iov defined in iov.h. Without including the former, build fails like this: In file included from hw/net/fsl_etsec/rings.c:24:0: include/net/checksum.h:51:31: error: â??struct iovecâ?? declared inside parameter list [-Werror] include/net/checksum.h:51:31: error: its scope is only this definition or declaration, which is probably not what you want [-Werror] Mention struct iovec there. Reported-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 62dc90c668fc4e17639f594b70a1001780f59a9b Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Fri Jan 17 14:23:51 2014 +0400 linux-user: refactor do_socketcall() Refactor do_socketcall() to do argument conversion/checking first, according to a lookup table (which call has how many args) and by calling the right function second with ready-to-go arguments. This ensures that all arguments are handled as abi_long, according to socketcall prototype, and simplifies argument handling alot too. Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 21684af0233df1d2b554db736e4feb774950d488 Author: Stewart Smith <stewart@xxxxxxxxxxxxxxxxxx> Date: Fri Jan 24 12:39:10 2014 +1100 configure: add hints to a remedy for feature_not_found errors Modify feature_not_found to accept an optional second parameter to be printed after the generic feature not found error. Modify most calls to feature_not_found to provide hints as to the packages that may be missing. The few calls remaining without a remedy are ones I couldn't work out how to remedy myself. Signed-off-by: Stewart Smith <stewart@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 3f281822b26e4b39b2a49ac030fc6a5f184dd387 Author: Stewart Smith <stewart@xxxxxxxxxxxxxxxxxx> Date: Fri Jan 24 12:39:06 2014 +1100 configure: add hint of libfdt to DTC dependency not found message Most distros package it as libfdt, and mentioning libfdt here makes it much easier to find the package you're missing. Signed-off-by: Stewart Smith <stewart@xxxxxxxxxxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit c1570e2a1fd7ff6bc8d7b0c6104bed77283f89a7 Author: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Date: Mon Feb 3 10:18:11 2014 +0100 sparc/leon3: Initialize stack pointer A lot of real world LEON3 systems are shipped with the GRMON boot loader. This boot loader initializes the stack pointer with the end of RAM address. The application can use this to detect the RAM size of a particular board variant. Signed-off-by: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Reviewed-by: Fabien Chouteau <chouteau@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit a63e5e0c0d457718a957c351c996ba9cb31d5cdd Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Feb 4 06:43:09 2014 +0100 misc: Fix case Qemu -> QEMU Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit e41b509d68afb1f329c8558b6edfe2fcbac88e66 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Feb 8 11:01:57 2014 +0100 qapi: Refine human printing of sizes This fixes several bugs or shortcomings of the previous pretty-printer. In particular: * use PRIu64 instead of casting to long long * the exact value is included too * the correct unit of measure (MiB, GiB, etc.) is used. PiB and EiB are added too. * due to an off-by-one error, 512*2^30 was printed as 0.500MiB rather than 512MiB. floor(log2(val)) is equal to 63 - clz(val), while the code used 64. * The desired specification is %g rather than %f, which always uses three decimals in the current code. However %g would switch to scientific notation when the integer part is >= 1000 (e.g. 1000*2^30). To keep the code simple, switch to the higher power when the integer part is >= 1000; overflow is avoided by using frexp instead of clz. Suggested-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 85ca1202d1227b3a816c714db6c8e19b613172c5 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Feb 8 11:01:56 2014 +0100 qdev: Use QAPI type names for properties Use "drive", "chr", etc. only for legacy_name (which shows up in -device foo,? output). Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 104059da546c5cae03767c519013704d0baa0896 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Feb 8 11:01:55 2014 +0100 qdev: Add enum property types to QAPI schema Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f31c41ff5e7d64680382e94b9ea35d52ab4ca045 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Feb 8 11:01:54 2014 +0100 block: Handle "rechs" and "large" translation options Sure, CHS translation is an obscure topic, and legacy options for hard-disk geometries are obscure as well. But since QEMU does nothing with it except telling the BIOS, and since there "large" and "rechs" are listed in the enums, parsing them seems to be the bare minimum. Acked-by: Stefan Hajnoczi <stefanha@xxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c7bcc85d664b26b8b1e46416c7a730104b602e34 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Feb 8 11:01:53 2014 +0100 qdev: Remove hex8/32/64 property types Replace them with uint8/32/64. Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 515f23462b10174c953fd161a37e9093b2427cff Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Feb 8 11:01:52 2014 +0100 qdev: Remove most legacy printers Their functionality is either aesthetic only (e.g. on/off vs. true/false) or obtained by the "human mode" of StringOutputVisitor. Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit dae3bda422340901742e4db6b471d3084dfdc84d Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Feb 8 11:01:51 2014 +0100 qdev: Use human mode in "info qtree" Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 0b7593e085e66c7f5ab980a1ed8ee683c36b7347 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Feb 8 11:01:50 2014 +0100 qapi: Add human mode to StringOutputVisitor This will be used by "info qtree". For numbers it prints both the decimal and hex values. For sizes it rounds to the nearest power of 2^10. For strings, it puts quotes around the string and separates NULL and empty string. Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 98a6528461acf7a6f321d846e6f4e77e87305965 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Feb 8 11:01:49 2014 +0100 qdev: Inline qdev_prop_parse() Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 7ce7ffe02750c73e4dce9fd61d25d0fd0b793a2e Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Feb 8 11:01:48 2014 +0100 qdev: Legacy properties are just strings prop->info->legacy_name is still used by "-device foo,?". Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 03ff777048eda53eaf5bd95705418ae7e825ce56 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Feb 8 11:01:47 2014 +0100 qdev: Legacy properties are now read-only Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 9e4d9620c42649de7b6a0c5f5e1ed8fa0299b5c3 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Feb 8 11:01:46 2014 +0100 qdev: Remove legacy parsers for hex8/32/64 The hexNN property types have not been accepting values not prefixed by "0x" since QEMU 1.2. Parse those values as decimals now. Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 7d9268647ca39561a0e9ae55717e09049377bb33 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Feb 8 11:01:45 2014 +0100 qdev: Sizes are now parsed by StringInputVisitor Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a5829ccfc3f37173c0dda43f3ea0262faa19c494 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Sat Feb 8 11:01:44 2014 +0100 qapi: Add size parser to StringInputVisitor Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 23802b4fe0cf5821b72aa5bc682e38c8c91bb168 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Feb 10 09:28:02 2014 +0800 qtest: Don't segfault with invalid -qtest option This prints an error message, instead of core dump, when "-qtest" option value is invalid, e.g.: $ ./x86_64-softmmu/qemu-system-x86_64 -qtest unknown qemu-system-x86_64: Failed to initialize device for qtest: "unknown" Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 1f9c4cfda4df7c442255f9492a2408d80df1d42a Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 2 00:48:40 2013 +0200 ipack: Move IndustryPack out of hw/char/ Move the header defining an IPackBus and IPackDevice base class into a new include/ directory and move their implementation and a PCI-IndustryPack bridge out of hw/char/ directory into a new hw/ipack/. Acked-by: Alberto Garcia <agarcia@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 08c9cacf0e965562cbf5bf44067b0bd4863e250f Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Aug 1 18:51:35 2013 +0200 ipoctal232: QOM parent field cleanup Clean up accesses to IPOctalState::dev field and rename it. Acked-by: Alberto Garcia <agarcia@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 227d32725216723ffa99f0eb43c97f933e1da5b4 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Aug 1 18:48:28 2013 +0200 ipack: QOM parent field cleanup for IPackDevice Rename the IPackDevice::qdev field to avoid accidental use. Acked-by: Alberto Garcia <agarcia@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a21ac343d10141803483ec1097b2f1c3b3b4bd42 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Aug 1 18:47:34 2013 +0200 ipack: QOM parent field cleanup for IPackBus Clean up the only user of IPackBus::qbus field and rename it. Acked-by: Alberto Garcia <agarcia@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5c570902559fbc113154e545c4b0749cd4318b1d Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Aug 1 18:45:02 2013 +0200 ipack: Convert to QOM realize Acked-by: Alberto Garcia <agarcia@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 371468297c8bc45d9f4b957372ed62c9314620c8 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Feb 9 12:24:15 2014 +0100 tests: Add ipoctal232 qtest Acked-by: Alberto Garcia <agarcia@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 76491071b37e1d7cb2fba047cc391595b9e7b61a Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Feb 9 03:48:44 2014 +0100 tests: Add tpci200 qtest Acked-by: Alberto Garcia <agarcia@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit b815ec5eea4eecbe77f0c57b631fb043fd9b3d0e Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Feb 9 04:13:37 2014 +0100 tests: Add virtio-net qtest Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5297ea6fb811f60d44161f04bafa178d29fb11bf Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Feb 9 04:01:37 2014 +0100 tests: Add ne2000 qtest Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 0c5e94ee8339e1aa49020466eba232e6f7c31a0a Author: Benoît Canet <benoit.canet@xxxxxxxxxxx> Date: Wed Feb 12 17:15:07 2014 +0100 block: Open by reference will try device then node_name. Since we introduced node_name for named bs of the graph modify the opening by reference to use it as a fallback. This patch also enforce the separation of the device id and graph node namespaces. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit dd67fa5052fecf661369540d5f104720f57900a4 Author: Benoît Canet <benoit.canet@xxxxxxxxxxx> Date: Wed Feb 12 17:15:06 2014 +0100 block: Relax bdrv_lookup_bs constraints. The following patch will reuse bdrv_lookup_bs in order to open images by references so the rules of usage of bdrv_lookup_bs must be relaxed a bit. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 57b6bdf37c64985cf02b8737c550d52759059c9d Author: Benoît Canet <benoit.canet@xxxxxxxxxxx> Date: Thu Feb 13 17:22:33 2014 +0100 blockdev: Fix wrong usage of QDECREF causing snapshoted quorum to crash on close. As bdrv_open() documentation states: "The reference to the QDict belongs to the block layer * after the call (even on failure), so if the caller intends to reuse the * dictionary, it needs to use QINCREF() before calling bdrv_open." the optional options dict will not be reused after bdrv_open() and should belong to the block layer so remove the extra QDECREF(options). Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit cc67f4d1f9645e8e6d90aee84ca19162d661f082 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Feb 13 09:23:38 2014 -0500 block: mirror - use local_err to avoid NULL errp When starting a block job, commit_active_start() relies on whether *errp is set by mirror_start_job. This allows it to determine if the mirror job start failed, so that it can clean up any changes to open flags from the bdrv_reopen(). If errp is NULL, then it will not be able to determine if mirror_start_job failed or not. To avoid this, use a local Error variable, and then propagate the error (if any) to errp. Reported-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2aa4a86f59c7093e03d2ec18c5d5f08c957d1a78 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Feb 13 10:05:31 2014 +0800 qemu-iotests: Don't run 005 on vmdk split formats There would be too many extents that VMDK driver can't open all of them: 005 0s ... - output mismatch (see 005.out.bad) --- 005.out 2013-12-24 09:27:27.608181030 +0800 +++ 005.out.bad 2014-02-13 10:00:15.282184557 +0800 @@ -4,10 +4,10 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=5368709120000 small read -read 4096/4096 bytes at offset 1024 -4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +qemu-io: can't open device /tmp/qemu-iotests/t.vmdk: Could not open '/tmp/qemu-iotests/t-s1016.vmdk': Too many open files +no file open, try 'help open' small write -wrote 4096/4096 bytes at offset 8192 -4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +qemu-io: can't open device /tmp/qemu-iotests/t.vmdk: Could not open '/tmp/qemu-iotests/t-s1016.vmdk': Too many open files +no file open, try 'help open' *** done So disable the two subformats. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 18968ca1a33458f3978394499d2b70e4c32c5ad6 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Feb 12 16:30:53 2014 -0500 block: qemu-iotests - add vhdx log replay tests for qemu-img VHDX logs can now be replayed via 'qemu-img check -r all'. Add tests to verify that the log replay is successful when using qemu-img. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e001807847ba40d29450031377b84acd10066b61 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Feb 12 16:30:52 2014 -0500 block: qemu-iotests - fix test 070 (vhdx) VHDX test 070 failed, due to different output from qemu-io / qemu when opening an image read-only that contains a log file. Filter the output, and update the expected results to match the correct output. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 39a611a3e035e148257af314a522a6cd169c2d0e Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Feb 12 14:46:24 2014 -0500 block: Don't throw away errno via error_setg There are a handful of places in the block layer where a failure path has a valid -errno value, yet error_setg() is used. Those instances should instead use error_setg_errno(), to preserve as much error information as possible. This patch replaces those instances with error_setg_errno(), so that errno is passed up the stack in the error message. Reported-By: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 92838a19c161e2fe06ebc69942d943f86c70487d Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Nov 7 19:18:46 2013 +0100 tests: Add eepro100 qtest Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 85f68d552bd5826d5ba86222c03ade17079a29db Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Nov 7 18:53:28 2013 +0100 tests: Add pcnet qtest Test PCI only for now. Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 74769fe7c811b371ddd2ac1e0a4ca70addfee6ae Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Nov 7 18:43:09 2013 +0100 tests: Add rtl8139 qtest Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 4a053e7f712837e5afd103282a3fcac5c2dc16a9 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Nov 7 18:37:34 2013 +0100 tests: Add vmxnet3 qtest Note that this will emit a warning: [vmxnet3][WR][vmxnet3_peer_has_vnet_hdr]: Peer has no virtio extension. Task offloads will be emulated. Reviewed-by: Dmitry Fleytman <dmitry@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a21baf7999f5b0b3aca72c6f6d88901151392ca7 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Nov 7 18:25:10 2013 +0100 tests: Add e1000 qtest Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 9fe451a08e7f232448676a3a7cea002642720a1f Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Dec 19 22:42:26 2013 +0100 i2c: Drop FROM_I2C_SLAVE() macro We now use type-specific QOM cast macros instead. Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit dd37dfa9e73d0b13b98f28302a751d75660050a2 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Dec 19 22:41:25 2013 +0100 twl92230: QOM'ify Replace usages of FROM_I2C_SLAVE() and direct parent field accesses with QOM cast macro. Rename parent field. Add missing braces while at it. Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 59ab56b9ad543f0290fbcc29a7fb2248b2920ef8 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Dec 19 22:34:05 2013 +0100 ds1338: QOM'ify Replace usages of FROM_I2C_SLAVE() with QOM cast macro. Rename parent field. Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 933069eb534ad37db67eb5b550798170fccbc64c Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Dec 19 22:30:16 2013 +0100 lm832x: QOM'ify Replace usages of FROM_I2C_SLAVE() and direct parent field accesses with QOM cast macro. Rename parent field. Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit b8bcf811bff0a5b9fb1e8663359d3cc175d93717 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Dec 19 22:21:57 2013 +0100 max7310: QOM'ify Replace FROM_I2C_SLAVE() usages with QOM cast macro. Rename parent field. Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit b1be45153e416fa13cf6fcea704f26f4d3c2b7aa Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Dec 19 22:10:23 2013 +0100 ssd0303: QOM'ify Replace usages of FROM_I2C_SLAVE() with QOM cast macro. Rename parent field. Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit bc229b0f901ef94a8245fb619a138604e2a456bb Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Dec 19 22:04:29 2013 +0100 wm8750: QOM'ify Replace usages of FROM_I2C_SLAVE() and direct parent field accesses with QOM cast macro. Rename parent field. Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a5f96db7e826ab787ca5fc283aebded5577cb6e2 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Dec 19 21:55:44 2013 +0100 z2: QOM'ify AER915 Replace usages of FROM_I2C_SLAVE() with QOM cast macro. Rename the parent field. Reuse the type constant in z2_init(). Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> [AF: Use TYPE_AER915 in z2_init() too] Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 70b51690328872e0903e0615f32f05678f6b53cf Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Dec 19 21:51:29 2013 +0100 tosa: QOM'ify DAC Replace usages of FROM_I2C_SLAVE() with QOM cast macro. Rename parent field. Use type constant in tosa_tg_init(). Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 96dca6b9a964b96c3ce72449333ff3bdd4ce85f7 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Dec 19 21:44:53 2013 +0100 pxa2xx: QOM'ify I2C slave Replace usages of FROM_I2C_SLAVE() and direct parent field accesses with QOM cast macro. Rename parent field to assure we caught all. Reuse type constant in pxa2xx_i2c_init(). Add some missing braces while at it. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a5c828525e82dbf9f78dcc15070dd49025471afe Author: Andreas Färber <afaerber@xxxxxxx> Date: Sat Aug 3 00:18:51 2013 +0200 i2c: Rename i2c_bus to I2CBus Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 6749695eaaf346c1667067e17ecc9d7d64b7f61c Author: Andreas Färber <afaerber@xxxxxxx> Date: Wed Feb 5 15:21:38 2014 +0100 nand: Don't use qdev_create() in nand_init() Commit 7426aa72c36c908a7d0eae3e38568bb0a70de479 (nand: Don't inherit from Sysbus) changed the parent type of TYPE_NAND but continued to use qdev_create(), which handled a NULL BusState as SysBus. Use object_new() instead, and reuse the TYPE_NAND define while at it. Reported-by: Markus Armbruster <armbru@xxxxxxxxxx> Cc: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 3687d5325925a9d981c86437ff52f502a1c7648a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Jan 23 16:22:59 2014 +0000 tests: Run qom-test for every architecture Rather than requiring every new architecture to remember to add a line to the Makefile to say that qom-test will work on it, autogenerate the list of supported architectures by looking at the files in default-configs (as configure does), and add qom-test to the test list for all of them automatically. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit bb6c5e3c3a460b449ddb81be2a572561121fbe7f Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Jan 10 14:31:39 2014 +0100 qom-test: Test shutdown in addition to startup Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5c1904f103cbc5a7353fba8c8ca3cb16a0281392 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Jan 10 14:31:38 2014 +0100 qom-test: Run for all available machines Get available machines via QMP instead of hardcoding a list that's perpetually out of date. Xen machines can work only when running under the Xen hypervisor. Blacklist them. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5ec889b4b179fa39eb43bd3f4b078a7cae558acb Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Feb 14 15:09:28 2014 +0100 tests: Fix gcov paths for relocated device sources Commit 49ab747f668f421138d5b40d83fa279c4c5e278d moved fdc.c, hd-geometry.c, m48t59.c, tmp105.c into hw/ subdirectories; commit 0ddfaf7fe4c8453446730328bf348b7c6438e4f8 did for mc146818rtc.c. Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 28f106afb35a86aa01e1907ef7632e015fabce02 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Tue Feb 4 14:12:44 2014 -0500 block: Add notes to iSCSI's .bdrv_open and .bdrv_reopen_prepare iSCSI currently does not need to do any actions to support the current usage of bdrv_reopen(). However, it is important to note a couple of things: 1.) A connection will not be re-established to an iSCSI target, and 2.) If iscsi_open() is changed to parse 'flags', then iscsi_reopen_prepare() may need to be more than a stub. In light of the above, this commit adds comments above both of the functions to bring attention to these facts. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ee13ed1cbc5f7f848e417f587c93ca1f36d83eb0 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Sun Feb 9 09:52:32 2014 +0100 blockdev: Remove 'type' parameter from blockdev_init() blockdev-add doesn't know about the device that the backend will be attached to, this is a legacy -drive concept. Move the remaining checks that use it to drive_init(). [Fam Zheng <famz@xxxxxxxxxx> suggested line-wrapping to 80 chars as required by the coding standard. I have fixed this. --Stefan] Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1a838745b80ec6bcb3f78ce38aa1ccf1efc9f937 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Sun Feb 9 10:02:27 2014 +0100 sdhci: Drop unnecessary #include Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 933b19ea9784de7ed2eb6e10262b9363c5c03ed7 Author: Alexander Graf <agraf@xxxxxxx> Date: Fri Feb 14 09:15:21 2014 +0100 PPC: KVM: Add missing address space to ldl_phys helper We now have to pass an address space to our _phys helpers. During the transition apparently the EPR exit path missed out, so let's put it there. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 292363e15c92fd37bcb424fafebc2e362b6c8f03 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Jan 23 17:47:44 2014 +0100 target-ppc: Make ppc40x CPUs available in ppcemb Not only 44x CPUs (BookE) but also 40x CPUs can run with 1k page size. Move the criteria to a central inline function to avoid repetition and #ifdef'fery. Update qom-test to no longer exempt them. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit aaab89a68ed1f0ab791cfda2061be34c102490b1 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Jan 23 16:37:55 2014 +0100 ppcemb-softmmu: Drop Mac and e500 emulation They are still available in ppc-softmmu and ppc64-softmmu. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit b3be57c358b3186b675ce4452a030fd3d9f37be0 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Feb 4 20:06:47 2014 +0200 qtest: don't report signals if qtest driver enabled qtest driver always uses signals to kill qemu no need to report it, whatever the accelerator state. Add API to detect qtest driver, and suppress reporting signals in this case. Reported-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 0888a29caac6e1b668e498a0ad4d1fea15de012b Merge: f673e70 417c45a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 13 15:02:03 2014 +0000 Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging acpi,pc,pci fixes and enhancements Most changes here are hotplug related: This merges hotplug infrastructure changes by Igor, some acpi related fixes, and PC fixes. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Mon 10 Feb 2014 09:13:26 GMT using RSA key ID D28D5469 # gpg: Good signature from "Michael S. Tsirkin <mst@xxxxxxxxxx>" # gpg: aka "Michael S. Tsirkin <mst@xxxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 0270 606B 6F3C DF3D 0B17 0970 C350 3912 AFBE 8E67 # Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA 8A0D 281F 0DB8 D28D 5469 * remotes/mst/tags/for_upstream: ACPI: Remove commented-out code from HPET._CRS hw/pci: switch to a generic hotplug handling for PCIDevice pci/pcie: convert PCIE hotplug to use hotplug-handler API pci/shpc: convert SHPC hotplug to use hotplug-handler API acpi/piix4pm: convert ACPI PCI hotplug to use hotplug-handler API qdev:pci: refactor PCIDevice to use generic "hotpluggable" property hw/acpi: move typeinfo to the file end qdev: add "hotpluggable" property to Device qdev: add to BusState "hotplug-handler" link define hotplug interface loader: document that errno is set pc.c: better error message on initrd sizing failure pc_piix: enable legacy hotplug for Xen qtest: don't report signals if qtest driver enabled hw:piix4:acpi: reuse pcihp code for legacy PCI hotplug pcihp: remove unused AcpiPciHpPciStatus.device_present field pcihp: make pci_read() mmio calback compatible with legacy ACPI hotplug pcihp: make PCI hotplug mmio handlers indifferent to PCI_HOTPLUG_ADDR pcihp: replace enable|disable_device() with oneliners pcihp: reduce number of device check events Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f673e70ccc668607620cd6d30fd0b9bc7a54151d Merge: 9d74f6f ea81ce0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 13 14:52:06 2014 +0000 Merge remote-tracking branch 'remotes/afaerber/tags/prep-for-upstream' into staging PReP machine and devices * Cleanups for Raven PCI host bridge * Removal of PReP machine and devices from qemu-system-ppcemb # gpg: Signature made Mon 10 Feb 2014 16:19:03 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" * remotes/afaerber/tags/prep-for-upstream: prep: Drop from ppcemb-softmmu raven: Use constant PCI_NUM_PINS instead of 4 prep: Kill get_system_io() usage Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 9d74f6fef0801ca2ce5c9d38d59b85bf03c27669 Merge: 628a746 73db416 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 12 17:53:31 2014 +0000 Merge remote-tracking branch 'remotes/alon/pull-libcacard.glusterfs' into staging * remotes/alon/pull-libcacard.glusterfs: libcacard: Don't link with all libraries QEMU links to Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 628a746cf0d380ba8fc0fff2926c899e323768a7 Merge: a455044 e96126f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 12 16:42:50 2014 +0000 Merge remote-tracking branch 'remotes/kevin/tags/for-anthony' into staging Block patches # gpg: Signature made Sun 09 Feb 2014 08:12:51 GMT using RSA key ID C88F2FD6 # gpg: Good signature from "Kevin Wolf <kwolf@xxxxxxxxxx>" * remotes/kevin/tags/for-anthony: block: Fix 32 bit truncation in mark_request_serialising() blkdebug: Don't leak bs->file on failure block: Don't call ROUND_UP with negative values block: bdrv_aligned_pwritev: Assert overlap range block: Fix memory leaks in bdrv_co_do_pwritev() raw: Fix BlockLimits passthrough qemu-iotests: add test for qcow2 preallocation with different cluster sizes qcow2: check for NULL l2meta qcow2: fix offset overflow in qcow2_alloc_clusters_at() qcow2: remove n_start and n_end of qcow2_alloc_cluster_offset() block/iscsi: always fill bs->bl.opt_transfer_length block: Fail gracefully with missing filename qemu-iotests: enable support for NFS protocol qemu-iotests: enable test 016 and 025 to work with NFS protocol qemu-iotests: blacklist test 020 for NFS protocol qemu-iotests: change _supported_proto to file for various tests block: add native support for NFS qemu-iotest: Make 077 raw-only Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 5631e69c269c6b832837715a3bd4d685120a2713 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Dec 11 08:42:08 2013 -0800 target-openrisc: Use new qemu_ld/st opcodes Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Acked-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit a4550442b947d2c2b346bd2efc8fe3da16425f4d Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Mon Dec 16 12:44:20 2013 +1000 petalogix-ml605: Create the CPU with object_new() This is to allow future patches to set properties before cpu::realize(). Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 2e38847b8d3055f5203d7a258c4a48845cdb4f11 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Fri Dec 13 16:31:02 2013 +1000 exec: Make cpu_memory_rw_debug use the CPUs AS Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 2a221651949a8dcf74faa0989d7b0dda96a76911 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Fri Dec 13 16:28:52 2013 +1000 exec: Make cpu_physical_memory_write_rom input an AS Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit db3be60deb01af6ee72edc7fa13f0ff820029831 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Tue Dec 17 15:29:06 2013 +1000 exec: Make stb_phys input an AddressSpace Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 5ce5944dc0ffdc43c11b5cad11e526f699aabe4c Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Tue Dec 17 15:22:06 2013 +1000 exec: Make stw_*_phys input an AddressSpace Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 2198a121434b806636318d62c89595c1955e825a Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Thu Nov 28 10:13:41 2013 +0100 exec: Make stl_phys_notdirty input an AddressSpace Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit ab1da85791340e504d10487e1add81b9988afa98 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Tue Dec 17 15:07:29 2013 +1000 exec: Make stl_*_phys input an AddressSpace Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit f606604f1c10b60ef294f1b9b229426521a365e3 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Thu Nov 28 00:11:44 2013 +0100 exec: Make stq_*_phys input an AddressSpace Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 41701aa4ee11aafebb696c2e778ce0e57bcfc84f Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Tue Dec 17 14:33:56 2013 +1000 exec: Make lduw_*_phys input an AddressSpace Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 2c17449b3022ca9623c4a7e2a504a4150ac4ad30 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Tue Dec 17 14:05:40 2013 +1000 exec: Make ldq/ldub_*_phys input an AddressSpace Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit fdfba1a298ae26dd44bcfdb0429314139a0bc55a Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Fri Nov 15 14:46:38 2013 +0100 exec: Make ldl_*_phys input an AddressSpace Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 33bde2e13f36b9331e35b6e531bc06e8567b4f64 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Thu Nov 21 19:06:30 2013 +0100 exec: On AS changes, only flush affected CPU TLBs Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 09daed848c3de60b7979eda709dc4bae5195273d Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Tue Dec 17 13:06:51 2013 +1000 cpu: Add per-cpu address space Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit c6c6958c98687543bcb12bdf5492e7a48d535511 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Thu Nov 21 18:36:42 2013 +0100 memory: Add MemoryListener to typedefs.h Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 1b3fb98ff0c72f233e41e6dee55b25d9303a7cdf Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Thu Nov 7 18:43:28 2013 +0100 exec: Make memory_region_section_get_iotlb use section AS Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 3be91e862a6cc68a1872ac5b84685f4bb8910280 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Thu Nov 7 18:42:51 2013 +0100 exec: Always initialize MemorySection address spaces Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 777170946fc66120ec645699982ca24a8df95ead Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Thu Nov 7 19:55:56 2013 +0100 exec: Make iotlb_to_region input an AS Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 29d8ec7beebbf4d8f6094df91ad383b98d768b32 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Thu Nov 7 19:43:10 2013 +0100 exec: Make tb_invalidate_phys_addr input an AS No functional change. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 8fa7574904793396694fa88834751a93bcdf4e10 Merge: 702f6df 69991d7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Feb 11 11:26:36 2014 +0000 Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20140208' into staging target-arm queue: * more A64 Neon instructions * AArch32 VCVTB and VCVTT ARMv8 instructions * fixes to inaccuracies in GIC emulation * libvixl disassembler for A64 * Allwinner SoC ethernet controller * zynq software system reset support # gpg: Signature made Sat 08 Feb 2014 15:53:05 GMT using RSA key ID 14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@xxxxxxxxxx>" * remotes/pmaydell/tags/pull-target-arm-20140208: (29 commits) arm/zynq: Add software system reset via SCLR hw/arm/allwinner-a10: initialize EMAC hw/net: add support for Allwinner EMAC Fast Ethernet controller util/fifo8: clear fifo head upon reset util/fifo8: implement push/pop of multiple bytes disas: Implement disassembly output for A64 disas/libvixl: Fix upstream libvixl compilation issues disas: Add subset of libvixl sources for A64 disassembler rules.mak: Link with C++ if we have a C++ compiler rules.mak: Support .cc as a C++ source file suffix arm_gic: Add GICC_APRn state to the GICState vmstate: Add uint32 2D-array support arm_gic: Support setting/getting binary point reg arm_gic: Keep track of SGI sources arm_gic: Fix GIC pending behavior target-arm: Add support for AArch32 64bit VCVTB and VCVTT target-arm: A64: Add FNEG and FABS to the SIMD 2-reg-misc group target-arm: A64: Add 2-reg-misc REV* instructions target-arm: A64: Add narrowing 2-reg-misc instructions target-arm: A64: Implement 2-reg-misc CNT, NOT and RBIT ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 702f6df9602a445103c55ac21af11c7aaedb9b34 Merge: a87f395 f8b7ee3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Feb 10 18:31:06 2014 +0000 Merge remote-tracking branch 'remotes/kvaneesh/for-upstream' into staging * remotes/kvaneesh/for-upstream: hw/9pfs: fix P9_STATS_GEN handling hw/9pfs: make get_st_gen() return ENOTTY error on special files hw/9pfs: handle undefined FS_IOC_GETVERSION case in handle_ioc_getversion() hw/9pfs: fix error handing in local_ioc_getversion() Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a87f39543a9259f671c5413723311180ee2ad2a8 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Feb 7 15:47:46 2014 +0100 memory: fix limiting of translation at a page boundary Commit 360e607 (address_space_translate: do not cross page boundaries, 2014-01-30) broke MMIO accesses in cases where the section is shorter than the full register width. This can happen for example with the Bochs DISPI registers, which are 16 bits wide but have only a 1-byte long MemoryRegion (if you write to the "second byte" of the register your access is discarded; it doesn't write only to half of the register). Restrict the action of commit 360e607 to direct RAM accesses. This is enough for Xen, since MMIO will not go through the mapcache. Reported-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Tested-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit ea81ce06a4d65c62cd8f2a3797953602fb7d7456 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Thu Jan 23 11:22:16 2014 +0100 prep: Drop from ppcemb-softmmu ppcemb covers only embedded processors, which does not include PReP. Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 736d120af4bf5f3e13b2f90c464b3a24847f78f0 Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Wed Jan 22 18:35:32 2014 +0100 target-mips: add user-mode FR switch support for MIPS32r5 Description of UFR feature: Required in MIPS32r5 if floating point is implemented and user-mode FR switching is supported. The UFR register allows user-mode to clear StatusFR by executing a CTC1 to UFR with GPR[0] as input, and read StatusFR by executing a CFC1 to UFR. helper_ctc1 has been extended with an additional parameter rt to check requirements for UFR feature. Definition of mips32r5-generic has been modified to include support for UFR. Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Reviewed-by: Eric Johnson <eric.johnson@xxxxxxxxxx> commit b4dd99a3636f5a3044dfd9dba7653ca377a9aeba Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Fri Jan 17 19:25:57 2014 +0100 target-mips: add support for CP0_Config5 Add CP0_Config5, define rw_bitmask and enable modifications. Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Reviewed-by: Eric Johnson <eric.johnson@xxxxxxxxxx> commit b4160af160ba045e3a25013b4def4a39f09cbb78 Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Fri Jan 24 13:45:05 2014 +0100 target-mips: add support for CP0_Config4 Add CP0_Config4, define rw_bitmask. Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Reviewed-by: Eric Johnson <eric.johnson@xxxxxxxxxx> commit e527526d355570615533d38236818c759f29d889 Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Wed Jan 15 17:01:46 2014 +0100 target-mips: add CPU definition for MIPS32R5 Add mips32r5-generic among CPU definitions for MIPS. Define ISA_MIPS32R3 and ISA_MIPS32R5. Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Reviewed-by: Eric Johnson <eric.johnson@xxxxxxxxxx> commit 417c45ab2f847c0a47b1232f611aa886df6a97d5 Author: Gabriel L. Somlo <gsomlo@xxxxxxxxx> Date: Fri Feb 7 10:30:40 2014 -0500 ACPI: Remove commented-out code from HPET._CRS IRQNoFlags on HPET._CRS crashes WinXP because it causes the HPET to conflict with the system timer and/or the RTC. It only occurs on Apple hardware, and even there it is exposed fully only when OS X is detected (via _OSI). Recent OS X versions work on QEMU without this statement, so at this time there is no need to find a better way to conditionally include the statement. This patch removes the commented out (and wrong, should have been {0, 8}) statement from HPET._CRS. Signed-off-by: Gabriel Somlo <somlo@xxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-By: Igor Mammedov <imammedo@xxxxxxxxxx> commit 5e95494380ecf83c97d28f72134ab45e0cace8f9 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Feb 5 16:36:52 2014 +0100 hw/pci: switch to a generic hotplug handling for PCIDevice make qdev_unplug()/device_set_realized() to call hotplug handler's plug/unplug methods if available and remove not needed anymore hot(un)plug handling from PCIDevice. In case if hotplug handler is not available, revert to the legacy hotplug method for compatibility with not yet converted buses. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a66e657e18cd9b70e9f57ae5512c07faf2bc508f Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Feb 5 16:36:51 2014 +0100 pci/pcie: convert PCIE hotplug to use hotplug-handler API Split pcie_cap_slot_hotplug() into hotplug/unplug callbacks and register them as "hotplug-handler" interface implementation of PCIE_SLOT device. Replace pci_bus_hotplug() wiring with setting link on PCI BUS "hotplug-handler" property to PCI_BRIDGE_DEV device. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 5d268704d7c2bc58c38b87d7d94804639ef100ec Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Feb 5 16:36:50 2014 +0100 pci/shpc: convert SHPC hotplug to use hotplug-handler API Split shpc_device_hotplug() into hotplug/unplug callbacks and register them as "hotplug-handler" interface implementation of PCI_BRIDGE_DEV device. Replace pci_bus_hotplug() wiring with setting link on PCI BUS "hotplug-handler" property to PCI_BRIDGE_DEV device. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c24d5e0b91d138f8cc95f5694d4964de36a739d3 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Feb 5 16:36:49 2014 +0100 acpi/piix4pm: convert ACPI PCI hotplug to use hotplug-handler API Split piix4_device_hotplug() into hotplug/unplug callbacks and register them as "hotplug-handler" interface implementation of PIIX4_PM device. Replace pci_bus_hotplug() wiring with setting link on PCI BUS "hotplug-handler" property to PIIX4_PM device. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 2897ae026758eac78284ba6c3bd7732f3a1d9987 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Feb 5 16:36:48 2014 +0100 qdev:pci: refactor PCIDevice to use generic "hotpluggable" property Get rid of PCIDevice specific PCIDeviceClass.no_hotplug and use generic DeviceClass.hotpluggable field instead. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 5fdae20cef2857a2c63c8d4fa7df6274d6d7c3c8 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Feb 5 16:36:47 2014 +0100 hw/acpi: move typeinfo to the file end do so to avoid not necessary forward declarations and place typeinfo registration at the file end where it's usually expected. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 1a37eca107cece3ed454bae29eef0bd1fac4a244 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Feb 5 16:36:46 2014 +0100 qdev: add "hotpluggable" property to Device Currently it's possible to make PCIDevice not hotpluggable by using no_hotplug field of PCIDeviceClass. However it limits this only to PCI devices and prevents from generalizing hotplug code. So add similar field to DeviceClass so it could be reused with other Devices and would allow to replace PCI specific hotplug callbacks with generic implementation. Following patches will replace PCIDeviceClass.no_hotplug with this new property. In addition expose field as "hotpluggable" readonly property, to make it possible to read its value via QOM interface. Make DeviceClass hotpluggable by default as it was assumed before. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 0ee4de6ce1d403b3d8017b340cec772c3c5c106f Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Feb 5 16:36:45 2014 +0100 qdev: add to BusState "hotplug-handler" link It will allow to reuse field with different BUSes, reducing code duplication. Field is intended for replacing 'hotplug_qdev' field in PCIBus and also will allow to avoid adding equivalent field to DimmBus with possiblitity to refactor other BUSes to use it instead of custom field. In addition once all users of allow_hotplug field are converted to new API, link could replace allow_hotplug field in qdev hotplug code. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9f117d41841e13ca29cc2a10ac03258339ea1f8b Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Feb 5 16:36:44 2014 +0100 define hotplug interface Provide a generic hotplug interface for hotplug handlers. Intended for replacing hotplug mechanism used by PCI/PCIE/SHPC code and will be used for memory hotplug. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a1483f88b6e21dd3ea481a021e5d4f7f273204c6 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Feb 5 21:57:55 2014 +0200 loader: document that errno is set Document that get_image_size sets errno on failure. Suggested-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 963116b0b36feac8bca435371528b2ee374608f1 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Tue Nov 5 00:09:44 2013 +0100 raven: Use constant PCI_NUM_PINS instead of 4 Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit c0f2bf9b3f6d8b5961b47b0affbb5456e6123e68 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Tue Nov 5 00:09:43 2013 +0100 prep: Kill get_system_io() usage While ISA address space in prep machine is currently the one returned by get_system_io(), this depends of the implementation of i82378/raven devices, and this may not be the case forever. Use the right ISA address space when adding some more ports to it. We can use whatever ISA device on the right ISA bus, as all ISA devices on the same ISA bus share the same ISA address space. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 73db416ae7941f8ffeabc060ec87402b97314b6d Author: Christophe Fergeau <cfergeau@xxxxxxxxxx> Date: Thu Jan 30 14:56:49 2014 +0100 libcacard: Don't link with all libraries QEMU links to As described in https://bugzilla.redhat.com/show_bug.cgi?id=987441 , libcacard currently links to all the libraries QEMU is linking to, including glusterfs libraries, libiscsi, ... libcacard does not need all of these. This patch ensures it's only linked with the libraries it needs. Signed-off-by: Christophe Fergeau <cfergeau@xxxxxxxxxx> Signed-off-by: Alon Levy <alevy@xxxxxxxxxx> commit e96126ffa53d36ec75a1ee900a6b7e7c82d9bb9c Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Sat Feb 8 10:42:18 2014 +0100 block: Fix 32 bit truncation in mark_request_serialising() On 32 bit hosts, size_t is too small for align as the bitmask ~(align - 1) will zero out the higher 32 bits of the offset. While at it, change the local overlap_bytes variable to unsigned to match the field in BdrvTrackedRequest. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit eaf944a43835399f12808aebd0d0a1db6249ed07 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Sat Feb 8 09:53:22 2014 +0100 blkdebug: Don't leak bs->file on failure Reported-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit 5f5bcd80f8c365bca1480dc39141952fa7f88c71 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Feb 7 16:00:09 2014 +0100 block: Don't call ROUND_UP with negative values The behaviour of the ROUND_UP macro with negative numbers isn't obvious. It happens to do the right thing in this please, but better avoid it. Suggested-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit af91f9a73c3a67eebbf4120cae62b82db8eaae19 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Feb 7 15:35:56 2014 +0100 block: bdrv_aligned_pwritev: Assert overlap range This adds assertions that the request that we actually end up passing to the block driver (which includes RMW data and has therefore potentially been rounded to alignment boundaries) is fully covered by the overlap_{offset,size} fields of the associated BdrvTrackedRequest. Suggested-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit 99c4a85ce65863e6ba6668164d47c0d7c645e3aa Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Feb 7 15:29:00 2014 +0100 block: Fix memory leaks in bdrv_co_do_pwritev() The error path for a failure in one of the two bdrv_aligned_preadv() calls leaked head_buf or tail_buf, respectively. This fixes the memory leak. Reported-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit ad6aef43d36fe65701ff84193576d7f3dcb82dc5 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Feb 4 11:54:13 2014 +0100 raw: Fix BlockLimits passthrough raw copies over the BlockLimits of bs->file during bdrv_open(). However, since commit d34682cd it is immediately overwritten during bdrv_refresh_limits(). This caused all fields except for opt_transfer_length and opt_mem_alignment (which happen to be correctly inherited in generic code) to be zeroed. Move the BlockLimit assignment to a .bdrv_refresh_limits() callback to make it work again for all fields. Reported-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit 693a50ade339e3ef9b042fd73a3b81405101ba3d Author: Hu Tao <hutao@xxxxxxxxxxxxxx> Date: Sun Jan 26 11:12:40 2014 +0800 qemu-iotests: add test for qcow2 preallocation with different cluster sizes Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7c2bbf4aa66ca5a9fc2ca147e0e6cb6f407a3aa2 Author: Hu Tao <hutao@xxxxxxxxxxxxxx> Date: Sun Jan 26 11:12:39 2014 +0800 qcow2: check for NULL l2meta In the case of a metadata preallocation with a large cluster size, qcow2_alloc_cluster_offset() can allocate nothing and returns a NULL l2meta. This patch checks for it and link2 l2 with only valid l2meta. Replace 9 and 512 with BDRV_SECTOR_BITS, BDRV_SECTOR_SIZE respectively while at the function. Signed-off-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 33304ec9fa484e765c6249673e09e1b7d49c5b85 Author: Hu Tao <hutao@xxxxxxxxxxxxxx> Date: Sun Jan 26 11:12:38 2014 +0800 qcow2: fix offset overflow in qcow2_alloc_clusters_at() When cluster size is big enough it can lead to an offset overflow in qcow2_alloc_clusters_at(). This patch fixes it. The allocation is stopped each time at L2 table boundary (see handle_alloc()), so the possible maximum bytes could be 2^(cluster_bits - 3 + cluster_bits) cluster_bits - 3 is used to compute the number of entry by L2 and the additional cluster_bits is to take into account each clusters referenced by the L2 entries. so int is safe for cluster_bits<=17, unsafe otherwise. Signed-off-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 16f0587e0a5da5b1ad76cb7c3739491bc042201c Author: Hu Tao <hutao@xxxxxxxxxxxxxx> Date: Sun Jan 26 11:12:37 2014 +0800 qcow2: remove n_start and n_end of qcow2_alloc_cluster_offset() n_start can be actually calculated from offset. The number of sectors to be allocated(n_end - n_start) can be passed in in num. By removing n_start and n_end, we can save two parameters. The side effect is there is a bug in qcow2.c:preallocate() that passes incorrect n_start to qcow2_alloc_cluster_offset() is fixed. The bug can be triggerred by a larger cluster size than the default value(65536), for example: ./qemu-img create -f qcow2 \ -o 'cluster_size=131072,preallocation=metadata' file.img 4G Signed-off-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 5d259fc7da83249a4f78fe32de2bc2874a997a9f Author: Peter Lieven <pl@xxxxxxx> Date: Wed Jan 29 13:03:35 2014 +0100 block/iscsi: always fill bs->bl.opt_transfer_length the opt_transfer_length has nothing to do with logical block provisioning stuff so always copy it from the block limits VPD page. Reported-By: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 765003db029ed4660a09807958276e251de84fac Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Feb 3 14:49:42 2014 +0100 block: Fail gracefully with missing filename This fixes a regression introduced in commit 2a05cbe42 ('block: Allow block devices without files'): $ qemu-system-x86_64 -drive driver=file qemu-system-x86_64: block.c:892: bdrv_open_common: Assertion `!drv->bdrv_needs_filename || filename != ((void *)0)' failed. Now the respective check must be performed not only in bdrv_file_open(), but also in bdrv_open(). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 170632dbc9f75217861dd8bf2e6da3c269a1ba18 Author: Peter Lieven <pl@xxxxxxx> Date: Mon Feb 3 10:26:17 2014 +0100 qemu-iotests: enable support for NFS protocol Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a19737f1bdcca1de3d0c1d7c87935d89d5ccc1e5 Author: Peter Lieven <pl@xxxxxxx> Date: Mon Feb 3 10:26:16 2014 +0100 qemu-iotests: enable test 016 and 025 to work with NFS protocol Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit ecd792fd2178570b8bcf399a86af5a6d9504437b Author: Peter Lieven <pl@xxxxxxx> Date: Mon Feb 3 10:26:15 2014 +0100 qemu-iotests: blacklist test 020 for NFS protocol reopening is currently not supported. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1f7bf7d0687f5a58613358f5e7cfd8f29a3a21e2 Author: Peter Lieven <pl@xxxxxxx> Date: Mon Feb 3 10:26:14 2014 +0100 qemu-iotests: change _supported_proto to file for various tests all these tests do anything of the following and thus fail with any protocol other than file: - the tests use rm, cp or mv shell commands which only work on file - the tests use qcow2.py - the images construct new filenames (e.g. backing file names) and the logic is broken for anything else than file Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 6542aa9c75bcef5a549b8ac1ce34d0ec6782a3c2 Author: Peter Lieven <pl@xxxxxxx> Date: Mon Feb 3 10:26:13 2014 +0100 block: add native support for NFS This patch adds native support for accessing images on NFS shares without the requirement to actually mount the entire NFS share on the host. NFS Images can simply be specified by an url of the form: nfs://<host>/<export>/<filename>[?param=value[¶m2=value2[&...]]] For example: qemu-img create -f qcow2 nfs://10.0.0.1/qemu-images/test.qcow2 You need LibNFS from Ronnie Sahlberg available at: git://github.com/sahlberg/libnfs.git for this to work. During configure it is automatically probed for libnfs and support is enabled on-the-fly. You can forbid or enforce libnfs support with --disable-libnfs or --enable-libnfs respectively. Due to NFS restrictions you might need to execute your binaries as root, allow them to open priviledged ports (<1024) or specify insecure option on the NFS server. For additional information on ROOT vs. non-ROOT operation and URL format + parameters see: https://raw.github.com/sahlberg/libnfs/master/README Supported by qemu are the uid, gid and tcp-syncnt URL parameters. LibNFS currently support NFS version 3 only. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f51062061e6adf64a879177f35ff5c6babb63e7e Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Jan 30 12:52:47 2014 +0100 qemu-iotest: Make 077 raw-only The qemu-io command sequences make the assumption that an unaligned request on the format layer will be unaligned on the blkdebug layer as well. This doesn't necessarily hold true for drivers other than raw. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Benoît Canet <benoit@xxxxxxxxxxx> commit 1f6b12f75f2c22f861d0202374033a7594c91707 Merge: 3ea3bd6 f41152b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 8 15:57:51 2014 +0000 Merge remote-tracking branch 'remotes/mwalle/tags/lm32-fixes/20140204' into staging target-lm32: fixes # gpg: Signature made Tue 04 Feb 2014 18:47:56 GMT using DSA key ID 3F98A378 # gpg: Can't check signature: public key not found * remotes/mwalle/tags/lm32-fixes/20140204: hw/lm32: print error if cpu model is not found target-lm32: stop VM on illegal or unknown instruction lm32_sys: dump cpu state if test case fails lm32_sys: print test result on stderr target-lm32: add breakpoint/watchpoint support target-lm32: move model features to LM32CPU target-lm32: kill cpu_abort() calls milkymist-vgafb: swap pixel data in source buffer lm32_uart/lm32_juart: use qemu_chr_fe_write_all() milkymist-uart: use qemu_chr_fe_write_all() instead of qemu_chr_fe_write() tests: lm32: new rule for single test cases lm32_sys: increase test case name length limit Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 69991d7dcbcf7f3fe38274bc67fcba3cbbfda0cf Author: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Date: Wed Feb 5 08:31:55 2014 +0100 arm/zynq: Add software system reset via SCLR Support software-driven system reset via the register in the SCLR. Signed-off-by: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit db7dfd4c7e4450b10048a53ce67bcac6305ad383 Author: Beniamino Galvani <b.galvani@xxxxxxxxx> Date: Thu Jan 30 23:02:07 2014 +0100 hw/arm/allwinner-a10: initialize EMAC Signed-off-by: Beniamino Galvani <b.galvani@xxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 22f90bcb2be021bb894438ddfeb10c75fa7502d8 Author: Beniamino Galvani <b.galvani@xxxxxxxxx> Date: Thu Jan 30 23:02:06 2014 +0100 hw/net: add support for Allwinner EMAC Fast Ethernet controller This patch adds support for the Fast Ethernet MAC found on Allwinner SoCs, together with a basic emulation of Realtek RTL8201CP PHY. Since there is no public documentation of the Allwinner controller, the implementation is based on Linux kernel driver. Signed-off-by: Beniamino Galvani <b.galvani@xxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 58892d4782bf516e8356e3adfe4fc9b10c397b2f Author: Beniamino Galvani <b.galvani@xxxxxxxxx> Date: Thu Jan 30 23:02:05 2014 +0100 util/fifo8: clear fifo head upon reset To improve the predictability of fifo8_pop_buf(), the fifo head is set to the start of data buffer upon a reset so that the first call to the function will be able to retrieve all data in the fifo. Signed-off-by: Beniamino Galvani <b.galvani@xxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c4e57af85272f98c28ccaaace040d2abb0ec85c4 Author: Beniamino Galvani <b.galvani@xxxxxxxxx> Date: Thu Jan 30 23:02:04 2014 +0100 util/fifo8: implement push/pop of multiple bytes The patch adds functions fifo8_push_all() and fifo8_pop_buf() which can be used respectively to push the content of a memory buffer to the fifo and to pop multiple bytes obtaining a pointer to the fifo backing buffer. In addition, it implements fifo8_num_free() and fifo8_num_used() which allow to check if a multi-byte operation can be performed. Signed-off-by: Beniamino Galvani <b.galvani@xxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 999b53ec8794f203964db3ecf939a3da5c4bc843 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Wed Feb 5 17:27:28 2014 +0000 disas: Implement disassembly output for A64 Use libvixl to implement disassembly output in debug logs for A64, for use with both AArch64 hosts and targets. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> [PMM: * added support for target disassembly * switched to custom QEMUDisassembler so the output format matches what QEMU expects * make sure we correctly fall back to "just print hex" if we didn't build the AArch64 disassembler because of lack of a C++ compiler * rename from 'aarch64' to 'arm-a64' because this is a disassembler for the A64 instruction set * merge aarch64.c and aarch64-cxx.cc into one C++ file * simplify the aarch64.c<->aarch64-cxx.cc interface] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 37fd5b53ba688e2a32d3966870361e667381ca95 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 5 17:27:28 2014 +0000 disas/libvixl: Fix upstream libvixl compilation issues Fix various minor issues with upstream libvixl so that it will compile successfully on the platforms QEMU cares about: * remove unused GBytes constant (it clashes with the glib headers) * fix suffixes on constants to use 'LL' for 64 bit constants so we can compile on 32 bit hosts Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 878a735d009d1e90e96d6c5c6f9471aa4ec2ba65 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 5 17:27:27 2014 +0000 disas: Add subset of libvixl sources for A64 disassembler Add the subset of the libvixl sources that are needed for the A64 disassembler support. These sources come from https://github.com/armvixl/vixl commit 578645f14e122d2b which is VIXL release 1.1. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3144f78b3f8d517d32641a7b606b67e7b3cc16f7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 5 17:27:27 2014 +0000 rules.mak: Link with C++ if we have a C++ compiler If we have a C++ compiler available, link with it, because we might be linking some C++ files in. This allows us to include C++ object files in the QEMU binary proper. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit c3dc9fd5ac892b88b956d8c90c0e8de14c08e0fc Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 5 17:27:27 2014 +0000 rules.mak: Support .cc as a C++ source file suffix The A64 disassembler libvixl uses .cc as its suffix for C++ source files, so add support for it (we already support .cpp). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit a9d477c4e3d614409a48d12f34624c2dd9f1ec2d Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Mon Nov 18 19:26:33 2013 -0800 arm_gic: Add GICC_APRn state to the GICState The GICC_APRn registers are not currently supported by the ARM GIC v2.0 emulation. This patch adds the missing state. Note that we also change the number of APRs to use a define GIC_NR_APRS based on the maximum number of preemption levels. This patch also adds RAZ/WI accessors for the four registers on the emulated CPU interface. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a1b1d277cdaac98f25be249e7819aac781a35530 Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Fri Sep 20 20:35:06 2013 +0100 vmstate: Add uint32 2D-array support Add support for saving VMState of 2D arrays of uint32 values. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit aa7d461ae9dd79d35999f4710743cdf9dec88cef Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Thu Sep 12 22:18:20 2013 -0700 arm_gic: Support setting/getting binary point reg Add a binary_point field to the gic emulation structure and support setting/getting this register now when we have it. We don't actually support interrupt grouping yet, oh well. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 40d225009efe17cad647b4b7424b77a3ace232f1 Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Mon Nov 18 20:32:00 2013 -0800 arm_gic: Keep track of SGI sources Right now the arm gic emulation doesn't keep track of the source of an SGI (which apparently Linux guests don't use, or they're fine with assuming CPU 0 always). Add the necessary matrix on the GICState structure and maintain the data when setting and clearing the pending state of an IRQ and make the state visible to the guest. Note that we always choose to present the source as the lowest-numbered CPU in case multiple cores have signalled the same SGI number to a core on the system. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8d999995e45c1002aa11f269c98f2e93e6f8c42a Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Mon Nov 18 20:32:00 2013 -0800 arm_gic: Fix GIC pending behavior The existing implementation of the pending behavior in gic_set_irq, gic_complete_irq, and the distributor pending set/clear registers does not follow the semantics of the GICv2.0 specs, but may implement the 11MPCore support. Therefore, maintain the existing semantics for 11MPCore and v7M NVIC and change the behavior to be in accordance with the GICv2.0 specs for "generic implementations" (s->revision == 1 || s->revision == 2). Generic implementations distinguish between setting a level-triggered interrupt pending through writes to the GICD_ISPENDR and when hardware raises the interrupt line. Writing to the GICD_ICPENDR will not cause the interrupt to become non-pending if the line is still active, and conversely, if the line is deactivated but the interrupt is marked as pending through a write to GICD_ISPENDR, the interrupt remains pending. Handle this situation in the GIC_TEST_PENDING (which now becomes a static inline named gic_test_pending) and let the 'pending' field correspond only to the latched state of the D-flip flop in the GICv2.0 specs Figure 4-10. The following changes are added: gic_test_pending: Make this a static inline and split out the 11MPCore from the generic behavior. For the generic behavior, consider interrupts pending if: ((s->irq_state[irq].pending & (cm) != 0) || (!GIC_TEST_EDGE_TRIGGER(irq) && GIC_TEST_LEVEL(irq, cm)) gic_set_irq: Split out the 11MPCore from the generic behavior. For the generic behavior, always GIC_SET_LEVEL() on positive level, but only GIC_SET_PENDING for edge-triggered interrupts and always simply GIC_CLEAR_LEVEL() on negative level. gic_complete_irq: Only resample the line for line-triggered interrupts on an 11MPCore. Generic implementations will sample the line directly in gic_test_pending(). Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 239c20c7c87816402acdb118a5295acda9d25c5c Author: Will Newton <will.newton@xxxxxxxxxx> Date: Wed Jan 29 10:31:51 2014 +0000 target-arm: Add support for AArch32 64bit VCVTB and VCVTT Add support for the AArch32 floating-point half-precision to double- precision conversion VCVTB and VCVTT instructions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: fixed a minor missing-braces style issue] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f93d0138959918f896b91b43c99a56a50a2e8463 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Feb 3 23:31:52 2014 +0000 target-arm: A64: Add FNEG and FABS to the SIMD 2-reg-misc group Add the SIMD FNEG and FABS instructions in the SIMD 2-reg-misc group. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 39d8211893efdc5cbcd6a8f51a65e33eac6fa3da Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Feb 3 23:31:52 2014 +0000 target-arm: A64: Add 2-reg-misc REV* instructions Add the byte-reverse operations REV64, REV32 and REV16 from the two-reg-misc group. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit d980fd59a49b06f8431fdb418068c2acc0fce8d5 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Feb 3 23:31:52 2014 +0000 target-arm: A64: Add narrowing 2-reg-misc instructions Add the narrowing integer instructions in the 2-reg-misc class. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 86cbc418ce764b877c2db8993f1f7a05d9be7702 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Feb 3 23:31:51 2014 +0000 target-arm: A64: Implement 2-reg-misc CNT, NOT and RBIT Implement the 2-reg-misc CNT, NOT and RBIT instructions. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 94b6c911c644de8621b7be48b0fa0f9c2b7a2122 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Feb 3 23:31:51 2014 +0000 target-arm: A64: Implement 2-register misc compares, ABS, NEG Implement the simple 2-register-misc operations we can share with the scalar-two-register-misc code. (SUQADD, USQADD, SQABS, SQNEG also fall into this category, but aren't implemented in the scalar-2-register case yet either.) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 45aecc6dbb9e282bd880d155f80018a192c90ff2 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 8 14:46:56 2014 +0000 target-arm: A64: Add skeleton decode for SIMD 2-reg misc group Add a skeleton decode for the SIMD 2-reg misc group. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit effa8e06435e6a47a3a21e50fd638b6fb29e616a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 8 14:46:56 2014 +0000 target-arm: A64: Add SIMD simple 64 bit insns from scalar 2-reg misc Implement the simple 64 bit integer operations from the SIMD scalar 2-register misc group (C3.6.12): the comparisons against zero, plus ABS and NEG. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit c0b2b5fa3651caff0b33621583a3709a8875e85f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 8 14:46:56 2014 +0000 target-arm: A64: Implement remaining integer scalar-3-same insns Implement the remaining integer instructions in the scalar-three-reg-same group: SQADD, UQADD, SQSUB, UQSUB, SQSHL, UQSHL, SQRSHL, UQRSHL, SQDMULH, SQRDMULH. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3720a7ea364607a19b26745c40e648a1c0e20523 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 8 14:46:56 2014 +0000 target-arm: A64: Implement scalar pairwise ops Implement the instructions in the scalar pairwise group (C3.6.8). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit c1de788ab9584e9629d6e9004d8cddd428b6cbe4 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 8 14:46:55 2014 +0000 tcg: Add TCGV_UNUSED_PTR, TCGV_IS_UNUSED_PTR, TCGV_EQUAL_PTR We have macros for marking TCGv values as unused, checking if they are unused and comparing them to each other. However these only exist for TCGv_i32 and TCGv_i64; add them for TCGv_ptr as well. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0173a00521e3d66afbeb0d0b19e78ac68095b7e7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 8 14:46:55 2014 +0000 target-arm: A64: Implement pairwise integer ops from 3-reg-same SIMD Implement the pairwise integer operations in the 3-reg-same SIMD group: ADDP, SMAXP, SMINP, UMAXP and UMINP. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8b12a0cfc1449b1a0768705e61df5235bf93160d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 8 14:46:55 2014 +0000 target-arm: A64: Implement remaining non-pairwise int SIMD 3-reg-same insns Implement the SIMD 3-reg-same instructions where the size == 3 case is reserved: SHADD, UHADD, SRHADD, URHADD, SHSUB, UHSUB, SMAX, UMAX, SMIN, UMIN, SABD, UABD, SABA, UABA, MLA, MLS, MUL, PMUL, SQRDMULH, SQDMULH. (None of these have scalar-3-same versions.) This completes the non-pairwise integer instructions in this category. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6d9571f7d842a2112937fb161a5c077ca4cac757 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 8 14:46:55 2014 +0000 target-arm: A64: Implement SIMD 3-reg-same shift and saturate insns Implement the SIMD 3-reg-same instructions SQADD, UQADD, SQSUB, UQSUB, SSHL, USHL, SQSHl, UQSHL, SRSHL, URSHL, SQRSHL, UQRSHL; these are all simple calls to existing Neon helpers. We also enable SSHL, USHL, SRSHL and URSHL for the 3-reg-same-scalar category (but not the others because they can have non-size-64 operands and the scalar_3reg_same function doesn't support that yet.) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3ea3bd62451ac79478b440ad9fe2a4cd69783a1f Merge: 4db0014 89db998 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 8 13:12:50 2014 +0000 Merge remote-tracking branch 'remotes/juanquintela/tags/migration/20140204-1' into staging migration/next for 20140204 # gpg: Signature made Tue 04 Feb 2014 15:52:00 GMT using RSA key ID 5872D723 # gpg: Can't check signature: public key not found * remotes/juanquintela/tags/migration/20140204-1: Don't abort on memory allocation error Don't abort on out of memory when creating page cache XBZRLE cache size should not be larger than guest memory size migration:fix free XBZRLE decoded_buf wrong Add check for cache size smaller than page size Set xbzrle buffers to NULL after freeing them to avoid double free errors exec: fix ram_list dirty map optimization vmstate: Make VMSTATE_STRUCT_POINTER take type, not ptr-to-type Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4db0014521a6820415298e10978b53dee3440f56 Merge: 91abb80 41419b0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Feb 7 16:42:13 2014 +0000 Merge remote-tracking branch 'remotes/kraxel/tags/pull-roms-1' into staging Update seabios to 1.7.4 # gpg: Signature made Mon 03 Feb 2014 14:42:44 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/kraxel/tags/pull-roms-1: Update seabios binaries to 1.7.4 Update seabios submodule to 1.7.4 roms: remove explicit MAKEFLAGS from recursive make invocations Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 91abb80b5f66e8387ae1a5ba85083e49b877938c Merge: bc1c721 56db2e5 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Feb 7 16:03:13 2014 +0000 Merge remote-tracking branch 'remotes/stefanha/tags/qtest-for-peter' into staging qtest resource cleanup patches # gpg: Signature made Tue 04 Feb 2014 08:29:12 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/qtest-for-peter: qtest: unlink UNIX domain sockets after connecting qtest: unlink QEMU pid file after startup Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit bc1c72171ceb9a817138603fe381d64e7f8a9364 Merge: 2653078 7c08db3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 6 23:51:24 2014 +0000 Merge remote-tracking branch 'remotes/kvm/uq/master' into staging * remotes/kvm/uq/master: target-i386: Move KVM default-vendor hack to instance_init target-i386: Don't change x86_def_t struct on cpu_x86_register() target-i386: Eliminate CONFIG_KVM #ifdefs kvm: add support for hyper-v timers kvm: make hyperv vapic assist page migratable kvm: make hyperv hypercall and guest os id MSRs migratable. kvm: make availability of Hyper-V enlightenments dependent on KVM_CAP_HYPERV KVM: fix coexistence of KVM and Hyper-V leaves kvm: print suberror on all internal errors target-i386: kvm_check_features_against_host(): Kill feature word array target-i386: kvm_cpu_fill_host(): Fill feature words in a loop target-i386: kvm_cpu_fill_host(): Set all feature words at end of function target-i386: kvm_cpu_fill_host(): No need to check xlevel2 target-i386: kvm_cpu_fill_host(): No need to check CPU vendor target-i386: kvm_cpu_fill_host(): No need to check level target-i386: kvm_cpu_fill_host(): Kill unused code Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 26530780c20eb762fa0ed94ac57226695f22ee65 Merge: 31db5b3 8909114 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Feb 6 10:21:12 2014 +0000 Merge remote-tracking branch 'remotes/spice/tags/pull-spice-2' into staging misc spice patches # gpg: Signature made Mon 03 Feb 2014 15:05:29 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann <gerd@xxxxxxxxxx>" # gpg: aka "Gerd Hoffmann (private) <kraxel@xxxxxxxxx>" * remotes/spice/tags/pull-spice-2: spice: hook qemu_chr_fe_set_open() event to ports Add the ability to vary Spice playback and record rates, to facilitate Opus support. hw/display/qxl: fix signed to unsigned comparison qxl: clear irq on reset Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 31db5b3638553e616eba3391dbff88f77b8a5bc9 Merge: e5d3df6 b76afd1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 5 16:37:26 2014 +0000 Merge remote-tracking branch 'remotes/mjt/tags/trivial-patches-2014-02-02' into staging trivial patches for 2014-02-02 # gpg: Signature made Sun 02 Feb 2014 16:11:37 GMT using RSA key ID 74F0C838 # gpg: Good signature from "Michael Tokarev <mjt@xxxxxxxxxx>" # gpg: aka "Michael Tokarev <mjt@xxxxxxxxx>" # gpg: aka "Michael Tokarev <mjt@xxxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 6EE1 95D1 886E 8FFB 810D 4324 457C E0A0 8044 65C5 # Subkey fingerprint: E190 8639 3B10 B51B AC2C 8B73 5253 C5AD 74F0 C838 * remotes/mjt/tags/trivial-patches-2014-02-02: tests/.gitignore: Ignore tests/check-qom-interface hw/ppc: Remove unused defines readline: Add missing GCC_FMT_ATTR tcg/s390: Remove sigill_handler i386: Add missing include file for QEMU_PACKED osdep: drop unused #include "trace.h" qemu 1.7.0 does not build on NetBSD Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e5d3df6deb664a31e6c69b36e07f1701fee7cbf5 Merge: 2b2449f 1b7650e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Feb 5 16:29:01 2014 +0000 Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging Block pull request # gpg: Signature made Fri 31 Jan 2014 21:16:43 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@xxxxxxxxxx>" # gpg: aka "Stefan Hajnoczi <stefanha@xxxxxxxxx>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/block-pull-request: qemu-iotests: only run 071 on qcow2 dataplane: Comment fix block/vhdx: Error checking fixes qemu-iotests: Drop assert_no_active_commit in case 040 block/vmdk: add basic .bdrv_check support block: remove qcow2 .bdrv_make_empty implementation block: remove QED .bdrv_make_empty implementation Describe flaws in qcow/qcow2 encryption in the docs Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7454e51d2b26ca6c2fd6fb77c4adc3ab11ec590f Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Feb 2 22:45:28 2014 +0200 pc.c: better error message on initrd sizing failure Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d160024fe52cd4970ee80904dbdc7a22ddf86c96 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Feb 4 23:29:30 2014 +0200 pc_piix: enable legacy hotplug for Xen xenfv has no fwcfg and so does not load acpi from QEMU. as such new acpi features don't work. Reported-by: Sander Eikelenboom <linux@xxxxxxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 35b307126cc99165881d24bb62cc52f21275cb54 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Feb 4 20:04:21 2014 +0200 qtest: don't report signals if qtest driver enabled qtest driver always uses signals to kill qemu no need to report it, whatever the accelerator state. Add API to detect qtest driver, and suppress reporting signals in this case. Reported-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit e358edc8e90d580443b824e4ef799e137377ad86 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Mon Feb 3 11:45:01 2014 +0100 hw:piix4:acpi: reuse pcihp code for legacy PCI hotplug reduces acpi PCI hotplug code duplication by ~200LOC Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a1b4d9eff9e8dec8b827bd744c7d670d3cdf2fb8 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Mon Feb 3 11:45:00 2014 +0100 pcihp: remove unused AcpiPciHpPciStatus.device_present field Remove now unused 'device_present' field wich was obsoleted by patch "pcihp: reduce number of device check events" Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 99d09dd32820f5702031e3c08c81f8c209dc2220 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Mon Feb 3 11:44:59 2014 +0100 pcihp: make pci_read() mmio calback compatible with legacy ACPI hotplug due to recent change introduced by: "pcihp: reduce number of device check events" 'up' field is cleared right after it's read. This is incompatible with legacy BIOS ACPI code where PCNF ACPI method reads this field 32 times. To make pci_read mmio callback compatible with legacy 'up' behavior, pcihp code will need to know in which mode it runs add 'legacy_piix' field to AcpiPciHpState structure and alter register behavior accordingly. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a7b613cf68b65d04ef2b1b601bb18f31e8ca0c11 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Mon Feb 3 11:44:58 2014 +0100 pcihp: make PCI hotplug mmio handlers indifferent to PCI_HOTPLUG_ADDR ... removes dependency of mmio handler on PCI_HOTPLUG_ADDR. It will be needed in case of Q35 where base could be different. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8f5001f9ede507940317531bc83154288e7a1d0a Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Mon Feb 3 11:44:57 2014 +0100 pcihp: replace enable|disable_device() with oneliners enable_device() and disable_device() functions aren't reused anywere, so replace them with respective oneliners at call sites. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 5a2223ca26b1a34e131b5b9a63599d9426d2c25c Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Jan 26 12:31:27 2014 +0200 pcihp: reduce number of device check events PIIX created a made-up value for the UP register since it was read by guest 32 times for each interrupt. There's no reason to do this for the new PCIHP: register is only read once for each interrupt, so clean up code by making read act as an interrupt acknowledgement: the new UP register clear on read. In this way we cut down the number of bus rescans by a factor of 32, and drop a bunch of code that's now unused. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit f41152bd9d01ab327c19a3828bb7896d67cf0752 Author: Michael Walle <michael@xxxxxxxx> Date: Thu Nov 28 19:09:33 2013 +0100 hw/lm32: print error if cpu model is not found QEMU crashed if a the given cpu_model is not found. Signed-off-by: Michael Walle <michael@xxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 667ff9612b786f9bb5b70135811164b48b7d44eb Author: Michael Walle <michael@xxxxxxxx> Date: Mon Sep 23 20:47:33 2013 +0200 target-lm32: stop VM on illegal or unknown instruction Instead of translating the instruction to a no-op, pause the VM and display a message to the user. As a side effect, this also works for instructions where the operands are only known at runtime. Signed-off-by: Michael Walle <michael@xxxxxxxx> commit 8c5edce5b775f98cff2e340427740137bd6847be Author: Michael Walle <michael@xxxxxxxx> Date: Mon Sep 23 20:53:04 2013 +0200 lm32_sys: dump cpu state if test case fails This will ease debugging the test cases. Signed-off-by: Michael Walle <michael@xxxxxxxx> commit 9a59e6e307073f06b7a925b2b0e333301daa2f22 Author: Michael Walle <michael@xxxxxxxx> Date: Mon Sep 23 20:49:17 2013 +0200 lm32_sys: print test result on stderr Do not use qemu_log(). Signed-off-by: Michael Walle <michael@xxxxxxxx> commit 3dd3a2b965a2d2f5b9c53ab86194b78a546a8fc5 Author: Michael Walle <michael@xxxxxxxx> Date: Wed Sep 18 19:10:45 2013 +0200 target-lm32: add breakpoint/watchpoint support This patch adds in-target breakpoint and watchpoint support. Signed-off-by: Michael Walle <michael@xxxxxxxx> commit 2b2449f7e467957778ca006904471b231dc0ac8e Merge: 9396b05 44c68de Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Feb 4 18:46:33 2014 +0000 Merge remote-tracking branch 'remotes/borntraeger/tags/kvm-s390-20140131' into staging This patch set contains the sclp defines and events for cpu hotplug, the initial sclp defines (without code yet) for standby memory (some sort of memory hotplug) as well as a cleanup of the kvm register synchronization. # gpg: Signature made Fri 31 Jan 2014 08:54:29 GMT using RSA key ID B5A61C7C # gpg: Can't check signature: public key not found * remotes/borntraeger/tags/kvm-s390-20140131: s390x/kvm: cleanup partial register handling sclp-s390: Define new SCLP codes and structures s390-sclp: SCLP Event integration s390-sclp: SCLP CPU Info s390-sclp: Define New SCLP Codes Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 34f4aa83f96722aa2c36fbe179108863ebe6e3e9 Author: Michael Walle <michael@xxxxxxxx> Date: Tue Sep 17 18:33:16 2013 +0200 target-lm32: move model features to LM32CPU This allows us to completely remove CPULM32State from DisasContext. Instead, copy the fields we need to DisasContext. Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael Walle <michael@xxxxxxxx> commit 3604a76fea6ff37738d4a8f596be38407be74a83 Author: Michael Walle <michael@xxxxxxxx> Date: Mon Sep 16 20:13:05 2013 +0200 target-lm32: kill cpu_abort() calls Instead of killing QEMU, translate instructions which are not available on the CPU model as a noop and issue a log message at translation time. On the real hardware CPU unknown opcodes results in undefined behaviour. These changes prepare the removal of CPULM32State from DisasContext. Signed-off-by: Michael Walle <michael@xxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> commit 2f453564274cde7efba77246726f3d0c51566ec0 Author: Michael Walle <michael@xxxxxxxx> Date: Mon Sep 16 19:32:54 2013 +0200 milkymist-vgafb: swap pixel data in source buffer In commit fc97bb5ba3e7239c0b6d24095df6784868dfebbf the lduw_raw() call was eliminated. But we are reading from the target buffer a 16-bit value, which is in big-endian format. Therefore, use lduw_be_p() to read the value. Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael Walle <michael@xxxxxxxx> commit 02d3bf7fe755e490b3641148eaef02475c58bdee Author: Michael Walle <michael@xxxxxxxx> Date: Mon Sep 16 18:29:32 2013 +0200 lm32_uart/lm32_juart: use qemu_chr_fe_write_all() qemu_chr_fe_write() may return EAGAIN. Therefore, use qemu_chr_fe_write_all(). Signed-off-by: Michael Walle <michael@xxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit b2c623a3d9c88fb1d3bbbbe97364dc65bc6ab363 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Sat Aug 31 21:22:39 2013 +0400 milkymist-uart: use qemu_chr_fe_write_all() instead of qemu_chr_fe_write() qemu_chr_fe_write() is capable of returning 0 to indicate EAGAIN (and friends) and we don't handle this. Just change it to qemu_chr_fe_write_all() to fix. Reported-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Acked-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Signed-off-by: Michael Walle <michael@xxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f40c49ac9f89ee52b6015904c9005b734a73487a Author: Michael Walle <michael@xxxxxxxx> Date: Mon Dec 10 00:03:09 2012 +0100 tests: lm32: new rule for single test cases Introduce new target "check_%" to run individual test caes, eg. make check_mmu Signed-off-by: Michael Walle <michael@xxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e67b3ca53a891413a33c45495ff20c2728d69722 Author: Michael Walle <michael@xxxxxxxx> Date: Mon Dec 10 00:00:24 2012 +0100 lm32_sys: increase test case name length limit The new MMU tests use longer names. Signed-off-by: Michael Walle <michael@xxxxxxxx> commit 9396b05a5a35d344dc5eaed6fb0dff96c49d5f50 Merge: 8cfc114 fbb9c59 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Feb 4 16:16:37 2014 +0000 Merge remote-tracking branch 'remotes/mcayland/qemu-openbios' into staging * remotes/mcayland/qemu-openbios: Update OpenBIOS images Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 89db9987c07977bdb78d5d4b41d65e7acb9a5a2c Author: Orit Wasserman <owasserm@xxxxxxxxxx> Date: Thu Jan 30 20:08:38 2014 +0200 Don't abort on memory allocation error It is better to fail migration in case of failure to allocate new cache item Signed-off-by: Orit Wasserman <owasserm@xxxxxxxxxx> Reviewed-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit a17b2fd3580d1da96e806c8b58e61255e8c57577 Author: Orit Wasserman <owasserm@xxxxxxxxxx> Date: Thu Jan 30 20:08:37 2014 +0200 Don't abort on out of memory when creating page cache Signed-off-by: Orit Wasserman <owasserm@xxxxxxxxxx> Reviewed-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit a5615b14a66e86f620e90c8f4b3537c28bb328d4 Author: Orit Wasserman <owasserm@xxxxxxxxxx> Date: Thu Jan 30 20:08:36 2014 +0200 XBZRLE cache size should not be larger than guest memory size Signed-off-by: Orit Wasserman <owasserm@xxxxxxxxxx> Reviewed-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 905f26f2221e139ac0e7317ddac158c50f5cf876 Author: Gonglei (Arei) <arei.gonglei@xxxxxxxxxx> Date: Thu Jan 30 20:08:35 2014 +0200 migration:fix free XBZRLE decoded_buf wrong When qemu do live migration with xbzrle, qemu malloc decoded_buf at destination end but free it at source end. It will crash qemu by double free error in some scenarios. Splitting the XBZRLE structure for clear logic distinguishing src/dst side. Signed-off-by: ChenLiang <chenliang88@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: GongLei <arei.gonglei@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit c91e681a558fc21073ffc491b5a022d5f340fa0b Author: Orit Wasserman <owasserm@xxxxxxxxxx> Date: Thu Jan 30 20:08:34 2014 +0200 Add check for cache size smaller than page size Signed-off-by: Orit Wasserman <owasserm@xxxxxxxxxx> Reviewed-by: Juan Quintela <quintela@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit f6c6483b259a2395ee44cfa966f622e0f2dbe2ae Author: Orit Wasserman <owasserm@xxxxxxxxxx> Date: Thu Jan 30 20:08:33 2014 +0200 Set xbzrle buffers to NULL after freeing them to avoid double free errors Signed-off-by: Orit Wasserman <owasserm@xxxxxxxxxx> Reviewed-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit f9ee9f9ac28d6964772c08d5d428b713d58a3aca Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Jan 30 23:03:50 2014 +1100 exec: fix ram_list dirty map optimization The ae2810c4bb3b383176e8e1b33931b16c01483aab patch introduced optimization for ram_list.dirty_memory update. However it can only work correctly if hpratio is 1 as the @bitmap parameter stores 1 bits per system page size (may vary, 4K or 64K on PPC64) and ram_list.dirty_memory stores 1 bit per TARGET_PAGE_SIZE (which is hardcoded to 4K). This fixes hpratio!=1 case to fall back to the slow path. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 20bcf73fa80c3477b6aaf5f39f18f031ff55de92 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Jan 1 21:56:57 2014 +0000 vmstate: Make VMSTATE_STRUCT_POINTER take type, not ptr-to-type The VMSTATE_STRUCT_POINTER macros are a bit odd in that they must be passed an argument "FooType *" rather than just taking the FooType. They're only used in one place, so it's easy to tidy this up. This also lets us use the macro to replace the hand-rolled VMSTATE_PTIMER. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 7c08db30e6a43f7083a881eb07bfbc878e001e08 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Jan 30 17:48:55 2014 -0200 target-i386: Move KVM default-vendor hack to instance_init As we will not have a cpu_x86_find_by_name() function anymore, move the KVM default-vendor hack to instance_init. Unfortunately we can't move that code to class_init because it depends on KVM being initialized. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 82beb53633246d67d4b01a5e802f9edc80332f9d Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Jan 30 17:48:54 2014 -0200 target-i386: Don't change x86_def_t struct on cpu_x86_register() As eventually the x86_def_t data is going to be provided by the CPU class, it's better to not touch it, and handle the special cases on the X86CPU object itself. Current behavior of the code should stay exactly the same. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c1f412260b4e0f309dba8da99482fb32d6098719 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Jan 30 17:48:53 2014 -0200 target-i386: Eliminate CONFIG_KVM #ifdefs The compiler is already able to eliminate the kvm_arch_get_supported_cpuid() calls in kvm_cpu_fill_host() and filter_features_for_kvm(), so we can eliminate the CONFIG_KVM #ifdefs there. Also, kvm_cpu_fill_host() and host_cpuid() don't need to check CONFIG_KVM, as they don't have any KVM-specific function calls. Tested to build successfully with CONFIG_KVM disabled, using the following CFLAGS combinations: "-DNDEBUG", "-DNDEBUG -O', "-DNDEBUG -O0", "-DNDEBUG -O1", "-DNDEBUG -O2". Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 48a5f3bcbbbe59a3120a39106bfda59fd1933fbc Author: Vadim Rozenfeld <vrozenfe@xxxxxxxxxx> Date: Fri Jan 24 00:40:49 2014 +1100 kvm: add support for hyper-v timers http://msdn.microsoft.com/en-us/library/windows/hardware/ff541625%28v=vs.85%29.aspx This code is generic for activating reference time counter or virtual reference time stamp counter Signed-off-by: Vadim Rozenfeld <vrozenfe@xxxxxxxxxx> Reviewed-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 5ef68987e5671edf5f51f845d1bbf3e5759a8526 Author: Vadim Rozenfeld <vrozenfe@xxxxxxxxxx> Date: Fri Jan 24 00:40:48 2014 +1100 kvm: make hyperv vapic assist page migratable Signed-off-by: Vadim Rozenfeld <vrozenfe@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 1c90ef2619dd6e5c4fec7e9e18c04c0a08e93aac Author: Vadim Rozenfeld <vrozenfe@xxxxxxxxxx> Date: Fri Jan 24 00:40:47 2014 +1100 kvm: make hyperv hypercall and guest os id MSRs migratable. Signed-off-by: Vadim Rozenfeld <vrozenfe@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 7bc3d711b45d6feacab96eda410c5655f4ddafcf Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Jan 23 19:16:12 2014 +0100 kvm: make availability of Hyper-V enlightenments dependent on KVM_CAP_HYPERV The MS docs specify HV_X64_MSR_HYPERCALL as a mandatory interface, thus we must provide the MSRs even if the user only specified features that, like relaxed timing, in principle don't require them. And the MSRs are only there if the hypervisor has KVM_CAP_HYPERV. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 234cc64796557eea829544e4ff72ee99b6149187 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Jan 23 19:27:24 2014 +0100 KVM: fix coexistence of KVM and Hyper-V leaves kvm_arch_init_vcpu's initialization of the KVM leaves at 0x40000100 is broken, because KVM_CPUID_FEATURES is left at 0x40000001. Move it to 0x40000101 if Hyper-V is enabled. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 977c7b6d8909464eb3a510829f534451d0adb227 Author: Radim KrÄ?máÅ? <rkrcmar@xxxxxxxxxx> Date: Tue Jan 21 18:11:31 2014 +0100 kvm: print suberror on all internal errors KVM introduced internal error exit reason and suberror at the same time, and later extended it with internal error data. QEMU does not report suberror on hosts between these two events because we check for the extension. (half a year in 2009, but it is misleading) Fix by removing KVM_CAP_INTERNAL_ERROR_DATA condition on printf. (partially improved by bb44e0d12df70 and ba4047cf848a3 in the past) Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Radim KrÄ?máÅ? <rkrcmar@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit f0b9b11164482a8a2283dee25cecc4a4c531259e Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Mon Jan 20 14:41:14 2014 -0200 target-i386: kvm_check_features_against_host(): Kill feature word array We don't need the ft[] array on kvm_check_features_against_host() anymore, as we can simply use the feature_word_info[] array, that has everything we need. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 2bc65d2b020887da3eb9043ae4f7d133ed85a7fe Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Mon Jan 20 14:41:13 2014 -0200 target-i386: kvm_cpu_fill_host(): Fill feature words in a loop Now that the kvm_cpu_fill_host() code is simplified, we can simply set the feature word array using a simple loop. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 2a573259ebf8b1072707257d547603520d1ed236 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Mon Jan 20 14:41:12 2014 -0200 target-i386: kvm_cpu_fill_host(): Set all feature words at end of function Reorder the code so all the code that sets x86_cpu_def->features is at the end of the function. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 803a932706e3ba335d4c98f3577a05cb000f1699 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Mon Jan 20 14:41:11 2014 -0200 target-i386: kvm_cpu_fill_host(): No need to check xlevel2 There's no need to check CPU xlevel2 before calling kvm_arch_get_supported_cpuid(s, 0xC0000001, 0, R_EDX), because: * The kernel won't return any entry for 0xC0000000 if host CPU vendor is not Centaur (See kvm_dev_ioctl_get_supported_cpuid() on the kernel code) * Similarly, the kernel won't return any entry for 0xC0000001 if CPUID[0xC0000000].EAX is < 0xC0000001 * kvm_arch_get_supported_cpuid() will return 0 if no entry is returned by the kernel for the requested leaf For similar reasons, we can simply set x86_cpu_def->xlevel2 directly instead of making it conditional, because it will be set to 0 CPU vendor is not Centaur. This will simplify the kvm_cpu_fill_host() code a little. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> [Remove unparseable comment. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit b73dcfb16fc894041de553ac9f98b9e1640fcf06 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Mon Jan 20 14:41:10 2014 -0200 target-i386: kvm_cpu_fill_host(): No need to check CPU vendor There's no need to check CPU vendor before calling kvm_arch_get_supported_cpuid(s, 0xC0000000, 0, R_EAX), because: * The kernel won't return any entry for 0xC0000000 if host CPU vendor is not Centaur (See kvm_dev_ioctl_get_cpuid() on the kernel code); * kvm_arch_get_supported_cpuid() will return 0 if no entry is returned by the kernel for the requested leaf. This will simplify the kvm_cpu_fill_host() code a little. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 7171a3933f2ee8cb984fd64c59ca081f39b943a4 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Mon Jan 20 14:41:09 2014 -0200 target-i386: kvm_cpu_fill_host(): No need to check level There's no need to check level (CPUID[0].EAX) before calling kvm_arch_get_supported_cpuid(s, 0x7, 0, R_EBX), because: * The kernel won't return any entry for CPUID 7 if CPUID[0].EAX is < 7 on the host (See kvm_dev_ioctl_get_cpuid() on the kernel code); * kvm_arch_get_supported_cpuid() will return 0 if no entry is returned by the kernel for the requested leaf. This will simplify the kvm_cpu_fill_host() code a little. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 81e207707e7b6204f64451779d752f23777ed451 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Mon Jan 20 14:41:08 2014 -0200 target-i386: kvm_cpu_fill_host(): Kill unused code Those host_cpuid() calls are useless. They are leftovers from when the old code using host_cpuid() was removed. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 56db2e5843256c857addb17deb743109330649be Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Nov 21 11:37:25 2013 +0100 qtest: unlink UNIX domain sockets after connecting UNIX domain sockets are leaked when tests call abort(3) (indirectly via glib assert functions). Unlink the files immediately after the connection has been established to avoid leaks. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1ad3c6abc0d67e00b84abaa5527bc64b70ca2205 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Nov 21 11:33:17 2013 +0100 qtest: unlink QEMU pid file after startup After starting the QEMU process and initializing the QMP connection, we can read the pid file and unlink it. Just stash away the pid instead of the pid filename. This way we can avoid pid file leaks since running tests may abort(3) without cleanup. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 41419b0f11d125ad792660638eb452c767eddc28 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Feb 3 15:36:01 2014 +0100 Update seabios binaries to 1.7.4 Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit cd4eb4c5ac0368ec2c30412e699e48f1a7ca6998 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Feb 3 15:31:47 2014 +0100 Update seabios submodule to 1.7.4 Not that many changes as we already have a git snapshot pretty close to final 1.7.4 in the tree. Most notably change is the vgabios change which fixes the windows guest regression. Full git shortlog: Gerd Hoffmann (2): run qemu_cfg_e820 only for CONFIG_QEMU=y change boot order load log level Kevin O'Connor (10): Minor - move sgdt/lgdt macros from stacks.c to x86.h. Separate out sec32init sections even when not doing code relocation. floppy: Fix incorrect LBA to CHS translation. floppy: Fix accesses to DOR register. vgabios: Avoid memory references via %esp register in vgabios. Small improvements to irqentry_extrastack assembler. floppy: Encode command and flags into single value in floppy pio code. On disk format request, verify cylinders and pass to driver. floppy: Implement cylinder seeking when accessing a different cylinder. coreboot: Make sure to print the SeaBIOS version in cbmem debug output. Kyösti Mälkki (1): Fix CBMEM console overflow commit 50df8d5db04ac09477ed6ad3831592d699b3fafc Author: Bruce Rogers <brogers@xxxxxxxx> Date: Fri Dec 13 10:13:50 2013 -0700 roms: remove explicit MAKEFLAGS from recursive make invocations When using $(MAKE) within a makefile, we shouldn't be explicitly including $(MAKEFLAGS) on the command-line. It causes problems when that makefile is recursively invoked. When the roms/Makefile is invoked as in make -C roms bios a spurious 'w' appears on the sub-make invocation, due to the erroneous $(MAKEFLAGS) inclusion. Signed-off-by: Bruce Rogers <brogers@xxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 8cfc114a2f293c40077d1bdb7500b29db359ca22 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Feb 1 09:41:09 2014 +0100 linux-user: Fix trampoline code for CRIS __put_user can write bytes, words (2 bytes) or longwords (4 bytes). Here obviously words should have been written, but bytes were written, so values like 0x9c5f were truncated to 0x5f. Fix this by changing retcode from uint8_t to to uint16_t in target_signal_frame and also in the unused rt_signal_frame. This problem was reported by static code analysis (smatch). Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Acked-by: Riku Voipio <riku.voipio@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Tested-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit ce603d8ef11f2a2d29be1c4f90d417331b41acfc Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Tue Jan 21 23:49:44 2014 +1000 cris: Remove the CRIS PIC glue Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 4a6da670f80c121acfea3dacf380c26e3aeacd5c Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Tue Jan 21 22:45:54 2014 +1000 axis-dev88: Connect the PIC upstream IRQs directly to the CPU Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 3065839c7207f459e3b3b3fbb2a04abc5276a8e0 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Tue Jan 21 22:44:23 2014 +1000 cris: Add interrupt signals to the CPU device Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit d66433ffdced6537ab7e6c423a8f14091c51e3e2 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Sat Jan 18 04:07:48 2014 +0000 cris: Abort when a v10 takes interrupts while in a delayslot This is an internal error as the CRISv10 should mask interrupts while executing delay slots. Bail out sooner rather than later. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit fd5d5afad8e7b92181ddfccd5639be9775456bec Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Sat Jan 18 03:42:23 2014 +0000 cris: Add "any" as alias for "crisv32" in user emulation Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 890911464934aebcb4409ad2495449d15d7347b4 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Sat Jan 11 00:20:24 2014 +0100 spice: hook qemu_chr_fe_set_open() event to ports This wires up a spice port event on virtio-ports open/close, so the client is notified when the other end is ready. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 795ca114d353e02752a29f64902215bb30c58c21 Author: Jeremy White <jwhite@xxxxxxxxxxxxxxx> Date: Thu Jan 2 09:25:56 2014 -0600 Add the ability to vary Spice playback and record rates, to facilitate Opus support. Signed-off-by: Jeremy White <jwhite@xxxxxxxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 3761abb167847e9d848588bf15c5d7476845f7e8 Author: Alon Levy <alevy@xxxxxxxxxx> Date: Mon Jan 20 18:57:12 2014 +0200 hw/display/qxl: fix signed to unsigned comparison Several small signedness / overflow corrections to qxl_create_guest_primary: 1. use 64 bit unsigned for size to avoid overflow possible from two 32 bit multiplicants. 2. correct sign for requested_height 3. add a more verbose error message when setting guest bug state (which causes a complete guess blackout until reset, so it helps if it is verbose). Signed-off-by: Alon Levy <alevy@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f06b85218a41fd6f8e797a925f4ea75640b69c9e Author: Alon Levy <alevy@xxxxxxxxxx> Date: Mon Jan 20 12:44:19 2014 +0200 qxl: clear irq on reset Without this we occasionally trigger an assert at hw/pci/pci.c:pcibus_reset that asserts the irq_count is zero on reset. This has become a problem with the new drm driver for linux, since doing a reboot from console causes a race between console updates that set the irq and the reset assertion that the irq is clear. Signed-off-by: Alon Levy <alevy@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f8b7ee38b3ed4ec2da5cc0529cf0cf82c8589805 Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> Date: Tue Jan 28 17:08:27 2014 +0200 hw/9pfs: fix P9_STATS_GEN handling Currently we fail getattr request altogether if we can't read P9_STATS_GEN for some reason. It breaks valid use cases: E.g let's assume we have non-readable directory with execution bit set on host and we export it to client over 9p On host we can chdir into directory, but not open directory on read and list content. But if client will try to call getattr (as part of chdir(2)) for the directory it will fail with -EACCES. It happens because we try to open the directory on read to call ioctl(FS_IOC_GETVERSION), it fails and we return the error code to client. It's excessive. The solution is to make P9_STATS_GEN failure non-fatal for getattr request. Just don't set P9_STATS_GEN flag in result mask on failure. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> commit 1a9978a51a17a26fd07e1b46f31ceeb9772fc191 Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> Date: Tue Jan 28 17:08:26 2014 +0200 hw/9pfs: make get_st_gen() return ENOTTY error on special files Currently we silently ignore getversion requests for anything except file or directory. Let's instead return ENOTTY error to indicate that getversion is not supported. It makes implementation consistent on all not-supported cases. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> commit b9317661d13230ec9fd1162625b7f812c0cacd37 Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> Date: Tue Jan 28 17:08:25 2014 +0200 hw/9pfs: handle undefined FS_IOC_GETVERSION case in handle_ioc_getversion() All get_st_gen() implementations except handle_ioc_getversion() have guard for undefined FS_IOC_GETVERSION. Let's add it there too. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> commit 0e5fc994d24af4f4f9a1368bf9c2e730c120c549 Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> Date: Tue Jan 28 17:08:24 2014 +0200 hw/9pfs: fix error handing in local_ioc_getversion() v9fs_co_st_gen() expects to see error code in errno, not in return code. Let's fix this. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> commit 2f61120c10da9128357510debc8e66880cd2bfdc Merge: b4a8c9a 056f49f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 1 23:32:23 2014 +0000 Merge remote-tracking branch 'qmp-unstable/queue/qmp' into staging * qmp-unstable/queue/qmp: monitor: Cleanup mon->outbuf on write error virtio_rng: replace custom backend API with UserCreatable.complete() callback add optional 2nd stage initialization to -object/object-add commands vl.c: -object: don't ignore duplicate 'id' object_add: consolidate error handling Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit b4a8c9ae9758efb6873097f415e9972127ccf418 Merge: 850bbe1 5b0adce Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 1 23:06:11 2014 +0000 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20140131' into staging target-arm queue: * implementation of first part of the A64 Neon instruction set * v8 AArch32 rounding and 16<->64 fp conversion instructions * fix MIDR value on Zynq boards * some minor bugfixes/code cleanups # gpg: Signature made Fri 31 Jan 2014 15:06:34 GMT using RSA key ID 14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@xxxxxxxxxx>" * pmaydell/tags/pull-target-arm-20140131: (34 commits) arm_gic: Fix GICD_ICPENDR and GICD_ISPENDR writes arm_gic: Introduce define for GIC_NR_SGIS target-arm: A64: Add SIMD shift by immediate target-arm: A64: Add simple SIMD 3-same floating point ops target-arm: A64: Add integer ops from SIMD 3-same group target-arm: A64: Add logic ops from SIMD 3 same group target-arm: A64: Add top level decode for SIMD 3-same group target-arm: A64: Add SIMD scalar 3 same add, sub and compare ops target-arm: A64: Add SIMD three-different ABDL instructions target-arm: A64: Add SIMD three-different multiply accumulate insns target-arm: Add AArch32 SIMD VCVTA, VCVTN, VCVTP and VCVTM target-arm: Add AArch32 FP VCVTA, VCVTN, VCVTP and VCVTM target-arm: Add AArch32 SIMD VRINTA, VRINTN, VRINTP, VRINTM, VRINTZ target-arm: Add set_neon_rmode helper target-arm: Add support for AArch32 SIMD VRINTX target-arm: Add support for AArch32 FP VRINTX target-arm: Add support for AArch32 FP VRINTZ target-arm: Add support for AArch32 FP VRINTR target-arm: Add AArch32 FP VRINTA, VRINTN, VRINTP and VRINTM target-arm: Move arm_rmode_to_sf to a shared location. ... Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 850bbe1b94445cb84a2f648bc2e8c35ef6188eb4 Merge: bd88091 8b6d140 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 1 21:07:59 2014 +0000 Merge remote-tracking branch 'remotes/awilliam/tags/vfio-pci-for-qemu-20140128.0' into staging vfio-pci updates include: - Destroy MemoryRegions on device teardown - Print warnings around PCI option ROM failures - Skip bogus mappings from 64bit BAR sizing - Act on DMA mapping failures - Fix alignment to avoid MSI-X table mapping - Fix debug macro typo # gpg: Signature made Tue 28 Jan 2014 15:27:47 GMT using RSA key ID 3BB08B22 # gpg: Can't check signature: public key not found * remotes/awilliam/tags/vfio-pci-for-qemu-20140128.0: vfio: correct debug macro typo vfio: fix mapping of MSIX bar kvm: initialize qemu_host_page_size vfio-pci: Fail initfn on DMA mapping errors vfio: Filter out bogus mappings vfio: Do not reattempt a failed rom read vfio: warn if host device rom can't be read vfio: Destroy memory regions Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit bd88091cfbc3627ac436b5a554340cd263c93b56 Merge: 89e4a51 360e607 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Feb 1 20:43:07 2014 +0000 Merge remote-tracking branch 'remotes/sstabellini/xen-140130' into staging * remotes/sstabellini/xen-140130: address_space_translate: do not cross page boundaries Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit b76afd1072e02fe77e09790fbe1e831700976c5f Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Jan 27 16:26:21 2014 +0800 tests/.gitignore: Ignore tests/check-qom-interface Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 5eaac2f8282a066f08b5c91f43a4e2ede0e55b8c Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Jan 26 15:02:29 2014 +0100 hw/ppc: Remove unused defines Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit d5d1507b347b7cd6c3b82459b96f1889b29939ef Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Jan 25 18:18:23 2014 +0100 readline: Add missing GCC_FMT_ATTR This fixes a compiler warning with -Werror=missing-format-attribute and allows improved compiler checks for variable argument lists. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit c6830cdb2c1053bca1e61eb242b1900489c160af Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jan 29 13:08:30 2014 -0800 tcg/s390: Remove sigill_handler Commit c9baa30f42a87f61627391698f63fa4d1566d9d8 failed to delete all of the relevant code, leading to Werrors about unused symbols. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit c428c5a21ce9a9861839ee544afd10638016e3f5 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Fri Jan 31 23:05:24 2014 +0100 i386: Add missing include file for QEMU_PACKED Instead of packing BiosLinkerLoaderEntry, an unused global variable called QEMU_PACKED was created (detected by smatch static code analysis). Including qemu-common.h gets the right definition and also includes some standard include files which now can be removed here. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 1165ae613d3482e79c56d5a05c3354b2baae6ee7 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Jan 23 14:27:59 2014 -0600 osdep: drop unused #include "trace.h" osdep.c does not use trace_*() so we can just drop the include. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit dc9a353cf7de78b9fae3e46410803d487fd2fc8f Author: Martin Husemann <martin@xxxxxxxxxxx> Date: Sat Jan 18 14:47:23 2014 +0100 qemu 1.7.0 does not build on NetBSD Do not rely on int8_t (and friends) not being preprocessor symbols (or symbols expanding to themselves). On NetBSD (for example) the glue(u, SDATA_TYPE) results in u__int8_t, which is undefined. There is no way to stop cpp expanding inner macros, so just add the few lines explicitly and get rid of the magic. Signed-off-by: Martin Husemann <martin@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 1b7650ef2f63d53cf89af25a9f323323cf2423a7 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Jan 29 16:33:54 2014 +0100 qemu-iotests: only run 071 on qcow2 The 071 test is designed for IMGFMT=qcow2 because it uses the l2_load blkdebug event. Its output filtering also assumes that IMGFMT is not raw since 071.out contains "format=raw" but IMGFMT=raw would filter the output to "format=IMGFMT". Perhaps the test case can be rewritten to be more generic, but for now let's document that it was only supposed to work with qcow2. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 170a60345ee84dff3114f759367badfb85680728 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Jan 30 16:34:12 2014 +0100 dataplane: Comment fix Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f50159fa9b5a0ad82e30c123643ec39a1df81d9a Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jan 29 18:05:08 2014 +0100 block/vhdx: Error checking fixes Errors are inadvertently ignored in a few places. Has always been broken. Spotted by Coverity. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit fb0a078f3a84b5a609d528500eea36b69ace9b20 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Jan 29 18:47:23 2014 +0800 qemu-iotests: Drop assert_no_active_commit in case 040 It is exactly assert_no_active_block_jobs in iotests.py Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f43aa8e18ad83508c2786403e7230a584d357c8e Author: Peter Lieven <pl@xxxxxxx> Date: Wed Jan 29 09:34:16 2014 +0100 block/vmdk: add basic .bdrv_check support this adds a basic vmdk corruption check. it should detect severe table corruptions and file truncation. Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 14b4a8b9c654b625dea0f532fae5722781fd0a7d Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Mon Jan 27 16:09:13 2014 -0500 block: remove qcow2 .bdrv_make_empty implementation The QCOW2 .bdrv_make_empty implementation always returns 0 for success, but does not actually do anything. The proper way to not support an optional driver function stub is to just not implement it, so let's remove the stub. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 55aff7f133b0eb20b2c8a2a3e1307240aab8044c Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Mon Jan 27 16:09:12 2014 -0500 block: remove QED .bdrv_make_empty implementation The QED .bdrv_make_empty() implementation does nothing but return -ENOTSUP, which causes problems in bdrv_commit(). Since the function stub exists for QED, it is called, which then always returns an error. The proper way to not support an optional driver function stub is to just not implement it, so let's remove the stub. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 136cd19d0522c03b6dccc3e344886feab6faee43 Author: Daniel P. Berrange <berrange@xxxxxxxxxx> Date: Wed Jan 22 15:47:10 2014 +0000 Describe flaws in qcow/qcow2 encryption in the docs The qemu-img.texi / qemu-doc.texi files currently describe the qcow2/qcow2 encryption thus "Encryption uses the AES format which is very secure (128 bit keys). Use a long password (16 characters) to get maximum protection." While AES is indeed a strong encryption system, the way that QCow/QCow2 use it results in a poor/weak encryption system. Due to the use of predictable IVs, based on the sector number extended to 128 bits, it is vulnerable to chosen plaintext attacks which can reveal the existence of encrypted data. The direct use of the user passphrase as the encryption key also leads to an inability to change the passphrase of an image. If passphrase is ever compromised the image data will all be vulnerable, since it cannot be re-encrypted. The admin has to clone the image files with a new passphrase and then use a program like shred to secure erase all the old files. Recommend against any use of QCow/QCow2 encryption, directing users to dm-crypt / LUKS which can meet modern cryptography best practices. [Changed "Qcow" to "qcow" for consistency. --Stefan] Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5b0adce156216fb24dcc5f1683e8b686f3793fff Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Fri Jan 31 14:47:38 2014 +0000 arm_gic: Fix GICD_ICPENDR and GICD_ISPENDR writes Fix two bugs that would allow changing the state of SGIs through the ICPENDR and ISPENDRs. Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 41ab7b55108e2699e7c2e77788465cb52a0b2c08 Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Fri Jan 31 14:47:38 2014 +0000 arm_gic: Introduce define for GIC_NR_SGIS Instead of hardcoding 16 various places in the code, use a define to make it more clear what is going on. Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4d1cef840d526c80244175c208260f165f9226db Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Fri Jan 31 14:47:37 2014 +0000 target-arm: A64: Add SIMD shift by immediate This implements a subset of the AdvSIMD shift operations (namely all the none saturating or narrowing ones). The actual shift generation code itself is common for both the scalar and vector cases but wrapped with either vector element iteration or the fp reg access. The rounding operations need to take special care to correctly reflect the result of adding rounding bits on high bits as the intermediates do not truncate. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 845ea09acc4b5ab8335530aaaf94531c368ba934 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:37 2014 +0000 target-arm: A64: Add simple SIMD 3-same floating point ops Implement a simple subset of the SIMD 3-same floating point operations. This includes a common helper function used for both scalar and vector ops; FABD is the only currently implemented shared op. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1f8a73af12ddfb9cf9a90261338b466b7dbf7ab9 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:37 2014 +0000 target-arm: A64: Add integer ops from SIMD 3-same group Add some of the integer operations in the SIMD 3-same group: specifically, the comparisons, addition and subtraction. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 956d272eb2996e4d95f8a674256f8a63a0c1e8d4 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:37 2014 +0000 target-arm: A64: Add logic ops from SIMD 3 same group Add support for the logical operations (ORR, AND, BIC, ORN, EOR, BSL, BIT and BIF) from the SIMD 3 register same group (C3.6.16). Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e1cea1144aff6498ddbcd60e2bff4172869b10d4 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:37 2014 +0000 target-arm: A64: Add top level decode for SIMD 3-same group Add top level decode for the A64 SIMD three regs same group (C3.6.16), splitting it into the pairwise, logical, float and integer subgroups. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit b305dba6cf2957bc67aa6072978c65026ce478fb Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:36 2014 +0000 target-arm: A64: Add SIMD scalar 3 same add, sub and compare ops Implement the add, sub and compare ops from the SIMD "scalar three same" group. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0ae39320bd0783f1a1d4ac63ec9ba48ca41764dc Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:36 2014 +0000 target-arm: A64: Add SIMD three-different ABDL instructions Implement the absolute-difference instructions in the SIMD three-different group: SABAL, SABAL2, UABAL, UABAL2, SABDL, SABDL2, UABDL, UABDL2. Sign |