[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. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit a08582f41e94b5a7ee3e53ad1e719d24431aa675 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:36 2014 +0000 target-arm: A64: Add SIMD three-different multiply accumulate insns Add support for the multiply-accumulate instructions from the SIMD three-different instructions group (C3.6.15): * skeleton decode of unallocated encodings and split of the group into its three sub-parts * framework for handling the 64x64->128 widening subpart * implementation of the multiply-accumulate instructions SMLAL, SMLAL2, UMLAL, UMLAL2, SMLSL, SMLSL2, UMLSL, UMLSL2, UMULL, UMULL2, SMULL, SMULL2 Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 901ad5259fab785537f8c6b3713fce85d2ebceb1 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:35 2014 +0000 target-arm: Add AArch32 SIMD VCVTA, VCVTN, VCVTP and VCVTM Add support for the AArch32 Advanced SIMD VCVTA, VCVTN, VCVTP and VCVTM instructions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c9975a838736c9479b2e17fff7e50a2a83b1009e Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:35 2014 +0000 target-arm: Add AArch32 FP VCVTA, VCVTN, VCVTP and VCVTM Add support for the AArch32 floating-point VCVTA, VCVTN, VCVTP and VCVTM instructions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 34f7b0a276ed2679c5e420ed1bc6525689ac5abd Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:35 2014 +0000 target-arm: Add AArch32 SIMD VRINTA, VRINTN, VRINTP, VRINTM, VRINTZ Add support for the AArch32 Advanced SIMD VRINTA, VRINTN, VRINTP VRINTM and VRINTZ instructions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 43630e585300465b72ecf328822c8611724307de Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:35 2014 +0000 target-arm: Add set_neon_rmode helper This helper sets the rounding mode in the standard_fp_status word to allow NEON instructions to modify the rounding mode whilst using the standard FPSCR values for everything else. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2ce7062501c715aae0ad37c3923a3710dd8914df Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:34 2014 +0000 target-arm: Add support for AArch32 SIMD VRINTX Add support for the AArch32 Advanced SIMD VRINTX instruction. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4e82bc01ecc46e90346f731065528b1d47971eba Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:34 2014 +0000 target-arm: Add support for AArch32 FP VRINTX Add support for the AArch32 floating-point VRINTX instruction. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a290c62a7521a5695e12bb9022f8b953c2f50f54 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:34 2014 +0000 target-arm: Add support for AArch32 FP VRINTZ Add support for the AArch32 floating-point VRINTZ instruction. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 664c6733d72c589cd9f6ccee305e7b7ce36ea06d Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:34 2014 +0000 target-arm: Add support for AArch32 FP VRINTR Add support for the AArch32 floating-point VRINTR instruction. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7655f39bde5de92b4a3c154a5a8735476c34f458 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:33 2014 +0000 target-arm: Add AArch32 FP VRINTA, VRINTN, VRINTP and VRINTM Add support for AArch32 ARMv8 FP VRINTA, VRINTN, VRINTP and VRINTM instructions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 9972da669fd3d3e3423d2bf6cb2c11fa9239f862 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:33 2014 +0000 target-arm: Move arm_rmode_to_sf to a shared location. This function will be needed for AArch32 ARMv8 support, so move it to helper.c where it can be used by both targets. Also moves the code out of line, but as it is quite a large function I don't believe this should be a significant performance impact. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2cdaca90ddf3291f308a10623c1a802ef760bac1 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Jan 31 14:47:33 2014 +0000 display: avoid multi-statement macro For blizzard, pl110 and tc6393xb this is harmless, but for pxa2xx Coverity noticed that it is used inside an "if" statement. Fix it because it's the file with the highest number of defects in the whole QEMU tree! Use "do...while (0)", or just remove the semicolon if there's a single statement in the macro. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit b48adc0d301464d627d6d0f83dee911a2138187f Author: Alistair Francis <alistair.francis@xxxxxxxxxx> Date: Fri Jan 31 14:47:33 2014 +0000 ZYNQ: Implement board MIDR control for Zynq This patch uses the fact that the midr variable is now a property This patch sets the midr variable to the boards custom midr Signed-off-by: Alistair Francis <alistair.francis@xxxxxxxxxx> Message-id: a3754b10d150af72e4688a993e484fa2b9b8fa21.1390176489.git.alistair.francis@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 51a9b04bd3b01e11a1db4fc2ac2f1d324fbd30aa Author: Alistair Francis <alistair.francis@xxxxxxxxxx> Date: Fri Jan 31 14:47:32 2014 +0000 ARM: Convert MIDR to a property Convert the MIDR register to a property. This allows boards to later set a custom MIDR value. This has been done in such a way to maintain compatibility with all existing CPUs and boards Signed-off-by: Alistair Francis <alistair.francis@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 878613f2f12d4162f12629522fd99de8df904856.1390176489.git.alistair.francis@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 83bfffec72ad447dfc80a4eab320403175ffe4e3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:32 2014 +0000 hw/arm/boot: Don't set up ATAGS for autogenerated dtb booting The code which decides whether to set up the ATAGS data structure on reset was using the wrong conditional, which meant we were creating an ATAGS structure when doing a device-tree boot if the dtb was autogenerated by the board. This is harmless, but unnecessary, so bring it in to line with user-provided-dtb boots. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1388326833-656-1-git-send-email-peter.maydell@xxxxxxxxxx commit 360a6f2dbde39211107620a3d38b8cc8cc5281ee Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:32 2014 +0000 target-arm: A64: Add SIMD scalar copy instructions Add support for the SIMD scalar copy instruction group (C3.6.7), which consists of the single instruction DUP (element, scalar). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f3f8c4f4d2fc7dda192393f998e63c7a83fb7554 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Fri Jan 31 14:47:32 2014 +0000 target-arm: A64: Add SIMD modified immediate group This patch adds support for the AdvSIMD modified immediate group (C3.6.6) with all its suboperations (movi, orr, fmov, mvni, bic). Signed-off-by: Alexander Graf <agraf@xxxxxxx> [AJB: new decode struct, minor bug fixes, optimisation] Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 67bb93890d7b435f294f1e47ee7adc5662cc0842 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Fri Jan 31 14:47:31 2014 +0000 target-arm: A64: Add SIMD copy operations This adds support for the all the AdvSIMD vector copy operations (ARM ARM 3.6.5). Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4a0ff1ce73a9e06ecb655019820229de74244432 Author: Michael Matz <matz@xxxxxxx> Date: Fri Jan 31 14:47:31 2014 +0000 target-arm: A64: Add SIMD across-lanes instructions Add support for the SIMD "across lanes" instruction group (C3.6.4). Signed-off-by: Michael Matz <matz@xxxxxxx> [PMM: Updated to current codebase, added fp min/max ops, added unallocated encoding checks] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5fa5469c08f6e51eed26d6d54e0be8682723d3df Author: Michael Matz <matz@xxxxxxx> Date: Fri Jan 31 14:47:31 2014 +0000 target-arm: A64: Add SIMD ZIP/UZP/TRN Add support for the SIMD ZIP/UZIP/TRN instruction group (C3.6.3). Signed-off-by: Michael Matz <matz@xxxxxxx> [PMM: use new do_vec_get/set etc functions and generally update to new codebase standards; refactor to pull per-element loop outside switch] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7c51048fa918f64806adf0f76166e9940d772eb1 Author: Michael Matz <matz@xxxxxxx> Date: Fri Jan 31 14:47:31 2014 +0000 target-arm: A64: Add SIMD TBL/TBLX Add support for the SIMD TBL/TBLX instructions (group C3.6.2). Signed-off-by: Michael Matz <matz@xxxxxxx> [PMM: rewritten to do more of the decode in translate-a64.c, and to do only one 64 bit pass at a time in the helper] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5c73747f3cc29471f9fbfe630ef15902e65f53b3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:30 2014 +0000 target-arm: A64: Add SIMD EXT Add support for the SIMD EXT instruction (the only one in its group, C3.6.1). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 384b26fb06f72e822730d3b8f51fd71a5fec5eee Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Fri Jan 31 14:47:30 2014 +0000 target-arm: A64: Add decode skeleton for SIMD data processing insns Add decode skeleton and function placeholders for all the SIMD data processing instructions. Due to the complexity of this part of the table the normal extract and switch approach gets very messy very quickly, so we use a simple data-driven pattern-and-mask approach. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit df54e47d2b86c636b4d22f663dbffce6a3cffd81 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:30 2014 +0000 target-arm: A64: Add SIMD ld/st single Implement the SIMD ld/st single structure instructions. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 72430bf5eb7f7309e705705af9798d13aa94e80d Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Fri Jan 31 14:47:30 2014 +0000 target-arm: A64: Add SIMD ld/st multiple This adds support support for the SIMD load/store multiple category of instructions. This also brings in a couple of helper functions for manipulating sections of the SIMD registers: * do_vec_get - fetch value from a slice of a vector register * do_vec_set - set a slice of a vector register which use vec_reg_offset for consistent processing of offsets in an endian aware manner. There are also additional helpers: * do_vec_ld - load value into SIMD * do_vec_st - store value from SIMD which load or store a slice of a vector register to memory. These don't zero extend like the fp variants. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 89e4a51ca9546a7bbe1998c4e3d4a3ac3a0c19be Merge: 0159a64 736ec16 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 11:13:08 2014 +0000 Merge remote-tracking branch 'stefanha/tags/tracing-pull-request' into staging Tracing pull request # gpg: Signature made Mon 27 Jan 2014 14:51:09 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 * stefanha/tags/tracing-pull-request: trace: fix simple trace "disable" keyword trace: add glib 2.32+ static GMutex support trace: [simple] Do not include "trace/simple.h" in generated tracer headers tracing: start trace processing thread in final child process Message-id: 1390834386-23139-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 44c68de0445677728700651ed4e2d2063f36f9ed Author: Dominik Dingel <dingel@xxxxxxxxxxxxxxxxxx> Date: Tue Oct 1 16:28:23 2013 +0200 s390x/kvm: cleanup partial register handling The partial register handling (introduced with commits 420840e58b85f7f4e5493dca3f273566f261090a and 3474b679486caa8f6448bae974e131370f360c13 ) aimed to improve intercept handling performance. It made the code more complicated though. During development for life migration/init/reset etc it turned out that this might cause several hard to debug programming errors. With the introduction of ioeventfd (and future irqfd patches) the qemu intercept handlers are no longer hot-path. And therefore the partial register handling can be removed to simplify the code. Signed-off-by: Dominik Dingel <dingel@xxxxxxxxxxxxxxxxxx> CC: Jason J. Herne <jjherne@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> commit 0159a64397fc8e6c85de73613d83a3612c840664 Merge: 97374ce a75143e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 00:23:27 2014 +0000 Merge remote-tracking branch 'mst/tags/for_anthony' into staging acpi,pci,pc,virtio fixes and enhancements This includes new unit-tests for acpi by Marcel, hotplug for pci bridges by myself (piix only so far) and cpu hotplug for q35. And a bunch of fixes all over the place as usual. I included the patch to fix memory alignment for q35 as well - even though it limits 32 bit guests to 3G (they previously could address more memory with PAE). To remove the limit, this will have to be fixed in seabios. I also added self as virtio co-maintainer so I don't need to troll the list for patches to review. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Sun 26 Jan 2014 11:12:09 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 * mst/tags/for_anthony: (35 commits) MAINTAINERS: add self as virtio co-maintainer q35: document gigabyte_align q35: gigabyte alignment for ram acpi: Fix PCI hole handling on build_srat() pc: Save size of RAM below 4GB hw/pci: fix error flow in pci multifunction init acpi-test: update expected AML since recent changes pc: ACPI: update acpi-dsdt.hex.generated q35-acpi-dsdt.hex.generated pc: ACPI: unify source of CPU hotplug IO base/len pc: ACPI: expose PRST IO range via _CRS pc: Q35 DSDT: exclude CPU hotplug IO range from PCI bus resources pc: PIIX DSDT: exclude CPU/PCI hotplug & GPE0 IO range from PCI bus resources pc: set PRST base in DSDT depending on chipset acpi: ich9: add CPU hotplug handling to Q35 machine acpi: factor out common cpu hotplug code for PIIX4/Q35 acpi-build: enable hotplug for PCI bridges piix4: add acpi pci hotplug support pcihp: generalization of piix4 acpi pci: add pci_for_each_bus_depth_first pc: make: fix dependencies: rebuild when included file is changed ... Message-id: 1390735289-15563-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 97374ce538883af677fd94803b71df2d55a9a4de Merge: 8e02b35 794798e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 00:13:02 2014 +0000 Merge remote-tracking branch 'sstabellini/xen-170114' into staging * sstabellini/xen-170114: xen_pt: Fix passthrough of device with ROM. xen_pt: Fix debug output. xenfb: map framebuffer read-only and handle unmap errors Message-id: alpine.DEB.2.02.1401171537140.21510@xxxxxxxxxxxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8e02b359267f8919de799525a4ccd4d37ef2d127 Merge: dc08f85 1f149e7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Jan 30 22:25:39 2014 +0000 Merge remote-tracking branch 'stefanha/tags/net-pull-request' into staging Net patches # gpg: Signature made Mon 27 Jan 2014 14:45:35 GMT using RSA key ID 81AB73C8 # gpg: Can't check signature: public key not found * stefanha/tags/net-pull-request: tap-linux: Get features once and use it many times Fix lan9118 buffer length handling Fix lan9118 TX "CMD A" handling net: Use g_strdup_printf instead of snprintf. Message-id: 1390834129-19625-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit dc08f85188b5976d93bff25ab9e68cf3ce62b12f Merge: 0706f7c 2d23d5e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Jan 30 19:02:16 2014 +0000 Merge remote-tracking branch 'rth/tcg-movbe' into staging * rth/tcg-movbe: tcg/i386: cleanup useless #ifdef tcg/i386: use movbe instruction in qemu_ldst routines tcg/i386: add support for three-byte opcodes tcg/i386: remove hardcoded P_REXW value disas/i386.c: disassemble movbe instruction Message-id: 1390692772-15282-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 360e607b88a23d378f6efaa769c76d26f538234d Author: Stefano Stabellini <Stefano.Stabellini@xxxxxxxxxxxxx> Date: Thu Jan 30 12:46:05 2014 +0000 address_space_translate: do not cross page boundaries The following commit: commit 149f54b53b7666a3facd45e86eece60ce7d3b114 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri May 24 12:59:37 2013 +0200 memory: add address_space_translate breaks Xen support in QEMU, in particular the Xen mapcache. The effect is that one Windows XP installation out of ten would end up with BSOD. The reason is that after this commit l in address_space_rw can span a page boundary, however qemu_get_ram_ptr still calls xen_map_cache asking to map a single page (if block->offset == 0). Fix the issue by reverting to the previous behaviour: do not return a length from address_space_translate_internal that can span a page boundary. Also in address_space_translate do not ignore the length returned by address_space_translate_internal. This patch should be backported to QEMU 1.6.x. Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Signed-off-by: Anthony Perard <anthony.perard@xxxxxxxxxx> Tested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx commit 0706f7c85b3c0783f92d44b551f362884db0f4bd Merge: 18d13fa 2c02d1a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Jan 30 13:56:00 2014 +0000 Merge remote-tracking branch 'mjt/tags/trivial-patches-2014-01-16' into staging trivial-patches for 2014-01-16 # gpg: Signature made Thu 16 Jan 2014 17:29:05 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 Message-id: 1389893719-16336-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 18d13fa293af8e54e15c4651f99b24a139c9eb43 Author: Alexander Graf <agraf@xxxxxxx> Date: Sun Jan 19 16:53:31 2014 +0100 TCG: Fix I64-on-32bit-host temporaries We have cache pools of temporaries that we can reuse later when they've already been allocated before. These cache pools differenciate between the target TCG variable type they contain. So we have one pool for I32 and one pool for I64 variables. On a 32bit system, we can't work with 64bit registers though. So instead we spawn two I32 temporaries for every I64 temporary we create. All caching works the same way as on a real 64-bit system though: We create a cache entry in the 64bit array for the first i32 index. However, when we free such a temporary we free it to the pool of its type (which is always i32 on 32bit systems) rather than its base_type (which is i64 or i32 depending on the variable). This means we put a temporary that is of base_type == i64 into the i32 preallocated temporary pool. Eventually, this results in failures like this on 32bit hosts: qemu-system-ppc64: tcg/tcg.c:515: tcg_temp_new_internal: Assertion `ts->base_type == type' failed. This patch makes the free routine use the base_type instead for the free case, so it's consistent with the temporary allocation. It fixes the above failure for me. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1390146811-59936-1-git-send-email-agraf@xxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 056f49ff2cf645dc484956b00b65a3aa18a1a9a3 Author: Stratos Psomadakis <psomas@xxxxxxxx> Date: Mon Jan 27 12:30:15 2014 +0200 monitor: Cleanup mon->outbuf on write error In case monitor_flush() fails to write the contents of mon->outbuf to the output device, mon->outbuf is not cleaned up properly. Check the return code of the qemu_chr_fe_write() function and cleanup the outbuf if it fails. References: http://lists.nongnu.org/archive/html/qemu-devel/2014-01/msg02890.html Signed-off-by: Stratos Psomadakis <psomas@xxxxxxxx> Signed-off-by: Dimitris Aragiorgis <dimara@xxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 57d3e1b3f52d07d215ed96df946ee01f8d9f9526 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 16 17:34:39 2014 +0100 virtio_rng: replace custom backend API with UserCreatable.complete() callback in addition fix default backend leak by releasing it if its initialization failed. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 269e09f3fc922b800d118d9c8a721be46b5462a3 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 16 17:34:38 2014 +0100 add optional 2nd stage initialization to -object/object-add commands Introduces USER_CREATABLE interface that must be implemented by objects which are designed to created with -object CLI option or object-add QMP command. Interface provides an ability to do an optional second stage initialization of the object created with -object/object-add commands. By providing complete() callback, which is called after the object properties were set. It allows to: * prevents misusing of -object/object-add by filtering out objects that are not designed for it. * generalize second stage backend initialization instead of adding custom APIs to perform it * early error detection of backend initialization at -object/ object-add time rather than through a proxy DEVICE object that tries to use backend. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 90e9cf28e57a3e1d6caa0a28b0a332ff982ccb0b Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 16 17:34:37 2014 +0100 vl.c: -object: don't ignore duplicate 'id' object_property_add_child() may fail if 'id' matches an already existing object. Which means an incorrect command line. So instead of silently ignoring error, report it and terminate QEMU. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 69252c046741a0955ddb90250f416a2199305091 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 16 17:34:36 2014 +0100 object_add: consolidate error handling Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 8b6d14087d487203f4d1a67aeaddc3be6c73f49f Author: Bandan Das <bsd@xxxxxxxxxx> Date: Tue Jan 28 08:23:19 2014 -0700 vfio: correct debug macro typo Change to DEBUG_VFIO in vfio_msi_interrupt() for debug messages to get printed Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 234eef51a12e2f0f8dfd71cb49d2469d462b1855 Author: Matthew Rosato <mjrosato@xxxxxxxxxxxxxxxxxx> Date: Mon Jan 27 10:57:50 2014 -0500 sclp-s390: Define new SCLP codes and structures Define new SCLP codes and structures that will be needed for s390 memory hotplug. Signed-off-by: Matthew Rosato <mjrosato@xxxxxxxxxxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 736ec1677f1ae7e64f2f3436ca3775c48f79678c Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Jan 15 11:10:30 2014 +0800 trace: fix simple trace "disable" keyword The trace-events "disable" keyword turns an event into a nop at compile-time. This is important for high-frequency events that can impact performance. The "disable" keyword is currently broken in the simple trace backend. This patch fixes the problem as follows: Trace events are identified by their TraceEventID number. When events are disabled there are two options for assigning TraceEventID numbers: 1. Skip disabled events and don't assign them a number. 2. Assign numbers for all events regardless of the disabled keyword. The simple trace backend and its binary file format uses approach #1. The tracetool infrastructure has been using approach #2 for a while. The result is that the numbers used in simple trace files do not correspond with TraceEventIDs. In trace/simple.c we assumed that they are identical and therefore emitted bogus numbers. This patch fixes the bug by using TraceEventID for trace_event_id() while sticking to approach #1 for simple trace file numbers. This preserves simple trace file format compatibility. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 05735a2a9cf37f5dc11ece998906431dda707258 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Dec 12 15:50:11 2013 +0100 trace: add glib 2.32+ static GMutex support The GStaticMutex API was deprecated in glib 2.32. We cannot switch over to GMutex unconditionally since we would drop support for older glib versions. But the deprecated API warnings during build are annoying so use static GMutex when possible. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b618c28831eda2531acc5c1feb9dbb3047d19391 Author: LluÃs Vilanova <vilanova@xxxxxxxxxx> Date: Tue Jan 14 16:52:55 2014 +0100 trace: [simple] Do not include "trace/simple.h" in generated tracer headers The header is not necessary, given that the simple backend does not define any inlined tracing routines. Signed-off-by: LluÃs Vilanova <vilanova@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8a745f2a9296ad2cf6bda33534ed298f2625a4ad Author: Michael Mueller <mimu@xxxxxxxxxxxxxxxxxx> Date: Mon Sep 23 16:36:54 2013 +0200 tracing: start trace processing thread in final child process When running with trace backend e.g. "simple" the writer thread needs to be implemented in the same process context as the trace points that will be processed. Under libvirtd control, qemu gets first started in daemonized mode to privide its capabilities. Creating the writer thread in the initial process context then leads to a dead lock because the thread gets termined together with the initial parent. (-daemonize) Signed-off-by: Michael Mueller <mimu@xxxxxxxxxxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> [minor whitespace fixes] Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1f149e721feb617d14a3ee4f5911c47b29866a54 Author: Kusanagi Kouichi <slash@xxxxxxxxxxxxxxx> Date: Sat Jan 18 14:38:45 2014 +0900 tap-linux: Get features once and use it many times Signed-off-by: Kusanagi Kouichi <slash@xxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c444dfabfc21cb5f093862100e333b808eea32e4 Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Jan 7 20:19:52 2014 -0800 Fix lan9118 buffer length handling The 9118 ethernet controller supports transmission of multi-buffer packets with arbitrary byte alignment of the start and end bytes. All writes to the packet fifo are 32 bits, so the controller discards bytes at the beginning and end of each buffer based on the 'Data start offset' and 'Buffer size' of the TX command 'A' format. This patch uses the provided buffer length to limit the bytes transmitted. Previously all the bytes of the last 32-bit word written to the TX fifo were added to the internal transmit buffer structure resulting in more bytes being transmitted than were submitted to the hardware in the command. This resulted in extra bytes being inserted into the middle of multi-buffer packets when the non-final buffers had non-32bit aligned ending addresses. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2ad657e3f3af66def47554186a58f1748787a527 Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Jan 7 20:19:51 2014 -0800 Fix lan9118 TX "CMD A" handling The 9118 ethernet controller supports transmission of multi-buffer packets with arbitrary byte alignment of the start and end bytes. All writes to the packet fifo are 32 bits, so the controller discards bytes at the beginning and end of each buffer based on the 'Data start offset' and 'Buffer size' of the TX command 'A' format. This patch changes the buffer size and offset internal state variables to be updated on every "TX command A" write. Previously they were only updated for the first segment, which resulted incorrect behavior for packets with more than one segment. Each segment of the packet has its own CMD A command, with its own buffer size and start offset. Also update extraction of fields from the CMD A word to use extract32(). Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4bf2c138ddefc6ff17f6c4b947320c60aa0c38a0 Author: Hani Benhabiles <kroosec@xxxxxxxxx> Date: Thu Jan 9 19:34:27 2014 +0100 net: Use g_strdup_printf instead of snprintf. assign_name() in net/net.c is using snprintf + g_strdup to get the same result as g_strdup_printf. Signed-off-by: Hani Benhabiles <kroosec@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a75143eda2ddf581b51e96c000974bcdfe2cbd10 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Jan 26 12:39:55 2014 +0200 MAINTAINERS: add self as virtio co-maintainer This will help make sure I get Cc'd on patches. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4e17997d49d6e3a426fd465dfbdf5a4dc04639f4 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Dec 16 13:55:06 2013 +0200 q35: document gigabyte_align Document the logic behind the below/above 4G split. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9a305c8fc7bb567e9f754ddfe5fb102aaeeb770a Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 16 10:11:28 2013 +0100 q35: gigabyte alignment for ram Map 2G (q35) of memory below 4G, so the RAM pieces are nicely aligned to gigabyte borders. Keep old memory layout for (a) old machine types and (b) in case all memory fits below 4G and thus we don't have to split RAM into pieces in the first place. The later makes sure this change doesn't take away memory from 32bit guests. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4c8a949b2416158a311abefc09a20153aa107e93 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Jan 9 17:12:43 2014 -0200 acpi: Fix PCI hole handling on build_srat() The original SeaBIOS code used the RamSize variable, that was used by SeaBIOS for the size of RAM below 4GB, not for all RAM. When copied to QEMU, the code was changed to use the full RAM size, and this broke the build_srat() code that handles the PCI hole. Change build_srat() to use ram_size_below_4g instead of ram_size, to restore the original behavior from SeaBIOS. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit f30ee8a9682be4abfcb05c6389894f8cfc35c3f0 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Jan 9 17:12:42 2014 -0200 pc: Save size of RAM below 4GB The ram_below_4g value will be useful in other places, such as the ACPI table code, and other code that currently requires passing below_4g_mem_size around in function arguments. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 306077640a652e090779498aadbeb0c605feaacd Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Tue Jan 21 18:37:51 2014 +0200 hw/pci: fix error flow in pci multifunction init Scenario: - There is a non multifunction pci device A on 00:0X.0. - Hot-plug another multifunction pci device B at 00:0X.1. - The operation will fail of course. - Try to hot-plug the B device 2-3 more times, qemu will crash. Reason: The error flow leaves the B's address space into global address spaces list, but the device object is freed. Fixed that. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit b8124cecb55b3bc4e7dee0ff34b294942044d74a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Jan 20 14:00:12 2014 +0200 acpi-test: update expected AML since recent changes Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 2867534f3d1daa970eba2afdb9b401388bd75b56 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:39 2014 +0100 pc: ACPI: update acpi-dsdt.hex.generated q35-acpi-dsdt.hex.generated Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit e4cf8ed08a1b8b996f9939de0d8eda4ed8a3d25e Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:38 2014 +0100 pc: ACPI: unify source of CPU hotplug IO base/len use C headers defines as source of IO base/len for respective values in ASL code. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 61a3f63560ccd2b5e8c9134e9213a1cff36f26bf Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:37 2014 +0100 pc: ACPI: expose PRST IO range via _CRS .. so OSPM could notice resource conflict if there is any. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 562e56a9f8e627b2a4ef60037507361ce3cb4e6d Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:36 2014 +0100 pc: Q35 DSDT: exclude CPU hotplug IO range from PCI bus resources ... for range defined at hw/acpi/ich9.c:ICH9_PROC_BASE Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 1aa149b479a479323121251f1e8e676765cb354d Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:35 2014 +0100 pc: PIIX DSDT: exclude CPU/PCI hotplug & GPE0 IO range from PCI bus resources .. so that they might not be used by PCI devices. Note: Resort to concatenating templates with preprocessor help, because 1.0b spec isn't supporting ConcatenateResTemplate, as result Windows XP fails to execute PCI0._CRS method if ConcatenateResTemplate() is used. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4782434f3cc016fbab16228e92e90265cf6db908 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:34 2014 +0100 pc: set PRST base in DSDT depending on chipset Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d6610bc2adc19a632cb14fc094378cbf5cd60868 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:32 2014 +0100 acpi: ich9: add CPU hotplug handling to Q35 machine .. use IO port 0cd8-0xcf7 range for CPU present bitmap Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 81cea5e7f2aa61c6c5d33d28bceb81276603d3c9 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:31 2014 +0100 acpi: factor out common cpu hotplug code for PIIX4/Q35 .. so it could be used for adding CPU hotplug to Q35 machine Add an additional header with that will be shared between C and ASL code: include/hw/acpi/cpu_hotplug_defs.h Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 99fd437dee468609de8218f0eb3b16621fb6a9c9 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Oct 14 18:01:29 2013 +0300 acpi-build: enable hotplug for PCI bridges This enables support for device hotplug behind pci bridges. Bridge devices themselves need to be pre-configured on qemu command line. Design: - at machine init time, assign "bsel" property to bridges with hotplug support - dynamically (At ACPI table read) generate ACPI code to handle hotplug events for each bridge with "bsel" property Note: ACPI doesn't support adding or removing bridges by hotplug. We detect and prevent removal of bridges by hotplug, unless they were added by hotplug previously (and so, are not described by ACPI). Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9e047b982452c633882b486682966c1d97097015 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Oct 14 18:01:20 2013 +0300 piix4: add acpi pci hotplug support Add support for acpi pci hotplug using the new infrastructure. PIIX4 legacy interface is maintained as is for machine types 1.7 and older. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit db4728e6fec0364b866d3106125974eedc00e091 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Oct 14 18:01:11 2013 +0300 pcihp: generalization of piix4 acpi Add ACPI based PCI hotplug library with bridge hotplug support. Design - each bus gets assigned "bsel" property. - ACPI code writes this number to a new BNUM register, then uses existing UP/DOWN registers to probe slot status; to eject, write number to BNUM register, then slot into existing EJ. The interface is actually backwards-compatible with existing PIIX4 ACPI (though not migration compatible). This is split out from PIIX4 codebase so we can reuse it for Q35 as well. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit eb0acfdde604930688c47fe1ba99bec2bd84b7ad Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Oct 14 18:01:07 2013 +0300 pci: add pci_for_each_bus_depth_first Useful for ACPI hotplug. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4d25299cb2b57a16fd3194e938eeb78d219400ba Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:33 2014 +0100 pc: make: fix dependencies: rebuild when included file is changed some *.dsl files include another *.dsl files but there weren't any dependicies and when included file changed target table wasn't rebuild. Fix this by using the same auto dependency generation as for C files. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 0651596cbed8c0806aa2d7e436201f28b2fe179a Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Jan 16 17:50:48 2014 +0200 acpi unit-test: do not fail on asl mismatch The asl comparison will break every time the ACPI tables are updated. This may break the git bisect. Instead of failing print a warning on stderr including the retained asl files, so they can be compared offline. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 69d09245d19765fd461cc3d3a7d79686007c4474 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Jan 16 17:50:47 2014 +0200 acpi unit-test: resolved iasl crash It seems that iasl has an issue when disassembles some ACPI tables using the command line: iasl -e DSDT -e SSDT -d HPET Modified the iasl command line to "iasl -d HPET" until the problem is solved. The command line remained the same for DSDT and SSDT tables. Reported-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a3a74ab90ea81cafaf4d03824d47a6d028ea996d Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Jan 16 17:50:46 2014 +0200 acpi unit-test: renamed ssdt_tables to tables Just a refactoring, ssdt_tables name was confusing as it included other tables as well. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 084137ddbbb30f5f85298711dc2d501a625d37ab Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Jan 13 18:33:53 2014 +1100 tests: fix acpi to work on bigendian host Double endianness convertion make this test failing on POWERPC machine running in big-endian. This fixes the test to success on big-endian host. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4500bc98a6aab1734d865afaeade3509eb65b560 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Dec 26 16:54:25 2013 +0200 acpi unit-test: hook to rebuild expected aml files When running the test with TEST_ACPI_REBUILD_AML=y environment variable, the test will rebuild and validate the expected aml files. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit cebc92a2131be21cc4dc5f72f1e243061cd96b1f Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Dec 26 16:54:24 2013 +0200 acpi unit-test: added script to rebuild the expected aml files Acpi unit-test will fail every time the acpi tables change. This script rebuild the expected aml files, so the test will pass. It also validates the modifications. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit cc8fa0e80836c51ba644d910cd89540a5bc83fc2 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Dec 26 16:54:23 2013 +0200 acpi unit-test: extract iasl executable from configuration The test checked if iasl is installed by running "iasl" and checking the error output. It is better to use the iasl executable as appears in configuration. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9dd6cabdd3bfa49d4f594956e8ee93f8996460c7 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Dec 26 16:54:22 2013 +0200 configure: add CONFIG_IASL to config-host.h Acpi unit-tests will extract iasl executable from CONFIG_IASL define. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9e8458c0232356a0c0eebb4fa4928fd02250c5f4 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Dec 26 16:54:21 2013 +0200 acpi unit-test: compare DSDT and SSDT tables against expected values This test will run only if iasl is installed on the host machine. The test plan: 1. Dumps the ACPI tables as AML on the disk. 2. Runs iasl to disassembly the tables into ASL files. 3. Runs iasl to disassembly the offline AML files into ASL files. 4. Compares the ASL files. The test runs for both default machine and q35. In case the test fails, it can be easily tweaked to show the differences between the ASL files and understand the issue. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c2304b52f1b20fa79d299177d1fe75df2d265bfa Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Dec 26 16:54:20 2013 +0200 configure: added acpi unit-test files Ensure configure will set-up links for the files if the build is created in other directory. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d259793808052dbef6d2d90cdb09150d03b8413b Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Dec 26 16:54:19 2013 +0200 acpi unit-test: add test files Added unit-test's expected aml files to be compared with the actual ACPI tables. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4dd72e04c2c4759782d0eb3e3aff6a36889c1e18 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Dec 22 15:51:22 2013 +0100 virtio: Fix return value for dummy function vhost_net_virtqueue_pending cgcc complains that -ENOSYS is not a good value for 'bool'. A dummy virtio will never have pending queue entries, so let us return false. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8977557ae418f9b9ff5c35ee39161a33f2368e6a Author: Gabriel L. Somlo <gsomlo@xxxxxxxxx> Date: Mon Jan 13 15:27:13 2014 -0500 ACPI: Fix AppleSMC _STA size Minimize the storage used for AppleSMC's _STA (8bit), relying on ASL to implicitly convert it to the officially specified 32bit value. Signed-off-by: Gabriel Somlo <somlo@xxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 15bce1b7c55c69f47e13c9eb2a4b80f41da26581 Author: Gabriel L. Somlo <gsomlo@xxxxxxxxx> Date: Sun Dec 22 10:34:56 2013 -0500 Add DSDT node for AppleSMC AppleSMC (-device isa-applesmc) is required to boot OS X guests. OS X expects a SMC node to be present in the ACPI DSDT. This patch adds a SMC node to the DSDT, and dynamically patches the return value of SMC._STA to either 0x0B if the chip is present, or otherwise to 0x00, before booting the guest. Signed-off-by: Gabriel Somlo <somlo@xxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 3e16d14fd93ca6059134ba6b4f65c1c3e4cd3a18 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Dec 17 01:37:06 2013 +0100 Python-lang gdb script to extract x86_64 guest vmcore from qemu coredump When qemu dies unexpectedly, for example in response to an explicit abort() call, or (more importantly) when an external signal is delivered to it that results in a coredump, sometimes it is useful to extract the guest vmcore from the qemu process' memory image. The guest vmcore might help understand an emulation problem in qemu, or help debug the guest. This script reimplements (and cuts many features of) the qmp_dump_guest_memory() command in gdb/Python, https://sourceware.org/gdb/current/onlinedocs/gdb/Python-API.html working off the saved memory image of the qemu process. The docstring in the patch (serving as gdb help text) describes the limitations relative to the QMP command. Dependencies of qmp_dump_guest_memory() have been reimplemented as needed. I sought to follow the general structure, sticking to original function names where possible. However, keeping it simple prevailed in some places. The patch has been tested with a 4 VCPU, 768 MB, RHEL-6.4 (2.6.32-358.el6.x86_64) guest: - The script printed > guest RAM blocks: > target_start target_end host_addr message count > ---------------- ---------------- ---------------- ------- ----- > 0000000000000000 00000000000a0000 00007f95d0000000 added 1 > 00000000000a0000 00000000000b0000 00007f960ac00000 added 2 > 00000000000c0000 00000000000ca000 00007f95d00c0000 added 3 > 00000000000ca000 00000000000cd000 00007f95d00ca000 joined 3 > 00000000000cd000 00000000000d0000 00007f95d00cd000 joined 3 > 00000000000d0000 00000000000f0000 00007f95d00d0000 joined 3 > 00000000000f0000 0000000000100000 00007f95d00f0000 joined 3 > 0000000000100000 0000000030000000 00007f95d0100000 joined 3 > 00000000fc000000 00000000fc800000 00007f960ac00000 added 4 > 00000000fffe0000 0000000100000000 00007f9618800000 added 5 > dumping range at 00007f95d0000000 for length 00000000000a0000 > dumping range at 00007f960ac00000 for length 0000000000010000 > dumping range at 00007f95d00c0000 for length 000000002ff40000 > dumping range at 00007f960ac00000 for length 0000000000800000 > dumping range at 00007f9618800000 for length 0000000000020000 - The vmcore was checked with "readelf", comparing the results against a vmcore written by qmp_dump_guest_memory(): > --- theirs 2013-09-12 17:38:59.797289404 +0200 > +++ mine 2013-09-12 17:39:03.820289404 +0200 > @@ -27,16 +27,16 @@ > Type Offset VirtAddr PhysAddr > FileSiz MemSiz Flags Align > NOTE 0x0000000000000190 0x0000000000000000 0x0000000000000000 > - 0x0000000000000ca0 0x0000000000000ca0 0 > - LOAD 0x0000000000000e30 0x0000000000000000 0x0000000000000000 > + 0x000000000000001c 0x000000000000001c 0 > + LOAD 0x00000000000001ac 0x0000000000000000 0x0000000000000000 > 0x00000000000a0000 0x00000000000a0000 0 > - LOAD 0x00000000000a0e30 0x0000000000000000 0x00000000000a0000 > + LOAD 0x00000000000a01ac 0x0000000000000000 0x00000000000a0000 > 0x0000000000010000 0x0000000000010000 0 > - LOAD 0x00000000000b0e30 0x0000000000000000 0x00000000000c0000 > + LOAD 0x00000000000b01ac 0x0000000000000000 0x00000000000c0000 > 0x000000002ff40000 0x000000002ff40000 0 > - LOAD 0x000000002fff0e30 0x0000000000000000 0x00000000fc000000 > + LOAD 0x000000002fff01ac 0x0000000000000000 0x00000000fc000000 > 0x0000000000800000 0x0000000000800000 0 > - LOAD 0x00000000307f0e30 0x0000000000000000 0x00000000fffe0000 > + LOAD 0x00000000307f01ac 0x0000000000000000 0x00000000fffe0000 > 0x0000000000020000 0x0000000000020000 0 > > There is no dynamic section in this file. > @@ -47,13 +47,6 @@ > > No version information found in this file. > > -Notes at offset 0x00000190 with length 0x00000ca0: > +Notes at offset 0x00000190 with length 0x0000001c: > Owner Data size Description > - CORE 0x00000150 NT_PRSTATUS (prstatus structure) > - CORE 0x00000150 NT_PRSTATUS (prstatus structure) > - CORE 0x00000150 NT_PRSTATUS (prstatus structure) > - CORE 0x00000150 NT_PRSTATUS (prstatus structure) > - QEMU 0x000001b0 Unknown note type: (0x00000000) > - QEMU 0x000001b0 Unknown note type: (0x00000000) > - QEMU 0x000001b0 Unknown note type: (0x00000000) > - QEMU 0x000001b0 Unknown note type: (0x00000000) > + NONE 0x00000005 Unknown note type: (0x00000000) - The vmcore was checked with "crash" too, again comparing the results against a vmcore written by qmp_dump_guest_memory(): > --- guest.vmcore.log2 2013-09-12 17:52:27.074289201 +0200 > +++ example.dump.log2 2013-09-12 17:52:15.904289203 +0200 > @@ -22,11 +22,11 @@ > This GDB was configured as "x86_64-unknown-linux-gnu"... > > KERNEL: /usr/lib/debug/lib/modules/2.6.32-358.el6.x86_64/vmlinux > - DUMPFILE: /home/lacos/tmp/guest.vmcore > + DUMPFILE: /home/lacos/tmp/example.dump > CPUS: 4 > - DATE: Thu Sep 12 17:16:11 2013 > - UPTIME: 00:01:09 > -LOAD AVERAGE: 0.07, 0.03, 0.00 > + DATE: Thu Sep 12 17:17:41 2013 > + UPTIME: 00:00:38 > +LOAD AVERAGE: 0.18, 0.05, 0.01 > TASKS: 130 > NODENAME: localhost.localdomain > RELEASE: 2.6.32-358.el6.x86_64 > @@ -38,12 +38,12 @@ > COMMAND: "swapper" > TASK: ffffffff81a8d020 (1 of 4) [THREAD_INFO: ffffffff81a00000] > CPU: 0 > - STATE: TASK_RUNNING (PANIC) > + STATE: TASK_RUNNING (ACTIVE) > + WARNING: panic task not found > > crash> bt > PID: 0 TASK: ffffffff81a8d020 CPU: 0 COMMAND: "swapper" > - #0 [ffffffff81a01ed0] default_idle at ffffffff8101495d > - #1 [ffffffff81a01ef0] cpu_idle at ffffffff81009fc6 > + #0 [ffffffff81a01ef0] cpu_idle at ffffffff81009fc6 > crash> task ffffffff81a8d020 > PID: 0 TASK: ffffffff81a8d020 CPU: 0 COMMAND: "swapper" > struct task_struct { > @@ -75,7 +75,7 @@ > prev = 0xffffffff81a8d080 > }, > on_rq = 0, > - exec_start = 8618466836, > + exec_start = 7469214014, > sum_exec_runtime = 0, > vruntime = 0, > prev_sum_exec_runtime = 0, > @@ -149,7 +149,7 @@ > }, > tasks = { > next = 0xffff88002d621948, > - prev = 0xffff880029618f28 > + prev = 0xffff880023b74488 > }, > pushable_tasks = { > prio = 140, > @@ -165,7 +165,7 @@ > } > }, > mm = 0x0, > - active_mm = 0xffff88002929b780, > + active_mm = 0xffff8800297eb980, > exit_state = 0, > exit_code = 0, > exit_signal = 0, > @@ -177,7 +177,7 @@ > sched_reset_on_fork = 0, > pid = 0, > tgid = 0, > - stack_canary = 2483693585637059287, > + stack_canary = 7266362296181431986, > real_parent = 0xffffffff81a8d020, > parent = 0xffffffff81a8d020, > children = { > @@ -224,14 +224,14 @@ > set_child_tid = 0x0, > clear_child_tid = 0x0, > utime = 0, > - stime = 3, > + stime = 2, > utimescaled = 0, > - stimescaled = 3, > + stimescaled = 2, > gtime = 0, > prev_utime = 0, > prev_stime = 0, > nvcsw = 0, > - nivcsw = 1000, > + nivcsw = 1764, > start_time = { > tv_sec = 0, > tv_nsec = 0 - <name_dropping>I asked for Dave Anderson's help with verifying the extracted vmcore, and his comments make me think I should post this.</name_dropping> Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 2d23d5edb5b23849c668dd729e4da7b2c63b163b Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Nov 6 19:56:58 2013 +0100 tcg/i386: cleanup useless #ifdef TCG_TARGET_HAS_movcond_i32 is always defined to 1 in tcg-target.h, so remove the corresponding #ifdef #endif sequence, left from a previous refactoring. Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 085bb5bb64069a16b843fca840f91cdfb3f40fda Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Nov 6 19:51:21 2013 +0100 tcg/i386: use movbe instruction in qemu_ldst routines The movbe instruction has been added on some Intel Atom CPUs and on recent Intel Haswell CPUs. It allows to load/store a value and at the same time bswap it. This patch detects the avaibility of this instruction and when available use it in the qemu load/store routines in replacement of load/store + bswap. Note that for 16-bit unsigned loads, movbe + movzw is basically the same as movzw + bswap, so the patch doesn't touch this case. Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> [RTH: Reduced the number of conditionals using "movop".] Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2a1137753f9618283ac40394a75976d18f608e39 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Nov 6 19:49:08 2013 +0100 tcg/i386: add support for three-byte opcodes Add support for three-byte opcodes, starting with the 0x0f 0x38 prefix. Use P_EXT38 as the new constant, and shift all other constants so that P_EXT and P_EXT38 have neighbouring values. Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> [RTH: Changed the name from P_EXT2 to P_EXT38.] Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c9d78213b8bf6e0da9ff30b53c33e93fb0373249 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Nov 6 18:32:23 2013 +0100 tcg/i386: remove hardcoded P_REXW value P_REXW is defined has a constant at the beginning of i386/tcg-target.c, but the corresponding bit is later used in a harcoded way, which defeat the purpose of a constant. Fix that by using a conditional expression operator instead of a shift. On x86 this actually makes the code slightly smaller as GCC does in practice (opc >> 8) & 8 instead of (opc & 0x800) >> 8 so the constants are smaller to load. Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ba00599cc32626b53ba151c627a763518c76c49f Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Nov 6 18:31:43 2013 +0100 disas/i386.c: disassemble movbe instruction Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0169c511554cb0014a00290b0d3d26c31a49818f Merge: 1c51e68 439d19f Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 24 15:52:44 2014 -0800 Merge remote-tracking branch 'qemu-kvm/uq/master' into staging * qemu-kvm/uq/master: kvm: always update the MPX model specific register KVM: fix addr type for KVM_IOEVENTFD KVM: Retry KVM_CREATE_VM on EINTR mempath prefault: fix off-by-one error kvm: x86: Separately write feature control MSR on reset roms: Flush icache when writing roms to guest memory target-i386: clear guest TSC on reset target-i386: do not special case TSC writeback target-i386: Intel MPX Conflicts: exec.c aliguori: fix trivial merge conflict in exec.c Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 1c51e68b182bb335464bb19ad2517fd43c58c127 Merge: 7d64b2c 918b94e Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 24 15:52:16 2014 -0800 Merge remote-tracking branch 'otubo/seccomp' into staging * otubo/seccomp: seccomp: add some basic shared memory syscalls to the whitelist seccomp: add mkdir() and fchmod() to the whitelist Message-id: 1390231004-18392-1-git-send-email-otubo@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 7d64b2c2e22d956b358a97323f0d70060dcd9a06 Merge: 14ac4fe 2777ccc Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 24 15:52:08 2014 -0800 Merge remote-tracking branch 'sweil/tags/for_anthony' into staging Initial patch for QEMU GTK support on Windows # gpg: Signature made Mon 20 Jan 2014 11:37:58 AM PST using RSA key ID FAD62069 # gpg: Can't check signature: public key not found * sweil/tags/for_anthony: gtk: Support keyboard translation for hosts running Windows Message-id: 1390246909-18757-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 14ac4febb22b4083a5a64b251ab15c94d7d65833 Merge: f4b2779 39e6a38 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 24 15:51:38 2014 -0800 Merge remote-tracking branch 'kraxel/tags/pull-audio-2' into staging hda-codec: disable streams on reset # gpg: Signature made Tue 21 Jan 2014 02:17:12 AM PST using RSA key ID D3E87138 # gpg: Can't check signature: public key not found * kraxel/tags/pull-audio-2: hda-codec: disable streams on reset Message-id: 1390299589-5082-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit f4b27793a8b948178ced486d1d32d1919bea81b2 Merge: e9f526a 88678fb Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 24 15:51:23 2014 -0800 Merge remote-tracking branch 'kraxel/tags/pull-usb-2' into staging usb core+hid: add support for microsoft os descriptors # gpg: Signature made Tue 21 Jan 2014 02:21:29 AM PST using RSA key ID D3E87138 # gpg: Can't check signature: public key not found * kraxel/tags/pull-usb-2: usb-hid: add microsoft os descriptor support usb: add support for microsoft os descriptors Message-id: 1390299772-5368-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit e9f526ab7b01662c323a47446e22308968221ac1 Merge: 0d688cf 1cb27d9 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 24 15:50:14 2014 -0800 Merge remote-tracking branch 'bonzini/scsi-next' into staging * bonzini/scsi-next: scsi: Support TEST UNIT READY in the dummy LUN0 block: add .bdrv_reopen_prepare() stub for iscsi virtio-scsi: Prevent assertion on missed events virtio-scsi: Cleanup of I/Os that never started scsi: Assign cancel_io vector for scsi_disk_emulate_ops Conflicts: block/iscsi.c aliguori: resolve trivial merge conflict in block/iscsi.c Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0d688cf7d8d71bce2aab83173552a784e96b6729 Merge: 732c66c d510358 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 24 15:43:30 2014 -0800 Merge remote-tracking branch 'kwolf/tags/for-anthony' into staging Block patches # gpg: Signature made Fri 24 Jan 2014 08:40:53 AM PST using RSA key ID C88F2FD6 # gpg: Can't check signature: public key not found * kwolf/tags/for-anthony: (93 commits) block: Switch bdrv_io_limits_intercept() to byte granularity qemu-iotests: Test pwritev RMW logic qemu-io: New command 'sleep' blkdebug: Make required alignment configurable iscsi: Set bs->request_alignment block: Make bdrv_pwrite() a bdrv_prwv_co() wrapper block: Make bdrv_pread() a bdrv_prwv_co() wrapper block: Change coroutine wrapper to byte granularity block: Assert serialisation assumptions in pwritev block: Align requests in bdrv_co_do_pwritev() block: Allow wait_serialising_requests() at any point block: Make overlap range for serialisation dynamic block: Generalise and optimise COR serialisation block: Make zero-after-EOF work with larger alignment block: Allow waiting for overlapping requests between begin/end block: Switch BdrvTrackedRequest to byte granularity block: Introduce bdrv_co_do_pwritev() block: write: Handle COR dependency after I/O throttling block: Introduce bdrv_aligned_pwritev() block: Introduce bdrv_co_do_preadv() ... Message-id: 1390584136-24703-1-git-send-email-kwolf@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit d5103588aa39157c8eea3bb5fb6780bbd8be21b7 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Jan 16 13:29:10 2014 +0100 block: Switch bdrv_io_limits_intercept() to byte granularity Request sizes used to be rounded down to the next sector boundary, allowing to bypass the I/O limit. Now all requests are accounted for with their exact byte size. Reported-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 9e1cb96d9a5e434f389a4d7b7ff4dcdd71e8ec0f Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Jan 14 15:37:03 2014 +0100 qemu-iotests: Test pwritev RMW logic Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit cd33d02a1012e58ee0d3c8259159e8c60cfa0a4d Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Jan 15 15:39:10 2014 +0100 qemu-io: New command 'sleep' There is no easy way to check that a request correctly waits for a different request. With a sleep command we can at least approximate it. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b35ee7fb2308e09092488029b5a9e456ce61bbe6 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Jan 14 13:44:35 2014 +0100 blkdebug: Make required alignment configurable The new 'align' option of blkdebug can be used in order to emulate backends with a required 4k alignment on hosts which only really require 512 byte alignment. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2c9880c45e2f9a98d11d44ce9966515c23870a86 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Nov 29 12:41:35 2011 +0100 iscsi: Set bs->request_alignment The iSCSI backend already gets the block size from the READ CAPACITY command it sends. Save it so that the generic block layer gets it too. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 8407d5d7e265911b05949ee2ffd9e45c97bf0505 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Dec 5 12:34:02 2013 +0100 block: Make bdrv_pwrite() a bdrv_prwv_co() wrapper Instead of implementing the alignment adjustment here, use the now existing functionality of bdrv_co_do_pwritev(). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit a3ef65718506fb94cb9e5a903ef9bf9ad8fbe6de Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Dec 5 12:29:59 2013 +0100 block: Make bdrv_pread() a bdrv_prwv_co() wrapper Instead of implementing the alignment adjustment here, use the now existing functionality of bdrv_co_do_preadv(). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 775aa8b6e0ea25f8cca74d0fcb1e30a764cf624f Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Dec 5 12:09:38 2013 +0100 block: Change coroutine wrapper to byte granularity Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 28de2dcd88de31f50bbd43d9c2fcb046c3a727cb Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Jan 14 11:41:35 2014 +0100 block: Assert serialisation assumptions in pwritev If a request calls wait_serialising_requests() and actually has to wait in this function (i.e. a coroutine yield), other requests can run and previously read data (like the head or tail buffer) could become outdated. In this case, we would have to restart from the beginning to read in the updated data. However, we're lucky and don't actually need to do that: A request can only wait in the first call of wait_serialising_requests() because we mark it as serialising before that call, so any later requests would wait. So as we don't wait in practice, we don't have to reload the data. This is an important assumption that may not be broken or data corruption will happen. Document it with some assertions. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 3b8242e0ea2a2c201ef3d1bd24080490dae33080 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Dec 3 16:34:41 2013 +0100 block: Align requests in bdrv_co_do_pwritev() This patch changes bdrv_co_do_pwritev() to actually be what its name promises. If requests aren't properly aligned, it performs a RMW. Requests touching the same block are serialised against the RMW request. Further optimisation of this is possible by differentiating types of requests (concurrent reads should actually be okay here). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 6460440f34c709461b84375cfd8a86b27d433225 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Dec 13 13:04:35 2013 +0100 block: Allow wait_serialising_requests() at any point We can only have a single wait_serialising_requests() call per request because otherwise we can run into deadlocks where requests are waiting for each other. The same is true when wait_serialising_requests() is not at the very beginning of a request, so that other requests can be issued between the start of the tracking and wait_serialising_requests(). Fix this by changing wait_serialising_requests() to ignore requests that are already (directly or indirectly) waiting for the calling request. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 7327145f63a224c9ba9c16d0c29781feffef8dc6 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Dec 4 17:08:50 2013 +0100 block: Make overlap range for serialisation dynamic Copy on Read wants to serialise with all requests touching the same cluster, so wait_serialising_requests() rounded to cluster boundaries. Other users like alignment RMW will have different requirements, though (requests touching the same sector), so make it dynamic. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 2dbafdc012d3ea81a97fec6226ca82d644539c9a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Dec 4 16:43:44 2013 +0100 block: Generalise and optimise COR serialisation Change the API so that specific requests can be marked serialising. Only these requests are checked for overlaps then. This means that during a Copy on Read operation, not all requests overlapping other requests are serialised any more, but only those that actually overlap with the specific COR request. Also remove COR from function and variable names because this functionality can be useful in other contexts. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit ec746e10cb2e6276a8d2e036454792fe0674864a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Dec 4 12:13:10 2013 +0100 block: Make zero-after-EOF work with larger alignment Odd file sizes could make bdrv_aligned_preadv() shorten the request in non-aligned ways. Fix it by rounding to the required alignment instead of 512 bytes. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 65afd211c71fc91750d8a18f9604c1e57a5202fb Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Dec 3 14:55:55 2013 +0100 block: Allow waiting for overlapping requests between begin/end Previously, it was not possible to use wait_for_overlapping_requests() between tracked_request_begin()/end() because it would wait for itself. Ignore the current request in the overlap check and run more of the bdrv_co_do_preadv/pwritev code with a BdrvTrackedRequest present. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 793ed47a7a2b09b67cb2a8863dff531436532b5c Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Dec 3 15:31:25 2013 +0100 block: Switch BdrvTrackedRequest to byte granularity Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 6601553e27091ffe240bea69227adce941fe12e8 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Dec 3 14:40:18 2013 +0100 block: Introduce bdrv_co_do_pwritev() This is going to become the bdrv_co_do_preadv() equivalent for writes. In this patch, however, just a function taking byte offsets is created, it doesn't align anything yet. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 244eadef5c797c674b0aef96366671be4b33d03a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Dec 3 14:30:44 2013 +0100 block: write: Handle COR dependency after I/O throttling First waiting for all COR requests to complete and calling the throttling function afterwards means that the request could be delayed and we still need to wait for the COR request even if it was issued only after the throttled write request. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit b404f72036716ab8ace04b83a8f0a93be4739a6a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Dec 3 14:02:23 2013 +0100 block: Introduce bdrv_aligned_pwritev() This separates the part of bdrv_co_do_writev() that needs to happen before the request is modified to match the backend alignment, and a part that needs to be executed afterwards and passes the request to the BlockDriver. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 1b0288ae7fc695a8e652973f75e92464bbc13416 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Dec 2 16:09:46 2013 +0100 block: Introduce bdrv_co_do_preadv() Similar to bdrv_pread(), which aligns byte-aligned request to 512 byte sectors, bdrv_co_do_preadv() takes a byte-aligned request and aligns it to the alignment specified in bs->request_alignment. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit d0c7f642f5eb2cb21d0c3acf766cb375eaaf4666 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Dec 2 15:07:48 2013 +0100 block: Introduce bdrv_aligned_preadv() This separates the part of bdrv_co_do_readv() that needs to happen before the request is modified to match the backend alignment, and a part that needs to be executed afterwards and passes the request to the BlockDriver. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit c25f53b06eba1575d5d0e92a0132455c97825b83 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Nov 29 12:42:20 2011 +0100 raw: Probe required direct I/O alignment Add a bs->request_alignment field that contains the required offset/length alignment for I/O requests and fill it in the raw block drivers. Use ioctls if possible, else see what alignment it takes for O_DIRECT to succeed. While at it, also expose the memory alignment requirements, which may be (and in practice are) different from the disk alignment requirements. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 1b7fd729559c6d3b273303aa48bc653ceef08747 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Nov 29 11:35:47 2011 +0100 block: rename buffer_alignment to guest_block_size The alignment field is now set to the value that is promised to the guest, rather than required by the host. The next patches will make QEMU aware of the host-provided values, so make this clear. The alignment is also not about memory buffers, but about the sectors on the disk, change the documentation of the field. At this point, the field is set by the device emulation, but completely ignored by the block layer. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 339064d5063924e5176842abbf6c8089f3479c5b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Nov 28 10:23:32 2013 +0100 block: Don't use guest sector size for qemu_blockalign() bs->buffer_alignment is set by the device emulation and contains the logical block size of the guest device. This isn't something that the block layer should know, and even less something to use for determining the right alignment of buffers to be used for the host. The new BlockLimits field opt_mem_alignment tells the qemu block layer the optimal alignment to be used so that no bounce buffer must be used in the driver. This patch may change the buffer alignment from 4k to 512 for all callers that used qemu_blockalign() with the top-level image format BlockDriverState. The value was never propagated to other levels in the tree, so in particular raw-posix never required anything else than 512. While on disks with 4k sectors direct I/O requires a 4k alignment, memory may still be okay when aligned to 512 byte boundaries. This is what must have happened in practice, because otherwise this would already have failed earlier. Therefore I don't expect regressions even with this intermediate state. Later, raw-posix can implement the hook and expose a different memory alignment requirement. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 1ff735bdc417945bc6df1857861b127644b3f461 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Dec 5 13:01:46 2013 +0100 block: Detect unaligned length in bdrv_qiov_is_aligned() For an O_DIRECT request to succeed, it's not only necessary that all base addresses in the qiov are aligned, but also that each length in it is aligned. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit e5354657a626b325c31888f33de88ac6d39e2fcb Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Nov 29 21:29:17 2013 +0100 qemu_memalign: Allow small alignments The functions used by qemu_memalign() require an alignment that is at least sizeof(void*). Adjust it if it is too small. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoît Canet <benoit@xxxxxxxxxxx> commit 355ef4ac95a7a47d5c7201ccd910056a100d2fdf Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Dec 11 20:14:09 2013 +0100 block: Update BlockLimits when they might have changed When reopening with different flags, or when backing files disappear from the chain, the limits may change. Make sure they get updated in these cases. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoît Canet <benoit@xxxxxxxxxxx> commit 466ad822deef3a03757d505218a52993c5d56b5d Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Dec 11 19:50:32 2013 +0100 block: Inherit opt_transfer_length When there is a format driver between the backend, it's not guaranteed that exposing the opt_transfer_length for the format driver results in the optimal requests (because of fragmentation etc.), but it can't make things worse, so let's just do it. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoît Canet <benoit@xxxxxxxxxxx> commit d34682cd4a06efe9ee3fc8cb7e8a0ea445299989 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Dec 11 19:26:16 2013 +0100 block: Move initialisation of BlockLimits to bdrv_refresh_limits() This function separates filling the BlockLimits from bdrv_open(), which allows it to call it from other operations which may change the limits (e.g. modifications to the backing file chain or bdrv_reopen) Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit dabfa6cc2e2a06269026fcb42772894f67bd0c3e Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Jan 24 14:00:43 2014 +0100 block: Fix bdrv_commit return value bdrv_commit() could return 0 or 1 on success, depending on whether or not the last sector was allocated in the overlay and whether the overlay format had a .bdrv_make_empty callback. Most callers ignored it, but qemu-img commit would print an error message while the operation actually succeeded. Also clean up the handling of I/O errors to return the real error code instead of -EIO. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 37222900743962e146a82b7077a18c3f39859a19 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Fri Jan 24 09:02:37 2014 -0500 block: update block commit documentation regarding image truncation This updates the documentation for commiting snapshot images. Specifically, this highlights what happens when the base image is either smaller or larger than the snapshot image being committed. In the case of the base image being smaller, it is resized to the larger size of the snapshot image. In the case of the base image being larger, it is not resized automatically, but once the commit has completed it is safe for the user to truncate the base image. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4da83585961631bfc10831dd26c4afda2a8b23e8 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Fri Jan 24 09:02:36 2014 -0500 block: resize backing image during active layer commit, if needed If the top image to commit is the active layer, and also larger than the base image, then an I/O error will likely be returned during block-commit. For instance, if we have a base image with a virtual size 10G, and a active layer image of size 20G, then committing the snapshot via 'block-commit' will likely fail. This will automatically attempt to resize the base image, if the active layer image to be committed is larger. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 72706ea4cd38bfcb151265df0178ba21863d7518 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Fri Jan 24 09:02:35 2014 -0500 block: resize backing file image during offline commit, if necessary Currently, if an image file is logically larger than its backing file, committing it via 'qemu-img commit' will fail. For instance, if we have a base image with a virtual size 10G, and a snapshot image of size 20G, then committing the snapshot offline with 'qemu-img commit' will likely fail. This will automatically attempt to resize the base image, if the snapshot image to be committed is larger. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 031fd1be5618c347f9aeb44ec294f14a541e42b2 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 24 14:56:17 2014 +0100 block/curl: Implement the libcurl timer callback interface libcurl versions 7.16.0 and later have a timer callback interface which must be implemented in order for libcurl to make forward progress (it will sometimes rely on being called back on the timeout if there are no file descriptors registered). Implement the callback, and use a QEMU AIO timer to ensure we prod libcurl again when it asks us to. Based on Peter's original patch plus my fix to add curl_multi_timeout_do. Should compile just fine even on older versions of libcurl. I also tried copy-on-read and streaming: $ ./qemu-img create -f qcow2 -o \ backing_file=http://download.fedoraproject.org/pub/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso \ foo.qcow2 1G $ x86_64-softmmu/qemu-system-x86_64 \ -drive if=none,file=foo.qcow2,copy-on-read=on,id=cd \ -device ide-cd,drive=cd --enable-kvm -m 1024 Direct http usage is probably too slow, but with copy-on-read ultimately the image does boot! After some time, streaming gets canceled by an EIO, which needs further investigation. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 0901f67ecdb74d9ba1451e3b4367194cd43f96b4 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Thu Jan 23 21:31:38 2014 +0100 qmp: Allow to take external snapshots on bs graphs node. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3b1dbd11a60d75e99af5fc9b73c34f4af9d4f510 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Thu Jan 23 21:31:37 2014 +0100 qmp: Allow block_resize to manipulate bs graph nodes. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 212a5a8f095de9a1624de6b4a589d60688b02747 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Thu Jan 23 21:31:36 2014 +0100 block: Create authorizations mechanism for external snapshot and resize. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 12d3ba821da9f8a039240a8a1bc01e27a12f9c22 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Thu Jan 23 21:31:35 2014 +0100 qmp: Allow to change password on named block driver states. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> There was two candidate ways to implement named node manipulation: 1) { 'command': 'block_passwd', 'data': {'*device': 'str', '*node-name': 'str', 'password': 'str'} } 2) { 'command': 'block_passwd', 'data': {'device': 'str', '*device-is-node': 'bool', 'password': 'str'} } Luiz proposed 1 and says 2 was an abuse of the QMP interface and proposed to rewrite the QMP block interface for 2.0. Luiz does not like in 1 the fact that 2 fields are optional but one of them must be specified leading to an abuse of the QMP semantic. Kevin argumented that 2 what a clear abuse of the device field and would not be practical when reading fast some log file because the user would read "device" and think that a device is manipulated when it's in fact a node name. Documentation of 1 make it pretty clear what to do for the user. Kevin argued that all bs are node including devices ones so 2 does not make sense. Kevin also argued that rewriting the QMP block interface would not make disapear the current one. Kevin pushed the argument that making the QAPI generator compatible with the semantic of the operation would need a rewrite that no one has done yet. A vote has been done on the list to elect the version to use and 1 won. For reference the complete thread is: "[Qemu-devel] [PATCH V4 4/7] qmp: Allow to change password on names block driver states." Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c13163fba151f0be5176eaf55907bc1dbff3a1d4 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Thu Jan 23 21:31:34 2014 +0100 qmp: Add QMP query-named-block-nodes to list the named BlockDriverState nodes. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 6913c0c2ce00c0e886b2bd20b05073090fa5308a Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Thu Jan 23 21:31:33 2014 +0100 block: Allow the user to define "node-name" option both on command line and QMP. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit dc364f4cdca0c49e37376b16c3ee0bf3b4a96f4c Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Thu Jan 23 21:31:32 2014 +0100 block: Add bs->node_name to hold the name of a bs node of the bs graph. Add the minimum of code to prepare for the following patches. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c8059b97e1f9b4635b836ee98373a0f72f9fc0b4 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Jan 23 10:03:26 2014 +0800 qapi: Add "backing" to BlockStats Currently there is no way to query BlockStats of the backing chain. This adds "backing" field into BlockStats to make it possible. The comment of "parent" is reworded. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d8a7b061ae01e5692cc994f05ad6480d8c170125 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Jan 23 15:10:52 2014 +0800 vmdk: Fix format specific information (create type) for streamOptimized Previously the field is wrong: $ ./qemu-img create -f vmdk -o subformat=streamOptimized /tmp/a.vmdk 1G $ ./qemu-img info /tmp/a.vmdk image: /tmp/a.vmdk file format: vmdk virtual size: 1.0G (1073741824 bytes) disk size: 12K Format specific information: cid: 1390460459 parent cid: 4294967295 >>> create type: monolithicSparse <snip> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 6df3bf8eb3ed428015c85cfbd554ac9b32164f40 Author: Zhang Min <rudy.zhangmin@xxxxxxxxxx> Date: Thu Jan 23 15:59:16 2014 +0800 drive mirror:fix memory leak In the function mirror_iteration() -> qemu_iovec_init(), it allocates memory for op->qiov.iov, when the write request calls back, but in the function mirror_iteration_done(), it only frees the op, not free the op->qiov.iov, so this causes memory leak. It should use qemu_iovec_destroy() to free op->qiov. Signed-off-by: Zhang Min <rudy.zhangmin@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9cd767376f137918dbe90abb452dfe119ae7d8f3 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Wed Jan 22 01:14:11 2014 +0800 sheepdog: fix 'qemu-img map' It was muted in the previous commit 4bc74be9. Let's revive it since nothing prevents us to do it. With this patch, following command will work as other formats: $ qemu-img map sheepdog:image Cc: qemu-devel@xxxxxxxxxx Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 0e3bd9932f862c1c1e4926939b4d0c602ce214ef Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Jan 20 15:12:16 2014 +0100 Documentation: qemu-img: Mention SIGUSR1 progress report Document the SIGUSR1 behaviour of qemu-img. Also, added compare to the list of subcommands that support -p. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 3c4b4e383e82ab3db307ee01f12ab0d4a28584dc Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Jan 20 15:06:03 2014 +0100 qemu-progress: Fix progress printing on SIGUSR1 Since commit a7aae221 ('Switch SIG_IPI to SIGUSR1'), SIGUSR1 is blocked during startup, breaking the progress report in tools. This patch reenables the signal when initialising a progress report. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit e69968d472bd020a08c677c814237548090d2e59 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Jan 20 15:05:25 2014 +0100 qemu-progress: Drop unused include Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 34ceed81f9ca31829448276dafe3d9151d66962c Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Jan 21 15:07:43 2014 +0800 vmdk: Check for overhead when opening Report an error if file size is even smaller than metadata. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 46bae927134468d27f5e2508c3ced67ff58fa45b Author: Hu Tao <hutao@xxxxxxxxxxxxxx> Date: Tue Jan 21 11:30:02 2014 +0800 qcow2: fix wrong value of L1E_OFFSET_MASK, L2E_OFFSET_MASK and REFT_OFFSET_MASK Accoring to qcow spec, the offset fields in l1e, l2e and ref table entry start at bit 9. The offset is cluster offset, and the smallest possible cluster size is 512 bytes. Signed-off-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 385c04d0b66917457b6a12fc2cfd99a6a40b2d89 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Jan 13 18:47:39 2014 +0800 dataplane: fix shadowed return value Propagate the error return value from get_indirect(). This bug was introduced in commit 4d684832 ("vring: create a common function to parse descriptors"). Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d80ac658f2caacfb14ea386211c4a9bea0cea280 Author: Peter Feiner <peter@xxxxxxxxxxxxxx> Date: Wed Jan 8 19:43:25 2014 +0000 block: fix backing file segfault When a backing file is opened such that (1) a protocol is directly used as the block driver and (2) the block driver has bdrv_file_open, bdrv_open_backing_file segfaults. The problem arises because bdrv_open_common returns without setting bd->backing_hd->file. To effect (1), you seem to have to use the -F flag in qemu-img. There are several block drivers that satisfy (2), such as "file" and "nbd". Here are some concrete examples: #!/bin/bash echo Test file format ./qemu-img create -f file base.file 1m ./qemu-img create -f qcow2 -F file -o backing_file=base.file\ file-overlay.qcow2 ./qemu-img convert -O raw file-overlay.qcow2 file-convert.raw echo Test nbd format SOCK=$PWD/nbd.sock ./qemu-img create -f raw base.raw 1m ./qemu-nbd -t -k $SOCK base.raw & trap "kill $!" EXIT while ! test -e $SOCK; do sleep 1; done ./qemu-img create -f qcow2 -F nbd -o backing_file=nbd:unix:$SOCK\ nbd-overlay.qcow2 ./qemu-img convert -O raw nbd-overlay.qcow2 nbd-convert.raw Without this patch, the two qemu-img convert commands segfault. This is a regression that was introduced in v1.7 by dbecebddfa4932d1c83915bcb9b5ba5984eb91be. Signed-off-by: Peter Feiner <peter@xxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 91f84f652de14329d5ad0666499a78fd0db0f1c7 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:24 2013 +0100 iotests: Test file format nesting Add a test for nested image formats. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 30bd6a4dafe2f79909451ef5769561c9a9d3eaca Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:23 2013 +0100 iotests: Test new blkdebug/blkverify interface Add a test for the new blkdebug/blkverify interface. This test is not written in Python, although it uses QMP. This is because it invokes the qemu-io HMP command, which outputs errors to stderr instead of returning them through QMP. Filtering and testing that output is easier in a shell script than with the Python infrastructure. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3fb11779ca5f1d601adeb5870ba79e61e81a4cce Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:22 2013 +0100 tests: Add test for qdict_flatten() Add a test case for qdict_flatten() in tests/check-qdict.c. This test case covers the flattening of subordinate QLists as well. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit be331341a1f35c2de2fcc05cc78e0342d2edeb8a Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:21 2013 +0100 tests: Add test for qdict_array_split() Add a test case for qdict_array_split() in tests/check-qdict.c. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit fd0fee34b5ae7699dc558c12ddc3663bdb580060 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:20 2013 +0100 qemu-io: Make filename optional Giving a filename is actually not essential, since it can be specified through the options as well - on the contrary: Sometimes a filename must not be given. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1bf20b8280186299c750018bbfa3b52f4afd71ea Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:19 2013 +0100 qapi: QMP interface for blkdebug and blkverify Add structures to support blkdebug and blkverify in blockdev-add. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8592a545b61b99114a86ee7cecef7a5f284d1b6c Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:18 2013 +0100 qapi: Add "errno" to the list of polluted words Using "errno" directly as an identifier results in various syntax errors; therefore it should be added to the list of polluted words. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 22511ad681348cc4e500ebafdc324b0909d41c95 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:17 2013 +0100 blkverify: Don't require protocol filename If the filename is not prefixed by "blkverify:" in blkverify_parse_filename(), the blkverify driver was not selected through that protocol prefix, but by an explicit command line (or QMP) option (like driver=blkverify). If blkverify_parse_filename() has been called, a filename has been given. If it is not prefixed, it is probably really just a plain filename. This is no problem, since we can use it as the test image filename and rely on the user to specify the raw image filename through the new corresponding option. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 70b6198acc9643c3ce801e5cf4c24274722f2f4a Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:16 2013 +0100 blkverify: Allow command-line configuration Introduce the "test" and "raw" options for specifying images. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4373593d5111a8ed3b6d47ad4a458ee28ec942e3 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:15 2013 +0100 blkdebug: Allow command-line file configuration Introduce the "image" option as an alternative to specifying the image through the filename. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d095b465339b79929fd2adc25c0ab3598e80fd39 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:14 2013 +0100 blockdev: Move "file" to legacy_opts Specifying the image filename through the "file" option is a legacy option and should not be supported by blockdev-add (in that case, giving a string for "file" references an existing block device). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 505d758334afcee07eb40aa1b33f2353c612c8ec Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:13 2013 +0100 block: Allow recursive "file"s It should be possible to use a format as a driver for a file which in turn requires another file, i.e., nesting file formats. Allowing nested file formats results in e.g. qcow2 BlockDriverStates never being directly passed to bdrv_open_common() from bdrv_file_open(), but instead being handed through bdrv_open(). This changes the error message when trying to give a filename to qcow2, i.e. trying to use it as a driver for the protocol level. Therefore, change the reference output of I/O test 051 accordingly. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 054963f8f082695ecb1f169024c83ce3e4eea3d8 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:12 2013 +0100 block: Use bdrv_open_image() in bdrv_open() Using bdrv_open_image() instead of bdrv_file_open() directly in bdrv_open() is easier. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit da557aac181fa71fde6a2a7c7a1eb2aea20caf64 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:11 2013 +0100 block: Add bdrv_open_image() Add a common function for opening images to be used for block drivers specified through BlockdevRefs in an option QDict. The difference from bdrv_file_open() is that this function may invoke bdrv_open() instead, allowing auto-detection of the driver to be used; and second, it automatically extracts the BlockdevRef from the option QDict. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2a05cbe426a7a3ddec63dbc67c9ac93013aebf77 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:10 2013 +0100 block: Allow block devices without files blkdebug and blkverify will, in order to retain compatibility, not support the field "file" implicitly through bdrv_open(). In order to be able to use those drivers without giving a filename anyway, it is necessary to be able to have block devices without files implicitly opened by bdrv_open(). This is the case, if there was neither a file name, a reference to an existing block device to use as a file nor options specific to the file. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2258e3fe20990a13c9aa2c1adccafae073b7ce13 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:09 2013 +0100 block: Pass reference to bdrv_file_open() With that now being possible, bdrv_open() should try to extract a block device reference from the options and pass it to bdrv_file_open(). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 72daa72eeecb6b2ee06ab7d836ac3aa01ad7e6df Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:08 2013 +0100 block: Allow reference for bdrv_file_open() Allow specifying a reference to an existing block device (by name) for bdrv_file_open() instead of a filename and/or options. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 89f2b21e36cce948c39fa7cf24226f6e5f042cc8 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:07 2013 +0100 blkdebug: Use command-line in read_config() Use qemu_config_parse_qdict() to parse the command-line options in addition to the config file. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 85a040e5485413333da4fcf98bc8b28c92fa623f Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:06 2013 +0100 blkdebug: Always call read_config() Move the check whether there actually is a config file into the read_config() function. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit adf5c449e5beb163999e4ba7366d5f9aebb504a1 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:05 2013 +0100 qemu-option: Add qemu_config_parse_qdict() This function basically parses command-line options given as a QDict replacing a config file. For instance, the QDict {"section.opt1": 42, "section.opt2": 23} corresponds to the config file: [section] opt1 = 42 opt2 = 23 It is possible to specify multiple sections and also multiple sections of the same type. On the command line, this looks like the following: inject-error.0.event=reftable_load,\ inject-error.1.event=l2_load,\ set-state.event=l1_update This would correspond to the following config file: [inject-error "inject-error.0"] event = reftable_load [inject-error "inject-error.1"] event = l2_load [set-state] event = l1_update Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9f23fc0c23ab16e9c16b41ed300786924f7a7768 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:04 2013 +0100 qapi: extend qdict_flatten() for QLists Reversing qdict_array_split(), qdict_flatten() should flatten QLists as well by interpreting them as QDicts where every entry's key is its index. This allows bringing QDicts with QLists from QMP commands to the same form as they would be given as command-line options, thereby allowing them to be parsed the same way. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 05a8c2227157eda2540404999c4615d3bf343c18 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:03 2013 +0100 qdict: Add qdict_array_split() This function splits a QDict consisting of entries prefixed by incrementally enumerated indices into a QList of QDicts. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d4881b9bcbbadc83ffa5d8e6d2d6deb36cd8faa6 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:02 2013 +0100 blkdebug: Don't require sophisticated filename If the filename is not prefixed by "blkdebug:" in blkdebug_parse_filename(), the blkdebug driver was not selected through that protocol prefix, but by an explicit command line option (file.driver=blkdebug or something similar). Contrary to the current reaction, this is not a problem at all; we just need to store the filename (in the x-image option) and can go on; the user just has to manually specify the config option. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 466b49f276310952ad64485d8b9fa87a5c8a9451 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:01 2013 +0100 blkdebug: Use errp for read_config() Use an Error variable in the read_config() function. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4694020d3c0d21f02408d5cc6f44b8fb55b4ee15 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Nov 14 11:54:18 2013 +0100 qemu-io: add command completion Autocomplete qemu-io commands at the interactive prompt. Note this only completes command names and not their options. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 0cf17e181798063c3824c8200ba46f25f54faa1a Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Nov 14 11:54:17 2013 +0100 qemu-io: use readline.c Use readline.c for command-line history. There was support for GNU Readline and BSD Editline but it was never compiled in. Since QEMU has its own readline.c, just use that when qemu-io runs with stdin attached to a terminal. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 13401ba0b982024b62a99388032bbb889dc98b43 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Nov 14 11:54:16 2013 +0100 osdep: add qemu_set_tty_echo() Using stdin with readline.c requires disabling echo and line buffering. Add a portable wrapper to set the terminal attributes under Linux and Windows. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 0150cd81cf608b93778a067189829f354fe27e4b Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Nov 14 11:54:15 2013 +0100 readline: move readline to a generic location Now that the monitor and readline are decoupled, readline.h no longer belongs in include/monitor/. Put the header into include/qemu/. Move the source file into util/ so it can be linked as part of libqemuutil.a. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c60bf3391bf4cb79b7adc6650094e21671ddaabd Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Nov 14 11:54:14 2013 +0100 readline: decouple readline from the monitor Make the readline.c functionality reusable. Instead of calling monitor_printf() and monitor_flush() directly, invoke function pointers provided by the user. This way readline.c does not know about Monitor and other users will be able to make use of readline.c. Note that there is already an "opaque" argument to the ReadLineFunc callback. Consistently call it "readline_opaque" from now on to distinguish from the ReadLinePrintfFunc/ReadLineFlushFunc "opaque" argument. I also dropped the printf macro trickery since it's now highly unlikely that anyone modifying readline.c would call printf(3) directly. We no longer need this protection. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 585ea0c841df47c1542d33e17c5c6d532316ef74 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Jan 8 09:42:07 2014 +0800 vmdk: Fix big flat extent IO Local variable "n" as int64_t avoids overflow with large sector number calculation. See test case change for failure case. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7fa9e1f941b4be1f71bb42de2f2ed8805d7e7326 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Jan 6 12:39:01 2014 +0800 docs: qcow2 compat=1.1 is now the default Commit 9117b47717ad208b12786ce88eacb013f9b3dd1c ("qcow2: Change default for new images to compat=1.1") changed the default qcow2 image format version but forgot to update qemu-doc.texi and qemu-img.texi. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b7fcff01790d25f48d81ef6c8c3399577096a555 Author: Kewei Yu <keweihk@xxxxxxxxx> Date: Mon Jan 6 14:05:24 2014 +0800 qtest: Fix the bug about disable vnc causes "make check" fail When we disable vnc from "./configure", QEMU can't use the vnc option. So qtest can't use the "vnc -none ", otherwise "make check" fails. If QEMU uses "-display none", "-vnc none" is excrescent, So we just need to drop it. Signed-off-by: Kewei Yu <keweihk@xxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9f23fce7b2e78b917f03ccd366e3e151c0a1a419 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Fri Jan 3 20:13:12 2014 +0800 sheepdog: fix clone operation by 'qemu-img create -b' We should pass base_inode->vdi_id to base_vdi_id of SheepdogVdiReq so that sheep can create a clone instead a fresh volume. This fixes following command: qemu-create -b sheepdog:base sheepdog:clone so users can boot sheepdog:clone as a normal volume. Cc: qemu-devel@xxxxxxxxxx Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit cf7f616b9d846b1cc21c7b692b5c9ff6f757a5e7 Author: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Date: Sat Dec 21 14:51:26 2013 +0530 gluster: Add support for creating zero-filled image GlusterFS supports creation of zero-filled file on GlusterFS volume by means of an API called glfs_zerofill(). Use this API from QEMU to create an image that is filled with zeroes by using the preallocation option of qemu-img. qemu-img create gluster://server/volume/image -o preallocation=full 10G The allowed values for preallocation are 'full' and 'off'. By default preallocation is off and image is not zero-filled. glfs_zerofill() offloads the writing of zeroes to the server and if the storage supports SCSI WRITESAME, GlusterFS server can issue BLKZEROOUT ioctl to achieve the zeroing. Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7c815372f3b37754b2a568e82f0521c7f77a6f66 Author: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Date: Sat Dec 21 14:51:25 2013 +0530 gluster: Implement .bdrv_co_write_zeroes for gluster Support .bdrv_co_write_zeroes() from gluster driver by using GlusterFS API glfs_zerofill() that off-loads the writing of zeroes to GlusterFS server. Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 15744b0b8f63d624bdd5825011cd201541a62094 Author: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Date: Sat Dec 21 14:51:24 2013 +0530 gluster: Convert aio routines into coroutines Convert the read, write, flush and discard implementations from aio-based ones to coroutine based ones. Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 92397116a6789ed4455c6dacea0f378cae096d8d Author: Peter Lieven <pl@xxxxxxx> Date: Fri Dec 20 10:02:47 2013 +0100 block/iscsi: return -ENOMEM if an async call fails immediately if an async libiscsi call fails directly it can only be due to an out of memory condition. All other errors are returned through the callback. Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Ronnie Sahlberg <ronniesahlberg@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 487c1910023c83fa6d550a50c8ad7ee730e60bfa Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Nov 26 14:40:34 2013 +0800 qemu-iotests: Clean up all extents for vmdk This modifies _cleanup_test_img to remove all the extent files listed by "qemu-img info"'s format specific information. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d2329f27c9c8408d4134c7243313dbaa37270384 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Nov 26 14:40:33 2013 +0800 qemu-iotests: Add _unsupported_imgopts for vmdk subformats Some cases are not applicable for vmdk subformats those don't support certain features, e.g. backing file, and some others can't run on mult-file image, e.g. monolithicFlat. This adds declaration in test cases to skip them automatically, so that iotests on vmdk can go more smoothly (without manually picking of cases for each subformat). Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2c77f52e39ff2ba071e3b549ad7a3ebea0758edd Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Nov 26 14:40:32 2013 +0800 qemu-iotests: Introduce _unsupported_imgopts Introduce _unsupported_imgopts that causes _notrun for specific image options. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e04fb07fd1676e9facd7f3f878c1bbe03bccd26b Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Dec 5 16:38:33 2013 +0100 rbd: switch from pipe to QEMUBH completion notification rbd callbacks are called from non-QEMU threads. Up until now a pipe was used to signal completion back to the QEMU iothread. The pipe writer code handles EAGAIN using select(2). The select(2) API is not scalable since fd_set size is static. FD_SET() can write beyond the end of fd_set if the file descriptor number is too high. (QEMU's main loop uses poll(2) to avoid this issue with select(2).) Since the pipe itself is quite clumsy to use and QEMUBH is now thread-safe, just schedule a BH from the rbd callback function. This way we can simplify I/O completion in addition to eliminating the potential FD_SET() crash when file descriptor numbers become too high. Crash scenario: QEMU already has 1024 file descriptors open. Hotplug an rbd drive and get the pipe writer to take the select(2) code path. Reviewed-by: Josh Durgin <josh.durgin@xxxxxxxxxxx> Tested-by: Josh Durgin <josh.durgin@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 492044581c26ba9ace3af5c6abb2a911a23ad188 Author: Jason J. Herne <jjherne@xxxxxxxxxx> Date: Mon Jan 20 14:51:50 2014 -0500 s390-sclp: SCLP Event integration Add an sclp event for "cpu was hot plugged". This allows Qemu to deliver an SCLP interrupt to the guest stating that the requested cpu hotplug was completed. Signed-off-by: Jason J. Herne <jjherne@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 8cc3aecf8461bd38028ddb4a56a17d0a1583de36 Author: Jason J. Herne <jjherne@xxxxxxxxxx> Date: Mon Jan 20 14:51:49 2014 -0500 s390-sclp: SCLP CPU Info Implement the CPU data in SCLP "Read SCP Info". And implement "Read CPU Info" SCLP command. This data will be used by the guest to get information about hot plugged cpus. Signed-off-by: Jason J. Herne <jjherne@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 5f04c14a10fa7f259bc0808f35a0beda49f7821e Author: Jason J. Herne <jjherne@xxxxxxxxxx> Date: Mon Jan 20 14:51:48 2014 -0500 s390-sclp: Define New SCLP Codes Define new SCLP codes to improve code readability. Signed-off-by: Jason J. Herne <jjherne@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 2777ccc55bfe90bfa813b01faf36fa6ea16fbea8 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 16:25:17 2013 +0100 gtk: Support keyboard translation for hosts running Windows GTK uses different hardware keycodes on Windows hosts, so some special handling is needed to get the QEMU keycode. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 439d19f2922ac409ee224bc1e5522cee7009d829 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Jan 20 14:22:25 2014 +0100 kvm: always update the MPX model specific register The original patch from Liu Jinsong restricted them to reset or full state updates, but that's unnecessary (and wrong) since the BNDCFGS MSR has no side effects. Cc: Liu Jinsong <jinsong.liu@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 918b94e2873cd5fe8aef06d269b4a4c7d0832ce7 Author: Paul Moore <pmoore@xxxxxxxxxx> Date: Wed Jan 15 14:38:58 2014 -0500 seccomp: add some basic shared memory syscalls to the whitelist PulseAudio requires the use of shared memory so add shmget(), shmat(), and shmdt() to the syscall whitelist. Reported-by: xuhan@xxxxxxxxxx Signed-off-by: Paul Moore <pmoore@xxxxxxxxxx> commit 0c2acb163fbb4579dad2d45595570b0a9ff71149 Author: Paul Moore <pmoore@xxxxxxxxxx> Date: Wed Jan 15 14:38:51 2014 -0500 seccomp: add mkdir() and fchmod() to the whitelist The PulseAudio library attempts to do a mkdir(2) and fchmod(2) on "/run/user/<UID>/pulse" which is currently blocked by the syscall filter; this patch adds the two missing syscalls to the whitelist. You can reproduce this problem with the following command: # qemu -monitor stdio -device intel-hda -device hda-duplex If watched under strace the following syscalls are shown: mkdir("/run/user/0/pulse", 0700) fchmod(11, 0700) [NOTE: 11 is the fd for /run/user/0/pulse] Reported-by: xuhan@xxxxxxxxxx Signed-off-by: Paul Moore <pmoore@xxxxxxxxxx> commit 39e6a38cdd4b235b2918b4977f31fde2c0da3bc4 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 16 13:23:53 2013 +0100 hda-codec: disable streams on reset Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 8d7b5a1da0e06aa7addd7f084d9ec9d433c4bafb Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Jan 17 11:12:56 2014 -0700 vfio: fix mapping of MSIX bar VFIO virtualizes MSIX table for the guest but not mapping the part of a BAR which contains an MSIX table. Since vfio_mmap_bar() mmaps chunks before and after the MSIX table, they have to be aligned to the host page size which may be TARGET_PAGE_MASK (4K) or 64K in case of PPC64. This fixes boundaries calculations to use the real host page size. Without the patch, the chunk before MSIX table may overlap with the MSIX table and mmap will fail in the host kernel. The result will be serious slowdown as the whole BAR will be emulated by QEMU. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 47c16ed56aa6bc4037bdb7b61f049097993cd244 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Jan 17 11:12:07 2014 -0700 kvm: initialize qemu_host_page_size There is a HOST_PAGE_ALIGN macro which makes sense for KVM accelerator but it uses qemu_host_page_size/qemu_host_page_mask which initialized for TCG only. This moves qemu_host_page_size/qemu_host_page_mask initialization from TCG's page_init() and adds a call for it from kvm_init(). Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 794798e36eda77802ce7cc7d7d6b1c65751e8a76 Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> Date: Fri Jan 10 15:56:33 2014 +0000 xen_pt: Fix passthrough of device with ROM. QEMU does not need and should not allocate memory for the ROM of a passthrough PCI device. So this patch initialize the particular region like any other PCI BAR of a passthrough device. When a guest will access the ROM, Xen will take care of the IO, QEMU will not be involved in it. Xen set a limit of memory available for each guest, allocating memory for a ROM can hit this limit. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Reported-and-Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> commit fc33b9004c49f21f8188df5c4cd079a9a3d08de8 Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> Date: Fri Jan 10 15:52:54 2014 +0000 xen_pt: Fix debug output. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> commit 0193c62c94643a837832f2b5ccc133434ee740cb Author: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Date: Fri Jan 17 15:28:18 2014 +0000 xenfb: map framebuffer read-only and handle unmap errors The framebuffer is needlessly mapped (PROT_READ | PROT_WRITE), map it PROT_READ instead. The framebuffer is unmapped by replacing the framebuffer pages with anonymous shared memory, calling mmap. Check for return errors and print a warning. Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 732c66ce641c69702a7e7fdb73b68f0c1b583ab5 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 15 03:06:11 2014 -0800 Revert "error: Don't use error_report() for assertion msgs." This reverts commit d32934c84c72f57e78d430c22974677b7bcabe5d. The original implementation before this patch makes abortive error messages much more friendly. The underlying bug that required this change is now fixed. Revert. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 3dbe85b8404fa479ad0a75d5adb464949257f129 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 15 03:05:36 2014 -0800 tests: Add libqemustub to qom-interface-check The recent addition of util/error.c's dependency on error_report() causes this test to fail to link due to a number of missing monitor related symbols. All these symbols are however defined by libqemustub. Add this libary to the link. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 87ca1f77b1c406137fe36ab73b2dc91fb75f8d0a Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Thu Jan 16 09:22:07 2014 -0700 vfio-pci: Fail initfn on DMA mapping errors The vfio-pci initfn will currently succeed even if DMA mappings fail. A typical reason for failure is if the user does not have sufficient privilege to lock all the memory for the guest. In this case, the device gets attached, but can only access a portion of guest memory and is extremely unlikely to work. DMA mappings are done via a MemoryListener, which provides no direct error return path. We therefore stuff the errno into our container structure and check for error after registration completes. We can also test for mapping errors during runtime, but our only option for resolution at that point is to kill the guest with a hw_error. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit d3a2fd9b29e43e202315d5e99399b99622469c4a Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Thu Jan 16 09:22:07 2014 -0700 vfio: Filter out bogus mappings Since 57271d63 we now see spurious mappings with the upper bits set if 64bit PCI BARs are sized while enabled. The guest writes a mask of 0xffffffff to the lower BAR to size it, then restores it, then writes the same mask to the upper BAR resulting in a spurious BAR mapping into the last 4G of the 64bit address space. Most architectures do not support or make use of the full 64bits address space for PCI BARs, so we filter out mappings with the high bit set. Long term, we probably need to think about vfio telling us the address width limitations of the IOMMU. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 1cb27d9233d572826b45bd8498d2fab1b6f01df9 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Jan 16 13:06:13 2014 +0100 scsi: Support TEST UNIT READY in the dummy LUN0 SeaBIOS waits for LUN0 to respond to the TEST UNIT READY command in order to decide whether it should part of the boot sequence. If LUN0 does not respond to the command, boot is delayed by up to 5 seconds. This currently happens when there is no LUN0 on a target. Fix that by adding a trivial implementation of the command. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 88678fbd9dbf01fd0988bcb651508378d85e868a Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 20 07:33:50 2013 +0100 usb-hid: add microsoft os descriptor support Set SelectiveSuspendEnabled registy entry to one. This makes Windows use remote suspend by default, without manual registry fiddeling. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5319dc7b42610575cbd3a33f4340c1fb4f19b939 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 20 07:32:31 2013 +0100 usb: add support for microsoft os descriptors This patch adds support for special usb descriptors used by microsoft windows. They allow more fine-grained control over driver binding and adding entries to the registry for configuration. As this is a guest-visible change the "msos-desc" compat property has been added to turn this off for 1.7 + older Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 2c02d1ad48ad44cf00522df7d8de9138689fac85 Author: Kewei Yu <keweihk@xxxxxxxxx> Date: Tue Dec 31 18:36:08 2013 +0800 vl: Add a blank space between the variable and '=' Signed-off-by: Kewei Yu <keweihk@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 3babcc8704f593473ccd0f66d6e39c949c672477 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 28 08:31:11 2013 +0100 pc-bios: Remove execute flag from BIOS files BIOS files are not directly executable, so they don't need this flag. All other BIOS files don't use the execute flag. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit a39ca6a124267dcfc6bc5276fff9c4b02e5c2215 Author: Pavel Zbitskiy <pavel.zbitskiy@xxxxxxxxx> Date: Sat Jan 11 13:34:11 2014 +0400 linux-user: fixed recvfrom() addrlen addrlen parameter of recvfrom() of type socklen_t* was read into variable of type socklen_t, that caused zeroing out of upper 4 bytes when running s390x on top of x86_64. This patch changes addrlen type to abi_ulong. Signed-off-by: Pavel Zbitskiy <pavel.zbitskiy@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit fe54b24930f94bdfbc3d38eccd7adedf35f2f26f Author: Pavel Zbitskiy <pavel.zbitskiy@xxxxxxxxx> Date: Sat Jan 11 13:34:10 2014 +0400 linux-user: fixed getsockopt() optlen optlen parameter of getsockopt() of type socklen_t* was read into variable of type socklen_t, that caused zeroing out of upper 4 bytes when running s390x on top of x86_64. This patch changes optlen type to abi_ulong. Signed-off-by: Pavel Zbitskiy <pavel.zbitskiy@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 19a894ba777fa45c6f89ae007570311384204a69 Author: Pavel Zbitskiy <pavel.zbitskiy@xxxxxxxxx> Date: Sat Jan 11 13:34:09 2014 +0400 linux-user: fixed s390x clone() argument order It was broken by 4ce6243dc6216e35b5b691078ffa856463bfa8db, where TARGET_CLONE_BACKWARDS was specified instead of TARGET_CLONE_BACKWARDS2. Signed-off-by: Pavel Zbitskiy <pavel.zbitskiy@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 850484a295a856474978d9338b8c17eb8e00f549 Author: David du Colombier <0intro@xxxxxxxxx> Date: Wed Dec 25 15:17:43 2013 +0100 ide: cmd_exec_dev_diagnostic() always set error register to 0x01 This notably fix IDE CD probing on the Plan 9 operating system, which rely on the error register set by the Execute Device Diagnostic command to detect drive configurations. Thanks to Rémi Pommarel for reporting this issue. Signed-off-by: David du Colombier <0intro@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit e6baf6130ef26f32a45e0282bd4720913a1ff472 Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Thu Jan 9 09:58:16 2014 -0500 virtio-balloon: don't hardcode config size value Use sizeof(struct virtio_balloon_config) instead. Signed-off-by: Luiz capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit fb3ecb7ea40c44d15091143c4336993e7165fc4f Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Jan 14 07:00:28 2014 +0100 exec: Exclude non portable function for MinGW cpu_physical_memory_set_dirty_lebitmap calls getpageaddr and ffsl which are unavailable for MinGW. As the function is unused for MinGW, it can simply be excluded from compilation. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit bf2eaf718e2fcc5cc975326495bf03de7305bbe4 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Mon Dec 9 21:33:34 2013 -0200 Add bios-256k.bin to BLOBS on Makefile The default machine-type (pc-i440fx-2.0) now requires bios-256k.bin, but "make install" isn't installing it, so qemu-system-x86_64 won't run out of the box. Add it to BLOBS so it gets installed. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: William Dauchy <william@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit dc9fc1cac59e46102f2e046ac3233d8ad4535497 Author: Namhyung Kim <namhyung@xxxxxxxxx> Date: Tue Jan 7 09:04:25 2014 +0900 Fix typo of tiemr in timer.h Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 7af6f46c6199549f0e02a2176d0f3ec2ec405e99 Author: Namhyung Kim <namhyung@xxxxxxxxx> Date: Tue Jan 7 21:53:51 2014 +0900 docs: Fix typo in QMP WAKEUP example Cc: qemu-trivial@xxxxxxxxxx Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit e638073c569e801ce9def2016a84f955cbbca779 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Wed Jan 15 10:11:52 2014 -0700 vfio: Do not reattempt a failed rom read During lazy rom loading, if rom read fails, and the guest attempts a read again, vfio will again attempt it. Add a boolean to prevent this. There could be a case where a failed rom read might succeed the next time because of a device reset or such, but it's best to exclude unpredictable behavior Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit d20b43dfea1587b561aae17e4fa0f7407779d253 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Wed Jan 15 10:11:06 2014 -0700 vfio: warn if host device rom can't be read If the device rom can't be read, report an error to the user. This alerts the user that the device has a bad state that is causing rom read failure or option rom loading has been disabled from the device boot menu (among other reasons). Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 7c4228b4771acddcb8815079bc116007cec8a1ff Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Wed Jan 15 10:07:26 2014 -0700 vfio: Destroy memory regions Somehow this has been lurking for a while; we remove our subregions from the base BAR and VGA region mappings, but we don't destroy them, creating a leak and more serious problems when we try to migrate after removing these devices. Add the trivial bit of final cleanup to remove these entirely. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 584f2be79de148b0765a758ac0c1036a29c5e830 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Jan 10 18:20:18 2014 +1100 KVM: fix addr type for KVM_IOEVENTFD The @addr here is a guest physical address and can easily be bigger than 4G. This changes uint32_t to hwaddr. Cc: qemu-stable@xxxxxxxxxx Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 94ccff133820552a859c0fb95e33a539e0b90a75 Author: thomas knych <thomaswk@xxxxxxxxxx> Date: Thu Jan 9 13:14:23 2014 -0800 KVM: Retry KVM_CREATE_VM on EINTR Upstreaming this change from Android (https://android-review.googlesource.com/54211). On heavily loaded machines with many VM instances we see KVM_CREATE_VM failing with EINTR on this path: kvm_dev_ioctl_create_vm -> kvm_create_vm -> kvm_init_mmu_notifier -> mmu_notifier_register -> do_mmu_notifier_register -> mm_take_all_locks which checks if any signals have been raised while it was attaining locks and returns EINTR. Retrying the system call greatly improves reliability. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: thomas knych <thomaswk@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit dc6afb99b39a78cf416c6d19e35f680f202016be Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Tue Jan 14 13:10:24 2014 -0500 block: add .bdrv_reopen_prepare() stub for iscsi To suppport reopen(), the .bdrv_reopen_prepare() stub must exist. iSCSI does not have anything that needs to be done to support reopen, so we can just implement the _prepare() stub. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 49fb65c7f985baa56d2964e0a85c1f098e3e2a9d Author: Eric Farman <farman@xxxxxxxxxxxxxxxxxx> Date: Tue Jan 14 14:16:26 2014 -0500 virtio-scsi: Prevent assertion on missed events In some cases, an unplug can cause events to be dropped, which leads to an assertion failure when preparing to notify the guest kernel. Signed-off-by: Eric Farman <farman@xxxxxxxxxxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e9c0f0f58ad0a41c3c4b19e1911cfe095afc09ca Author: Eric Farman <farman@xxxxxxxxxxxxxxxxxx> Date: Tue Jan 14 14:16:25 2014 -0500 virtio-scsi: Cleanup of I/Os that never started There is still a small window that occurs when a cancel I/O affects an asynchronous I/O operation that hasn't started. In other words, when the residual data length equals the expected data length. Today, the routine virtio_scsi_command_complete fails because the VirtIOSCSIReq pointer (from the hba_private field in SCSIRequest) was cleared earlier when virtio_scsi_complete_req was called by the virtio_scsi_request_cancelled routine. As a result, the virtio_scsi_command_complete routine needs to simply return when it is processing a SCSIRequest block that was marked canceled. Signed-off-by: Eric Farman <farman@xxxxxxxxxxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 33325a53f15ab5370e1917b2a11cadffc77c5a52 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Jan 15 10:35:36 2014 +0100 scsi: Assign cancel_io vector for scsi_disk_emulate_ops Some emulated disk operations (MODE SELECT, UNMAP, WRITE SAME) can trigger asynchronous I/Os. Provide the cancel_io callback to ensure that AIOCBs are properly cleaned up. Signed-off-by: Eric Farman <farman@xxxxxxxxxxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx [Tweak commit message. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 1cf892ca2689c84960b4ce4d2723b6bee453711c Author: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Date: Wed Nov 27 08:50:11 2013 +0100 SPARC: Fix LEON3 power down instruction Synchronize the program counter before the power down helper call otherwise interrupts will return to the wrong context. Signed-off-by: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit d32934c84c72f57e78d430c22974677b7bcabe5d Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Jan 14 19:37:09 2014 -0800 error: Don't use error_report() for assertion msgs. Use fprintf(stderr instead. This removes dependency of libqemuutil.a on the monitor. We can further justify this change, in that this code path should only trigger under a fatal error condition. fprintf-stderr is probably the appropriate medium as under a fatal error conidition the monitor itself may be down and out for the count. So assertion failure messages should go lowest common denominator - straight to stderr. Fixes the build as reported by Kevin Wolf. Issue debugged and change suggested by Luiz Capitulino. Issue introduced by 5d24ee70bcbcf578614193526bcd5ed30a8eb16c. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 133fe77437d3a23bf1fd70a231b4f29d5fa0571c Merge: 73c6945 c950114 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Tue Jan 14 12:09:59 2014 +1000 Merge remote branch 'luiz/queue/qmp' into qmpq * luiz/queue/qmp: migration: qmp_migrate(): keep working after syntax error qerror: Remove assert_no_error() qemu-option: Remove qemu_opts_create_nofail target-i386: Remove assert_no_error usage hw: Remove assert_no_error usages qdev: Delete dead code error: Add error_abort monitor: add object-add (QMP) and object_add (HMP) command monitor: add object-del (QMP) and object_del (HMP) command qom: catch errors in object_property_add_child qom: fix leak for objects created with -object rng: initialize file descriptor to -1 qemu-monitor: HMP cpu-add wrapper vl: add missing transition debug->finish_migrate Message-Id: 1389045795-18706-1-git-send-email-lcapitulino@xxxxxxxxxx Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 73c694565c6144e0c4e15041b5250a04a25107c3 Author: Alistair Francis <alistair.francis@xxxxxxxxxx> Date: Mon Jan 13 13:35:26 2014 +1000 Microblaze: Convert Microblaze-pic handling to GPIOs This patch uses inbound GPIO lines (IRQ and FIR) for interrupts instead of using the old pic_cpu method, which doesn't correspond to real hardware. This creates the CPU's inbound IRQ and FIR GPIO lines and updates the Microblaze boards to use this new method. Signed-off-by: Alistair Francis <alistair.francis@xxxxxxxxxx> Suggested-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reveiwed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Tested-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 83e6813a93e38976391b8c382c3375e3e188df3e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Jan 13 10:26:16 2014 +0000 target-arm: Switch ARMCPUInfo arrays to use terminator entries Switch the ARMCPUInfo arrays in cpu.c and cpu64.c to use a terminator entry rather than looping based on ARRAY_SIZE. The latter causes compile warnings on some versions of gcc if the configure options happen to result in an empty array. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Tested-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit b54f18ba3415c731f0b069f6df56f529997fb74e Merge: dd089c0 aa8dc04 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Jan 13 13:20:49 2014 -0800 Merge remote-tracking branch 'quintela/tags/migration/20140113' into staging migration.next for 20140113 # gpg: Signature made Mon 13 Jan 2014 09:38:27 AM PST using RSA key ID 5872D723 # gpg: Can't check signature: public key not found * quintela/tags/migration/20140113: (49 commits) migration: synchronize memory bitmap 64bits at a time ram: split function that synchronizes a range memory: syncronize kvm bitmap using bitmaps operations memory: move bitmap synchronization to its own function kvm: refactor start address calculation kvm: use directly cpu_physical_memory_* api for tracking dirty pages memory: unfold memory_region_test_and_clear() memory: split cpu_physical_memory_* functions to its own include memory: cpu_physical_memory_set_dirty_tracking() should return void memory: make cpu_physical_memory_reset_dirty() take a length parameter memory: s/dirty/clean/ in cpu_physical_memory_is_dirty() memory: cpu_physical_memory_clear_dirty_range() now uses bitmap operations memory: cpu_physical_memory_set_dirty_range() now uses bitmap operations memory: use find_next_bit() to find dirty bits memory: s/mask/clear/ cpu_physical_memory_mask_dirty_range memory: cpu_physical_memory_get_dirty() is used as returning a bool memory: make cpu_physical_memory_get_dirty() the main function memory: unfold cpu_physical_memory_set_dirty_flag() memory: unfold cpu_physical_memory_set_dirty() in its only user memory: unfold cpu_physical_memory_clear_dirty_flag() in its only user ... Message-id: 1389634834-24181-1-git-send-email-quintela@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit aa8dc044772ba156cbcf2174b5673cfa11f566a7 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Wed Nov 6 11:33:05 2013 +0100 migration: synchronize memory bitmap 64bits at a time We use the old code if the bitmaps are not aligned Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 791fa2a2451799232d6bc0c29c0fbb13b5293eeb Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Nov 5 16:47:20 2013 +0100 ram: split function that synchronizes a range This function is the only bit where we care about speed. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit ae2810c4bb3b383176e8e1b33931b16c01483aab Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Nov 5 16:46:26 2013 +0100 memory: syncronize kvm bitmap using bitmaps operations If bitmaps are aligned properly, use bitmap operations. If they are not, just use old bit at a time code. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 5ff7fb77b3cee8e26648e4fdccb23a77c2a6d3c6 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Nov 5 15:52:54 2013 +0100 memory: move bitmap synchronization to its own function We want to have all the functions that handle directly the dirty bitmap near. We will change it later. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit c9dd46fc0d64d9f314aa3c220d4aff9d01ab778e Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Nov 5 15:45:46 2013 +0100 kvm: refactor start address calculation Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 747afd5bcdc90f608c75d95f8a629a9cfc838c57 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Mon Nov 4 12:59:02 2013 +0100 kvm: use directly cpu_physical_memory_* api for tracking dirty pages Performance is important in this function, and we want to optimize even further. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 12291ec18fdce3c1973c172f5a942a1bd26b9a5f Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Mon Oct 14 17:14:47 2013 +0200 memory: unfold memory_region_test_and_clear() We are going to update the bitmap directly Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 220c3ebddbd1ac289ae7fc64733c9501b3921d94 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Mon Oct 14 17:13:59 2013 +0200 memory: split cpu_physical_memory_* functions to its own include All the functions that use ram_addr_t should be here. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 981fdf2353d5e708adbe5227260d5e46eececc05 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Thu Oct 10 11:54:09 2013 +0200 memory: cpu_physical_memory_set_dirty_tracking() should return void Result was always 0, and not used anywhere. Once there, use bool type for the parameter. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit a2f4d5bef2cfde557d76fc45a40d2c89b6bed4e4 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Thu Oct 10 11:49:53 2013 +0200 memory: make cpu_physical_memory_reset_dirty() take a length parameter We have an end parameter in all the callers, and this make it coherent with the rest of cpu_physical_memory_* functions, that also take a length parameter. Once here, move the start/end calculation to tlb_reset_dirty_range_all() as we don't need it here anymore. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit a2cd8c852d2d8c2a084b68b2470f214d6726f6d2 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Thu Oct 10 11:20:22 2013 +0200 memory: s/dirty/clean/ in cpu_physical_memory_is_dirty() All uses except one really want the other meaning. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit a461e389f489e72cdc770ff887512c2c9109bc43 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Wed Oct 9 12:30:35 2013 +0200 memory: cpu_physical_memory_clear_dirty_range() now uses bitmap operations We were clearing a range of bits, so use bitmap_clear(). Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 5b9a3a5f77e3458af6c1bb0654ee0f32936a5594 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Wed Oct 9 12:26:23 2013 +0200 memory: cpu_physical_memory_set_dirty_range() now uses bitmap operations We were setting a range of bits, so use bitmap_set(). Note: xen has always been wrong, and should have used start instead of addr from the beginning. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 1bafff0c7cb99972fd243464632eca0780c6a8f1 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Wed Oct 9 12:15:06 2013 +0200 memory: use find_next_bit() to find dirty bits This operation is way faster than doing it bit by bit. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit ace694cccccf343852d9f0b34171ad475e248bbf Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Wed Oct 9 10:36:56 2013 +0200 memory: s/mask/clear/ cpu_physical_memory_mask_dirty_range Now all functions use the same wording that bitops/bitmap operations Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 94833c896d2d339571a66542f2715b1897d70fa7 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 20:40:55 2013 +0200 memory: cpu_physical_memory_get_dirty() is used as returning a bool Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 9f2c43e41a13605d3ab1e37ba433aa669652fb6b Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 20:35:39 2013 +0200 memory: make cpu_physical_memory_get_dirty() the main function And make cpu_physical_memory_get_dirty_flag() to use it. It used to be the other way around. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit c1427a3f84c42d5159d10927700eafc9b653d68f Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 20:27:58 2013 +0200 memory: unfold cpu_physical_memory_set_dirty_flag() Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 4f13bb80a2dc1bb851b43da6dd9117473772b197 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 20:25:16 2013 +0200 memory: unfold cpu_physical_memory_set_dirty() in its only user Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 86a49582dbe66d59a9366d2f002f0d6af965ecb8 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 20:21:10 2013 +0200 memory: unfold cpu_physical_memory_clear_dirty_flag() in its only user Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 1ab4c8ceaa5ec55af9bb25e88e46d461a8550280 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 16:14:39 2013 +0200 memory: split dirty bitmap into three After all the previous patches, spliting the bitmap gets direct. Note: For some reason, I have to move DIRTY_MEMORY_* definitions to the beginning of memory.h to make compilation work. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 164590a60fd685399da259ac41b338d9a0b9d6c0 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 16:12:17 2013 +0200 bitmap: Add bitmap_zero_extend operation Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit e8a97cafc4108fa964807eb9cbce7eda698f99bb Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 15:50:55 2013 +0200 memory: cpu_physical_memory_clear_dirty_flag() result is never used Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 2152f5ca782e51a4d05a1f7d9bfa83286323cbc9 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 13:52:02 2013 +0200 memory: only resize dirty bitmap when memory size increases Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 7a5b558c9d061814f34d9b95d70d17ef75037937 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 13:29:11 2013 +0200 memory: make sure that client is always inside range Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 5adca7ace9b80bf594e4c52c0d5b23573cba3639 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 13:26:29 2013 +0200 memory: use bit 2 for migration For historical reasons it was bit 3. Once there, create a constant to know the number of clients. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 52159192919469b424b54c167312e53d5a62d233 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 12:44:04 2013 +0200 memory: cpu_physical_memory_mask_dirty_range() always clears a single flag Document it Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 75218e7f2b7f052c6f44489afaf45b3ea4369f45 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 12:31:54 2013 +0200 memory: cpu_physical_memory_set_dirty_range() always dirty all flags So remove the flag argument and do it directly. After this change, there is nothing else using cpu_physical_memory_set_dirty_flags() so remove it. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 63995cebfaa283586682ea6236c9686b2a49ece7 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 12:25:25 2013 +0200 memory: set single dirty flags when possible Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 36187e2ca0295364dcb9a3f256a6fcd77e983c02 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 12:17:12 2013 +0200 memory: all users of cpu_physical_memory_get_dirty used only one flag So cpu_physical_memory_get_dirty_flags is not needed anymore Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 4f08cabe9e6efe8a50abc30cfa59e8470ad434d7 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 12:01:01 2013 +0200 memory: make cpu_physical_memory_is_dirty return bool Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 7e5609a85e3f35965af5e4c7b1480254642cf2dd Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 11:57:21 2013 +0200 exec: create function to get a single dirty bit Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit a1390db4df32ad95bf7854944180d2343f7f6368 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 11:53:46 2013 +0200 memory: create function to set a single dirty bit Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 06567942e5e92cc649b608205d5d31ff3ac21c58 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 11:50:04 2013 +0200 exec: use accessor function to know if memory is dirty Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 78d0042642a415b56b3c53a6044f30eff47bf69c Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Wed Oct 2 14:30:02 2013 +0200 memory: cpu_physical_memory_set_dirty_range() return void Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit e2da99d582300bb8deecb25d26a179ef5b92e066 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Wed Oct 2 14:04:19 2013 +0200 memory: cpu_physical_memory_set_dirty_flags() result is never used So return void. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 9c22687ea8c1a2644a41a683ff0a291adc9a657c Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Dec 17 12:12:24 2013 +0100 bitmap: use long as index Move index and size fields from int to long. We need that for migration. long is 64 bits on sane architectures, and 32bits should be enough on all the 32bits architectures. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 2668b4bff484a8428947c10a0efb9758658f4b1a Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:18 2013 -0200 tests: Some unit tests for vmstate.c * Basic load/save tests * Tests for loading older versions * Tests for .field_exists() handling Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit bb1a6d8c57217188f33d8e59d71fc62dbee9e4f8 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Fri Nov 29 12:26:02 2013 -0200 savevm: Small comment about why timer QEMUFile/VMState code is in savevm.c Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 093c455a8c6d8f715eabd8c8d346f08f17d686ec Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:16 2013 -0200 qemu-file: Move QEMUFile code to qemu-file.c Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit b6fcfa59fa6ad6d61603e701e006d4ec8f4c9d11 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:15 2013 -0200 vmstate: Move VMState code to vmstate.c This will allow unit tests to be written for VMState code without pulling dependencies from the savevm code. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 51b7fa5b3cf7678263382039a884aa2e74742bb6 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:14 2013 -0200 savevm.c: Coding style fix Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 38ff78d363da0d2e0ad27853036b08eaa52ef18d Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:13 2013 -0200 savevm.c: Coding style fixes Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 5cecf414945e5ba40da893cbdaed554371d4eca9 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:12 2013 -0200 savevm: Convert all tabs to spaces Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit b5503338ed1c66310f090cd9164abd244fc82631 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:11 2013 -0200 migration: Move QEMU_VM_* defines to migration/migration.h The VMState code will be moved to vmstate.c and it uses some of the QEMU_VM_* constants, so move it to a header. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit c961514fd9e707b6a39c60f687a711ffe0a33539 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:10 2013 -0200 qemu-file: Make a few functions non-static The QEMUFile code will be moved to qemu-file.c. This will require making the following functions non-static because they are used by the savevm.c code: * qemu_peek_byte() * qemu_peek_buffer() * qemu_file_skip() * qemu_file_set_error() Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 40596834c0d57a223124a956ccbe39dfeadc9f0e Author: Matthew Garrett <matthew.garrett@xxxxxxxxxx> Date: Mon Nov 25 14:42:43 2013 -0500 migration: Fix rate limit The migration thread appears to want to allow writeout to occur at full speed rather than being rate limited during completion of state saving, but sets the limit to INT_MAX when xfer_limit is INT64_MAX. This causes problems if there's more than 2GB of state left to save at this point. It probably ought to just be INT64_MAX instead. Signed-off-by: Matthew Garrett <matthew.garrett@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 51cf4c1a99a172679c2949a2d58a2a4ee307b557 Author: Zhanghaoyu (A) <haoyu.zhang@xxxxxxxxxx> Date: Thu Nov 7 11:01:15 2013 +0000 introduce MIG_STATE_CANCELLING state Introduce MIG_STATE_CANCELLING state to avoid starting a new migration task while the previous one still exist. Signed-off-by: Zeng Junliang <zengjunliang@xxxxxxxxxx> Signed-off-by: Zhang Haoyu <haoyu.zhang@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 6f2b811a61810a7fd9f9a5085de223f66b823342 Author: Zhanghaoyu (A) <haoyu.zhang@xxxxxxxxxx> Date: Thu Nov 7 08:21:23 2013 +0000 avoid a bogus COMPLETED->CANCELLED transition Avoid a bogus COMPLETED->CANCELLED transition. There is a period of time from the timing of setting COMPLETED state to that of migration thread exits, so during which it's problematic in COMPLETED->CANCELLED transition. Signed-off-by: Zeng Junliang <zengjunliang@xxxxxxxxxx> Signed-off-by: Zhang Haoyu <haoyu.zhang@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit dd089c0a1e928fb80ba8a37983c1b0e9232d1c8b Merge: 42bf25a 30ef3c7 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sun Jan 12 17:50:52 2014 -0800 Merge remote-tracking branch 'pmaydell/tags/pull-cocoa-20140112' into staging cocoa queue: * pass command key to guest when VM has mousegrab * add .qcow2 to extension list for image load dialog * fix bugs in code for starting QEMU via image load dialog * fix resize/redraw interaction * draw window black if guest hasn't sent anything to screen * minor style/typo fixes * add myself as cocoa co-maintainer # gpg: Signature made Sun 12 Jan 2014 02:45:52 PM PST using RSA key ID 14360CDE # gpg: Can't check signature: public key not found * pmaydell/tags/pull-cocoa-20140112: MAINTAINERS: add myself as cocoa UI co-maintainer ui/cocoa: Remove stray tabs ui/cocoa: Draw black rectangle if we have no data yet ui/cocoa: Redraw at correct size when switching surface ui/cocoa: Fix code for starting QEMU via image file load dialog ui/cocoa: Add ".qcow2" to extension list for image load dialog ui/cocoa: Send warning message to stderr, not stdout ui/cocoa: Correct typos in comments and variable names ui/cocoa: Pass command key through to guest when VM has mousegrab Message-id: 1389567158-31066-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 42bf25a9bf99559dd68d2b20824cd4879d5785ba Merge: eedc1a5 5cd8a11 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sun Jan 12 17:50:43 2014 -0800 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20140112' into staging target-arm queue: * build fix for bigendian hosts # gpg: Signature made Sun 12 Jan 2014 01:38:22 PM PST using RSA key ID 14360CDE # gpg: Can't check signature: public key not found * pmaydell/tags/pull-target-arm-20140112: arm: fix compile on bigendian host Message-id: 1389562970-30944-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 30ef3c742526baa7910ab5023f0b85062bd85579 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Dec 16 15:17:55 2013 +0000 MAINTAINERS: add myself as cocoa UI co-maintainer Add myself to the maintainers list for the cocoa UI; status remains "Odd Fixes". Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Acked-by: Andreas Färber <andreas.faerber@xxxxxx> Message-id: 1387207075-10280-1-git-send-email-peter.maydell@xxxxxxxxxx commit 49060c29c3751773265a405e6ceaed9d06fb4823 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 24 11:54:12 2013 +0000 ui/cocoa: Remove stray tabs The ui/cocoa.m file has just three lines with hardcoded tabs; fix them. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Message-id: 1387886052-27067-1-git-send-email-peter.maydell@xxxxxxxxxx commit 7d270b1c21c692478245b90bfac0aa54c6a8d98a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 24 02:51:47 2013 +0000 ui/cocoa: Draw black rectangle if we have no data yet If our redraw method is called before we have any data from the guest, then draw a black rectangle rather than leaving the window empty. This mostly only matters when the guest machine has no framebuffer device, but it is more in line with the behaviour of other QEMU UIs. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1387853507-26298-3-git-send-email-peter.maydell@xxxxxxxxxx commit d3345a04849374af2b21d6624dd206c4444a6ffe Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 24 02:51:46 2013 +0000 ui/cocoa: Redraw at correct size when switching surface If the surface switch involved a resize, we were doing the redraw at the old size rather than the new, because the update of screen.width and screen.height was being done after the setFrame method calls which triggered a redraw. Normally this isn't very noticeable because typically after the guest triggers the window resize it also draws something to it, which will in turn cause us to redraw. However, the combination of a guest which never draws to the display and a command line setting of a screen size larger than the default can reveal odd effects. Move most of the handling of resizes to the top of the method, and guard it with a check that the surface size actually changed, to avoid unnecessary operations (including some user visible ones like "recenter the window on the screen") if the surface is the same size as the old one. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1387853507-26298-2-git-send-email-peter.maydell@xxxxxxxxxx commit 98db429d2c6d157b7e00e3f24b6b1d9036f5e358 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Dec 8 22:59:06 2013 +0000 ui/cocoa: Fix code for starting QEMU via image file load dialog Fix a number of bugs in the code for starting QEMU via the image file load dialog: * use the actual argv[0] rather than "qemu": this avoids failures to find BIOS image files caused by not looking in the correct directory relative to the executable path * allocate a large enough argv array to NULL terminate it * use g_strdup(X) rather than g_strdup_printf("%s", X) or g_strdup_printf(X) * disable the printing of the simulated command line argument (which is presumably intended for debug only) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386543546-31919-6-git-send-email-peter.maydell@xxxxxxxxxx commit 5342f990f46512487e3e5be1047a5b424f00d255 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Dec 8 22:59:05 2013 +0000 ui/cocoa: Add ".qcow2" to extension list for image load dialog Add ".qcow2" to the list of file extensions which are accepted by the initial disk image load dialog which is displayed if the user runs QEMU without any command line arguments. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386543546-31919-5-git-send-email-peter.maydell@xxxxxxxxxx commit 01cc4e6fd7d364c6c401c579d504d82c0523d67e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Dec 8 22:59:04 2013 +0000 ui/cocoa: Send warning message to stderr, not stdout Bring a warning message into line with the others in this file by sending it to stderr, not stdout. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386543546-31919-4-git-send-email-peter.maydell@xxxxxxxxxx commit 49b9bd4dccac26178a4796367e4358bd67f4f59b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Dec 8 22:59:03 2013 +0000 ui/cocoa: Correct typos in comments and variable names Fix various non-user-visible typos in comments and variable names. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Message-id: 1386543546-31919-3-git-send-email-peter.maydell@xxxxxxxxxx commit 8895919a044e9e8111faebabacaa2245d8ce4e51 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Dec 8 22:59:02 2013 +0000 ui/cocoa: Pass command key through to guest when VM has mousegrab The guest might want to be able to use the command key for its won purposes (as command if it is MacOS X, or for the Windows key if it is a PC guest, for instance). In line with other UI frontends, pass it through if the guest has mousegrab, and only use it for UI menu accelerators if not grabbed. Thanks to John Arbuckle for reporting this problem, helping us work through what the best solution would be and providing a patch which was the initial inspiration for this one. Reported-by: John Arbuckle <programmingkidx@xxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386543546-31919-2-git-send-email-peter.maydell@xxxxxxxxxx commit 5cd8a11834d1fbb12439604ff6793b9f0bae4a15 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Sun Jan 12 21:37:37 2014 +0000 arm: fix compile on bigendian host Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit fbb9c590cacf1cefb516f523427a920c2fe8c135 Author: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Date: Sun Jan 12 07:52:44 2014 +0000 Update OpenBIOS images Update OpenBIOS images to SVN r1246 built from submodule. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> commit eedc1a5db5e4d941e39e54344322c0b1e89dfdcd Merge: debe40f 8a1bd29 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 10 11:05:17 2014 -0800 Merge remote-tracking branch 'bonzini/scsi-next' into staging * bonzini/scsi-next: scsi-disk: add UNMAP limits to block limits VPD page block/iscsi: use a bh to schedule co reentrance Message-id: 1387720926-11421-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit debe40fbc5f112672d0ab8f7f393e483304059f4 Merge: d181976 18da7f9 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 10 11:05:05 2014 -0800 Merge remote-tracking branch 'stefanha/block' into staging * stefanha/block: commit: Remove unused check qemu-iotests: Update test cases for commit active commit: Support commit active layer block: Add commit_active_start() mirror: Move base to MirrorBlockJob mirror: Don't close target qemu-iotests: drop duplicate virtio-blk initialization failure vmdk: Allow vmdk_create to work with protocol vmdk: Check VMFS extent line field number docs: updated qemu-img man page and qemu-doc to reflect VHDX support. block: vhdx - improve error message, and .bdrv_check implementation block/iscsi: Fix compilation for libiscsi 1.4.0 (API change) qapi-schema: fix QEMU 1.8 references dataplane: replace hostmem with memory_region_find dataplane: change vring API to use VirtQueueElement vring: factor common code for error exits vring: create a common function to parse descriptors sheepdog: fix dynamic grow for running qcow2 format Message-id: 1387554416-5837-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit d1819762fcf5d50f30df603eb606eb31bf62e29d Merge: 4cddc7f 5bf58ab Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 10 11:04:48 2014 -0800 Merge remote-tracking branch 'mst/tags/for_anthony' into staging acpi,pci,pc,fedora,virtio fixes and enhancements This includes some Preparatory patches for cpu hotplug for q25 and memory hotplug by Igor, tests and memory mapping change by Laszlo and pci reset cleanup by Paolo. There are also some fixes for fedora and virtio: included here since they are test blockers for me. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Mon 23 Dec 2013 08:07:18 AM PST using RSA key ID D28D5469 # gpg: Can't check signature: public key not found * mst/tags/for_anthony: target-arm: fix build with gcc 4.8.2 virtio: add back call to virtio_bus_device_unplugged piix: fix 32bit pci hole qdev: switch reset to post-order qdev: allow both pre- and post-order vists in qdev walking functions pci: clean up resetting of IRQs pci: do not export pci_bus_reset ACPI/DSDT-CPU: cleanup bogus comment ACPI: Q35 DSDT: fix CPU hotplug GPE0.2 handler acpi: ich9: allow guest to clear SCI rised by GPE acpi: factor out common pm_update_sci() into acpi core acpi: piix4: remove not needed GPE0 mask i440fx-test: verify firmware under 4G and 1M, both -bios and -pflash i440fx-test: generate temporary firmware blob i440fx-test: give each GTest case its own qtest i440fx-test: qtest_start() should be paired with qtest_end() hw/i386/pc_sysfw: support two flash drives pc_piix: document gigabyte_align piix: gigabyte alignment for ram Message-id: 1387815007-1272-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 4cddc7f44ff83ff3545059f1b8648b8bd7fe0e72 Merge: 62a6a1f d024d20 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 10 11:04:31 2014 -0800 Merge remote-tracking branch 'afaerber/tags/qom-cpu-for-anthony' into staging QOM CPUState refactorings / X86CPU * TLB invalidation optimizations * X86CPU initialization cleanups * Preparations for X86CPU hot-unplug # gpg: Signature made Tue 24 Dec 2013 04:51:52 AM PST using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" # 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: 174F 0347 1BCC 221A 6175 6F96 FA2E D12D 3E7E 013F * afaerber/tags/qom-cpu-for-anthony: target-i386: Cleanup 'foo=val' feature handling target-i386: Cleanup 'foo' feature handling target-i386: Convert 'check' and 'enforce' to static properties target-i386: Convert 'hv_spinlocks' to static property target-i386: Convert 'hv_vapic' to static property target-i386: Convert 'hv_relaxed' to static property cpu-exec: Optimize X86CPU usage in cpu_exec() target-i386: Move apic_state field from CPUX86State to X86CPU cputlb: Tidy memset() of arrays cputlb: Use memset() when flushing entries commit 62a6a1fb895b881a938426fadb808f78a86ee222 Merge: 205b6b6 096fc76 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 10 10:48:46 2014 -0800 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20140107' into staging target-arm queue: * further A64 decoder patches, including enabling the aarch64-linux-user target; this includes full floating point support. Neon is not yet supported. * cadence UART model fixes. * some minor bug fixes and cleanups. * all the softfloat fixes required by the new A64 instructions; several of these will also be used by PPC. * pmaydell/tags/pull-target-arm-20140107: (61 commits) target-arm: A64: Add support for FCVT between half, single and double target-arm: A64: Add 1-source 32-to-32 and 64-to-64 FP instructions target-arm: A64: Add floating-point<->integer conversion instructions target-arm: A64: Add floating-point<->fixed-point instructions target-arm: A64: Add extra VFP fixed point conversion helpers target-arm: Ignore most exceptions from scalbn when doing fixpoint conversion target-arm: Rename A32 VFP conversion helpers target-arm: Prepare VFP_CONV_FIX helpers for A64 uses softfloat: Add support for ties-away rounding softfloat: Refactor code handling various rounding modes softfloat: Add float16 <=> float64 conversion functions softfloat: Factor out RoundAndPackFloat16 and NormalizeFloat16Subnormal softfloat: Provide complete set of accessors for fp state softfloat: Fix float64_to_uint32_round_to_zero softfloat: Fix float64_to_uint32 softfloat: Fix float64_to_uint64_round_to_zero softfloat: Add float32_to_uint64() softfloat: Fix factor 2 error for scalbn on denormal inputs softfloat: Only raise Invalid when conversions to int are out of range softfloat: Fix float64_to_uint64 ... Conflicts: target-arm/cpu.h aliguori: resolved trivial conflict Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 205b6b617519d53f17ef2158ff18cb0fe50f5d6c Merge: 1d327fb f0116c5 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 10 10:47:30 2014 -0800 Merge remote-tracking branch 'riku/linux-user-for-upstream' into staging * riku/linux-user-for-upstream: linux-user: Remove regs parameter of load_elf_binary and load_flt_binary linux-user: Support the accept4 socketcall Message-id: 1389364137-23287-1-git-send-email-riku.voipio@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit f0116c5458dc3be398ee7ef8daeaa02ba738bdc1 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Thu Jan 9 09:10:50 2014 +0000 linux-user: Remove regs parameter of load_elf_binary and load_flt_binary The regs parameter is not used anywhere, so remove it. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Erik de Castro Lopo <erikd@xxxxxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit b9d36eb2c7d73875ef44182f18d625f1bc4c7fda Author: André Hentschel <nerv@xxxxxxxxxxx> Date: Mon Jan 6 20:18:52 2014 +0100 linux-user: Support the accept4 socketcall Cc: Riku Voipio <riku.voipio@xxxxxx> Signed-off-by: André Hentschel <nerv@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Erik de Castro Lopo <erikd@xxxxxxxxxxxxx> Reviewed-by: Laurent Vivier <laurent@xxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 1d327fb4c72b898f7500989f3e624b7349581159 Merge: 074dcc2 2a13f99 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Jan 9 13:56:27 2014 -0800 Merge remote-tracking branch 'otubo/seccomp' into staging * otubo/seccomp: seccomp: exit if seccomp_init() fails Message-id: 1387565447-24241-1-git-send-email-otubo@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 074dcc228a92de8285ada7d7a0f14549de7aacaa Merge: c06f13c 7826163 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Jan 9 13:44:00 2014 -0800 Merge remote-tracking branch 'rth/ldst-i386-2' into staging * rth/ldst-i386-2: (49 commits) target-i386: Tidy ljmp target-i386: Rename gen_op_jmp_T0 to gen_op_jmp_v target-i386: Tidy some size computation target-i386: Remove gen_op_mov_reg_A0 target-i386: Remove gen_op_mov_TN_reg target-i386: Remove gen_op_addl_T0_T1 target-i386: Remove gen_op_mov_reg_T1 target-i386: Remove gen_op_mov_reg_T0 target-i386: Tidy cpu_regs initialization target_i386: Clean up gen_pop_T0 target-i386: Combine gen_push_T* into gen_push_v target-i386: Tidy addr16 code in gen_lea_modrm target-i386: Change dflag to TCGMemOp target-i386: Change gen_op_mov_reg_A0 size parameter to TCGMemOp target-i386: Change aflag to TCGMemOp target-i386: Change gen_op_j*z_ecx size parameter to TCGMemOp target-i386: Change gen_op_add_reg_* size parameter to TCGMemOp target-i386: Use TCGMemOp for 'ot' variables target-i386: Remove gen_op_andl_A0_ffff target-i386: Remove gen_op_movl_T0_T1 ... Message-id: 1389128439-10067-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit c06f13c6da306180e9531114570d7800357f7446 Merge: 666eb03 11c308b Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Jan 9 11:24:48 2014 -0800 Merge remote-tracking branch 'afaerber/tags/qom-devices-for-anthony' into staging QOM infrastructure fixes and device conversions * QOM interface fixes and unit test * Device no_user sanitization and documentation * Device error reporting improvement * Conversion of APIC, ICC, IOAPIC to QOM realization model # gpg: Signature made Tue 24 Dec 2013 09:04:05 AM PST using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" # 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: 174F 0347 1BCC 221A 6175 6F96 FA2E D12D 3E7E 013F * afaerber/tags/qom-devices-for-anthony: (24 commits) qdev-monitor: Improve error message for -device nonexistant ioapic: QOM'ify ioapic ioapic: Cleanup for QOM'ification icc_bus: QOM'ify ICC apic: QOM'ify APIC apic: Cleanup for QOM'ification qdev: Drop misleading qbus_free() function qom: Detect bad reentrance during object_class_foreach() tests: Test QOM interface casting qom: Do not register interface "types" in the type table and fix names qom: Split out object and class caches qdev: Document that pointer properties kill device_add hw: cannot_instantiate_with_device_add_yet due to pointer props qdev-monitor: Avoid device_add crashing on non-device driver name qdev: Do not let the user try to device_add when it cannot work isa: Clean up use of cannot_instantiate_with_device_add_yet vt82c686: Clean up use of cannot_instantiate_with_device_add_yet piix3 piix4: Clean up use of cannot_instantiate_with_device_add_yet ich9: Document why cannot_instantiate_with_device_add_yet pci-host: Consistently set cannot_instantiate_with_device_add_yet ... commit 666eb032d34961a06713049c56361179903527e4 Merge: b61740d 5862ad0 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Jan 9 11:24:12 2014 -0800 Merge remote-tracking branch 'mjt/trivial-patches' into staging * mjt/trivial-patches: acpi unit-test: Remove temporary disk after test mainstone: Fix duplicate array values for key 'space' pxa27x: Add 'const' attribute to keyboard maps pxa27x: Reduce size of keyboard matrix mapping doc: Mention chardev:id in available devices for -serial configure: Python tests must be done before help message configure: Rewrite code for help message fix -boot strict regressed in commit 6ef4716 vl: make boot_strict variable static (not used outside vl.c) x86: only allow real mode to access 32bit without LMA linux-user: Use macro TARGET_NSIG_WORDS where possible exynos4210: Use macro ARRAY_SIZE where possible ui/cocoa: Use macro ARRAY_SIZE where possible misc: Use macro ARRAY_SIZE where possible openrisc: Fix spelling in comment (transaltion -> translation) hw/arm/highbank: Simplify code (memory region in device state) Message-id: 1388182050-10270-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit b61740dbef8d1c8fda8a0f46ecb617e6e865e9e2 Merge: f976b09 8900aad Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Jan 9 11:23:49 2014 -0800 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20140108' into staging target-arm queue: * further A64 decoder patches, including enabling the aarch64-linux-user target; this includes full floating point support. Neon is not yet supported. * cadence UART model fixes. * some minor bug fixes and cleanups. * all the softfloat fixes required by the new A64 instructions; several of these will also be used by PPC. # gpg: Signature made Wed 08 Jan 2014 11:25:12 AM PST using RSA key ID 14360CDE # gpg: Can't check signature: public key not found * pmaydell/tags/pull-target-arm-20140108: (76 commits) target-arm: A64: Add support for FCVT between half, single and double target-arm: A64: Add 1-source 32-to-32 and 64-to-64 FP instructions target-arm: A64: Add floating-point<->integer conversion instructions target-arm: A64: Add floating-point<->fixed-point instructions target-arm: A64: Add extra VFP fixed point conversion helpers target-arm: Ignore most exceptions from scalbn when doing fixpoint conversion target-arm: Rename A32 VFP conversion helpers target-arm: Prepare VFP_CONV_FIX helpers for A64 uses softfloat: Add support for ties-away rounding softfloat: Refactor code handling various rounding modes softfloat: Add float16 <=> float64 conversion functions softfloat: Factor out RoundAndPackFloat16 and NormalizeFloat16Subnormal softfloat: Provide complete set of accessors for fp state softfloat: Fix float64_to_uint32_round_to_zero softfloat: Fix float64_to_uint32 softfloat: Fix float64_to_uint64_round_to_zero softfloat: Add float32_to_uint64() softfloat: Fix factor 2 error for scalbn on denormal inputs softfloat: Only raise Invalid when conversions to int are out of range softfloat: Fix float64_to_uint64 ... Message-id: 1389209439-25448-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 8900aad218f8f2348bcd688eacf06d6c1f66bc69 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:15 2014 +0000 target-arm: A64: Add support for FCVT between half, single and double Add support for FCVT between half, single and double precision. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit d9b0848d944aab124f03cedc8f54c3940450f3b0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add 1-source 32-to-32 and 64-to-64 FP instructions This patch adds support for those instructions in the "Floating-point data-processing (1 source)" group which are simple 32-bit-to-32-bit or 64-bit-to-64-bit operations (ie everything except FCVT between single/double/half precision). We put the new round-to-int helpers in helper.c because they will also be used by the new ARMv8 A32/T32 rounding instructions. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, merged single and double precision patches, updated to new infrastructure.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: reworked decode, split FCVT out into their own patch] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit c436d40614ccfa756bbf3d7448356889ede825fb Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add floating-point<->integer conversion instructions Add support for the AArch64 floating-point <-> integer conversion instructions to disas_fpintconv. In the process we can rearrange and simplify the detection of unallocated encodings a little. We also correct a typo in the instruction encoding diagram for this instruction group: bit 21 is 1, not 0. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 52a1f6a3abb88ab875d5a70cec1048bb05e47263 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add floating-point<->fixed-point instructions This patch adds emulation for the instruction group labeled "Floating-point <-> fixed-point conversions" in the ARM ARM. Namely this includes the instructions SCVTF, UCVTF, FCVTZS, FCVTZU (scalar, fixed-point). Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, rebased, updated to new infrastructure. Applied bug fixes from Michael Matz and Janne Grunau.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: significant cleanup] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3c6a074a08ed3797624d4fb667564b9f3487eeaa Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add extra VFP fixed point conversion helpers Define the full set of floating point to fixed point conversion helpers required to support AArch64. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit abe66f702cac88fd6b1ccdca5d6f0c57f814ab0f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:13 2014 +0000 target-arm: Ignore most exceptions from scalbn when doing fixpoint conversion The VFP fixed point conversion helpers first call float_scalbn and then convert the result to an integer. This scalbn operation may set floating point exception flags for: * overflow & inexact (if it overflows to infinity) * input denormal squashed to zero * output denormal squashed to zero Of these, we only care about the input-denormal flag, since the output of the whole scale-and-convert operation will be an integer (so squashed-output-denormal and overflow don't apply). Suppress the others by saving the pre-scalb exception flags and only copying across a potential input-denormal flag. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 16d5b3caca11360fd1d706403221c7bef40aa6f6 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:13 2014 +0000 target-arm: Rename A32 VFP conversion helpers The VFP conversion helpers for A32 round to zero as this is the only rounding mode supported. Rename these helpers to make it clear that they round to zero and are not suitable for use in the AArch64 code. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8ed697e88b7ead01edca6bf762921b962c265c82 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:13 2014 +0000 target-arm: Prepare VFP_CONV_FIX helpers for A64 uses Make the VFP_CONV_FIX helpers a little more flexible in preparation for the A64 uses. This requires two changes: * use the correct softfloat conversion function based on itype rather than always the int32 one; this is possible now that softfloat provides int16 versions and necessary for the future conversion-to-int64 A64 variants. This also allows us to drop the awkward 'sign' macro argument. * split the 'fsz' argument which currently controls both width of the input float type and width of the output integer type into two; this will allow us to specify the A64 64-bit-int-to-single conversion function, where the two widths are different. We can also drop the (itype##_t) cast now that softfloat guarantees that all the itype##_to_float* functions take an integer argument of exactly the correct type. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f9288a76f1819c2dbf8d2873aebab6aec0f461f5 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:12 2014 +0000 softfloat: Add support for ties-away rounding IEEE754-2008 specifies a new rounding mode: "roundTiesToAway: the floating-point number nearest to the infinitely precise result shall be delivered; if the two nearest floating-point numbers bracketing an unrepresentable infinitely precise result are equally near, the one with larger magnitude shall be delivered." Implement this new mode (it is needed for ARM). The general principle is that the required code is exactly like the ties-to-even code, except that we do not need to do the "in case of exact tie clear LSB to round-to-even", because the rounding operation naturally causes the exact tie to round up in magnitude. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit dc355b764de890e1b5872d0b402dccfd9a9b5286 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:12 2014 +0000 softfloat: Refactor code handling various rounding modes Refactor the code in various functions which calculates rounding increments given the current rounding mode, so that instead of a set of nested if statements we have a simple switch statement. This will give us a clean place to add the case for the new tiesAway rounding mode. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 14c9a07eb9cae3d3bc1d39cc8815dd88337ce07a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:12 2014 +0000 softfloat: Add float16 <=> float64 conversion functions Add the conversion functions float16_to_float64() and float64_to_float16(), which will be needed for the ARM A64 instruction set. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit c4a1c5e7e2fae28ef3fde2aadf7ec6fed0a5a967 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:11 2014 +0000 softfloat: Factor out RoundAndPackFloat16 and NormalizeFloat16Subnormal In preparation for adding conversions between float16 and float64, factor out code currently done inline in the float16<=>float32 conversion functions into functions RoundAndPackFloat16 and NormalizeFloat16Subnormal along the lines of the existing versions for the other float types. Note that we change the handling of zExp from the inline code to match the API of the other RoundAndPackFloat functions; however we leave the positioning of the binary point between bits 22 and 23 rather than shifting it up to the high end of the word. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 879d096b37b1233fec334bc2c2f569ac3b8fec9a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:11 2014 +0000 softfloat: Provide complete set of accessors for fp state Tidy up the get/set accessors for the fp state to add missing ones and make them all inline in softfloat.h rather than some inline and some not. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit fd728f2f949273563f799640b863b4b94dc4c6da Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:51 2014 +0000 softfloat: Fix float64_to_uint32_round_to_zero The float64_to_uint32_round_to_zero routine is incorrect. For example, the following test pattern: 425F81378DC0CD1F / 0x1.f81378dc0cd1fp+38 will erroneously set the inexact flag. This patch re-implements the routine to use the float64_to_uint64_round_to_zero routine. If saturation occurs we ignore any flags set by the conversion function and raise only Invalid. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Message-id: 1387397961-4894-6-git-send-email-tommusta@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5e7f654fa152de246f2254707bacac31ba50c660 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:51 2014 +0000 softfloat: Fix float64_to_uint32 The float64_to_uint32 has several flaws: - for numbers between 2**32 and 2**64, the inexact exception flag may get incorrectly set. In this case, only the invalid flag should be set. test pattern: 425F81378DC0CD1F / 0x1.f81378dc0cd1fp+38 - for numbers between 2**63 and 2**64, incorrect results may be produced: test pattern: 43EAAF73F1F0B8BD / 0x1.aaf73f1f0b8bdp+63 This patch re-implements float64_to_uint32 to re-use the float64_to_uint64 routine (instead of float64_to_int64). For the saturation case, we ignore any flags which the conversion routine has set and raise only the invalid flag. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Message-id: 1387397961-4894-5-git-send-email-tommusta@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0a87a3107dad97abff5b06558b0cce6832229086 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:50 2014 +0000 softfloat: Fix float64_to_uint64_round_to_zero The float64_to_uint64_round_to_zero routine is incorrect. For example, the following test pattern: 46697351FF4AEC29 / 0x1.97351ff4aec29p+103 currently produces 8000000000000000 instead of FFFFFFFFFFFFFFFF. This patch re-implements the routine to temporarily force the rounding mode and use the float64_to_uint64 routine. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Message-id: 1387397961-4894-4-git-send-email-tommusta@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2f18bbf9844ad110e0e69ad22708f37cab1557f6 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:50 2014 +0000 softfloat: Add float32_to_uint64() This patch adds the float32_to_uint64() routine, which converts a 32-bit floating point number to an unsigned 64 bit number. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> [PMM: removed harmless but silly int64_t casts] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3c85c37f254bdfaea4e105b5014a287b5cf9514b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:50 2014 +0000 softfloat: Fix factor 2 error for scalbn on denormal inputs If the input to float*_scalbn() is denormal then it represents a number 0.[mantissabits] * 2^(1-exponentbias) (and the actual exponent field is all zeroes). This means that when we convert it to our unpacked encoding the unpacked exponent must be one greater than for a normal number, which represents 1.[mantissabits] * 2^(e-exponentbias) for an exponent field e. This meant we were giving answers too small by a factor of 2 for all denormal inputs. Note that the float-to-int routines also have this behaviour of not adjusting the exponent for denormals; however there it is harmless because denormals will all convert to integer zero anyway. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 34e1c27bc3094ffe484d9855e07ad104bddf579f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Only raise Invalid when conversions to int are out of range We implement a number of float-to-integer conversions using conversion to an integer type with a wider range and then a check against the narrower range we are actually converting to. If we find the result to be out of range we correctly raise the Invalid exception, but we must also suppress other exceptions which might have been raised by the conversion function we called. This won't throw away exceptions we should have preserved, because for the 'core' exception flags the IEEE spec mandates that the only valid combinations of exception that can be raised by a single operation are Inexact + Overflow and Inexact + Underflow. For the non-IEEE softfloat flag for input denormals, we can guarantee that that flag won't have been set for out of range float-to-int conversions because a squashed denormal by definition goes to plus or minus zero, which is always in range after conversion to integer zero. This bug has been fixed for some of the float-to-int conversion routines by previous patches; fix it for the remaining functions as well, so that they all restore the pre-conversion status flags prior to raising Invalid. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit fb3ea83aa53cead46465c74ddd1872babe9f4a3e Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Fix float64_to_uint64 The comment preceding the float64_to_uint64 routine suggests that the implementation is broken. And this is, indeed, the case. This patch properly implements the conversion of a 64-bit floating point number to an unsigned, 64 bit integer. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit c4850f9e1b9cef2ac35cd6e6f3d8d2147787740c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Make the int-to-float functions take exact-width types Currently the int-to-float functions take types which are specified as "at least X bits wide", rather than "exactly X bits wide". This is confusing and unhelpful since it means that the callers have to include an explicit cast to [u]intXX_t to ensure the correct behaviour. Fix them all to take the exactly-X-bits-wide types instead. Note that this doesn't change behaviour at all since at the moment we happen to define the 'int32' and 'uint32' types as exactly 32 bits wide, and the 'int64' and 'uint64' types as exactly 64 bits wide. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8afbdabac2a1bdc137691c46965ef8c490cb5e44 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Add 16 bit integer to float conversions Add the float to 16 bit integer conversion routines. These can be trivially implemented in terms of the int32_to_float* routines, but providing them makes our API more symmetrical and can simplify callers. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f581bf5474d2319ca37484eb63208017ac96ce0a Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:17:48 2014 +0000 softfloat: Add float to 16bit integer conversions. ARMv8 requires support for converting 32 and 64bit floating point values to signed and unsigned 16bit integers. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: updated not to incorrectly set Inexact for Invalid inputs] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 38970efafdfa8a992c177563c4f0d77062b88fd9 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Jan 6 11:47:21 2014 +0000 softfloat: Fix exception flag handling for float32_to_float16() Our float32 to float16 conversion routine was generating the correct numerical answers, but not always setting the right set of exception flags. Fix this, mostly by rearranging the code to more closely resemble RoundAndPackFloat*, and in particular: * non-IEEE halfprec always raises Invalid for input NaNs * we need to check for the overflow case before underflow * we weren't getting the tininess-detected-after-rounding case correct (somewhat academic since only ARM uses halfprec and it is always tininess-detected-before-rounding) * non-IEEE halfprec overflow raises only Invalid, not Invalid + Inexact * we weren't setting Inexact when we should Also add some clarifying comments about what the code is doing. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 9df90ad078ec782d1339bd6879b6ea117f9759f7 Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Fri Dec 20 22:09:33 2013 -0800 hw: arm_gic: Introduce gic_set_priority function To make the code slightly cleaner to look at and make the save/restore code easier to understand, introduce this function to set the priority of interrupts. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1387606179-22709-3-git-send-email-christoffer.dall@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 04050c5c6aa6f9c086a63a30b182b996fb2d3d02 Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Fri Dec 20 22:09:32 2013 -0800 arm_gic: Rename GIC_X_TRIGGER to GIC_X_EDGE_TRIGGER TRIGGER can really mean mean anything (e.g. was it triggered, is it level-triggered, is it edge-triggered, etc.). Rename to EDGE_TRIGGER to make the code comprehensible without looking up the data structure. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1387606179-22709-2-git-send-email-christoffer.dall@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7b1aa025bdd8a62b203eb0a936e20af424fa2870 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Dec 23 16:52:16 2013 +0200 target-arm: fix build with gcc 4.8.2 commit 5ce4f35781028ce1aee3341e6002f925fdc7aaf3 "target-arm: A64: add set_pc cpu method" introduces an array aarch64_cpus which is zero size if this code is built without CONFIG_USER_ONLY. In particular an attempt to iterate over this array produces a warning under gcc 4.8.2: CC aarch64-softmmu/target-arm/cpu64.o /scm/qemu/target-arm/cpu64.c: In function â??aarch64_cpu_register_typesâ??: /scm/qemu/target-arm/cpu64.c:124:5: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits] for (i = 0; i < ARRAY_SIZE(aarch64_cpus); i++) { ^ cc1: all warnings being treated as errors This is the result of ARRAY_SIZE being an unsigned type, causing "i" to be promoted to unsigned int as well. As zero size arrays are a gcc extension, it seems cleanest to add a dummy element with NULL name, and test for it during registration. We'll be able to drop this when we add more CPUs. Cc: Alexander Graf <agraf@xxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Cc: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 20131223145216.GA22663@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7fcd57e80d134deb925aa47934040a39fd5fa1e0 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Fri Jan 3 17:58:43 2014 -0800 arm/xilinx_zynq: Always instantiate the GEMs Don't conditionalise GEM instantiation on networking attachments. The device should always be present even if not attached to a network. This allows for probing of the device by expectant guests (such as OS's). This is needed because sysbus (or AXI in Xilinx's real hw case) is not self identifying so the guest has no dynamic way of detecting device absence. Also allows for testing of the GEM in loopback mode with -net none. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 55649779a68ee3ff54b24c339b6fdbdccd1f0ed7.1388800598.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit afb2530fe328079b3e4355fda9751a1dd9ef6ffb Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 23:58:20 2014 -0800 target-arm: remove raw_read|write duplication There is an inline duplication of the raw_read and raw_write function bodies. Fix by just calling raw_read/raw_write instead. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: e69281b7e1462b346cb313cf0b89eedc0568125f.1388649290.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a4f0cec6c9da10c5998fdd53845baf2ce6105830 Author: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Date: Fri Dec 20 10:33:11 2013 +0400 target-arm: use c13_context field for CONTEXTIDR Use c13_context field instead of c13_fcse for CONTEXTIDR register definition. Signed-off-by: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1387521191-15350-1-git-send-email-s.fedorov@xxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 38acd64b1cc8b9589e155d16ba4a0ccf9dc95ae4 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:40 2014 +0000 char/cadence_uart: Implement Tx flow control If the UART back-end blocks, buffer in the Tx FIFO to try again later. This stops the IO-thread busy waiting on char back-ends (which causes all sorts of performance problems). Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 4bea048b3ab38425701d82ccc1ab92545c26b79c.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 1e5d8cacb7fe509aa793ad844105fbc4fe02e015 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:40 2014 +0000 char/cadence_uart: Delete redundant rx rst logic uart_rx_reset() called immediately above already does this. Remove. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 05e30826496cf2579084ed801ac0b2c0d0a3071f.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 86baecc3e43510c3bef03a0d7e947221823864d3 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:40 2014 +0000 char/cadence_uart: Use the TX fifo for transmission Populate the TxFIFO with the Tx data before sending. Prepares support for proper Tx flow control implementation. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: bdf7f8af2ef02839bea18665701bc2612f7baa6f.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d0ac820fe4152ea3a57fc3fa9f732cc9524017a4 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:39 2014 +0000 char/cadence_uart: Fix can_receive logic The can_receive logic was only taking into account the RxFIFO occupancy. RxFIFO population is only used for the echo and normal modes however. Improve the logic to correctly return the true number of receivable characters based on the current mode: Normal mode: RxFIFO vacancy. Remote loopback: TxFIFO vacancy. Echo mode: The min of the TxFIFO and RxFIFO vacancies. Local Loopback: Return non-zero (to implement droppage) Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 36a58440c9ca5080151e95765c2c81342de8a8df.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2152e08ad12180f307bc5b838134ab745767d2e5 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:39 2014 +0000 char/cadence_uart: Remove TX timer & add TX FIFO state This tx timer implementation is flawed. Despite the controller attempting to time the guest visable assertion of the TX-empty status bit (and corresponding interrupt) the controller is still transmitting characters instantaneously. There is also no sense of multiple character delay. The only side effect of this timer is assertion of tx-empty status. So just remove the timer completely and hold tx-empty as permanently asserted (its reset status). This matches the actual behaviour of instantaneous transmission. While we are VMSD version bumping, add the tx_fifo as device state to prepare for upcomming TxFIFO flow control. Implement the interrupt generation logic for the TxFIFO occupancy. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 7a208a7eb8d79d6429fe28b1396c3104371807b2.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 11a239a51ccbf27a22e2aa5f423ff1d6f5df65a7 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:39 2014 +0000 char/cadence_uart: Define Missing SR/ISR fields Some (interrupt) status register bits relating to the TxFIFO path were not defined. Define them. This prepares support for proper Tx data path flow control. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 2068b963f0af8cc834c353944e9fa816d950b163.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 676f4c095d53841626b1ee2cbc7a53b4f6239e4e Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:38 2014 +0000 char/cadence_uart: Simplify status generation The status register bits are always pure functions of other device state. Move the generation of these bits to the update_status() function to simplify. Makes developing much easier as theres now no need to recheck status bits on all the changes to rx/tx fifo state. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 321994929f789096975104f99c55732774be4cae.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 1e77c91e2422ffa366fa5a0a39a6e7cc24a102ca Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:38 2014 +0000 char/cadence_uart: s/r_fifo/rx_fifo Rename this field to match the many other uses of "rx". Xilinx docmentation (UG585) also refers to this as "RxFIFO". Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 7386d7cee0ea175f7e53ed5ff045265528d34e32.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 823dd48761a668c8e787cb9cf07234b656a05926 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:38 2014 +0000 char/cadence_uart: Fix reset. Don't reset the uart as an init step. Register the reset function as a proper reset fn instead. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: d82cd2e65e5a6f8b6deeecb6cced61f0bf3f8c89.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 589bfb6888385ae1767fe2f94528f2dacf59509a Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:37 2014 +0000 char/cadence_uart: Add missing uart_update_state This should be rechecked on bus write accesses as such accesses may change the underlying state that generates the interrupt. Particular relevant for when the guest touches the interrupt status or mask. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1c250cd61b7b8de492fbc8b79b8370958a56d83b.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 059ca2bf0d882349aa002e10e3769d25cb923eb4 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:37 2014 +0000 char/cadence_uart: Mark struct fields as public/private As per current QOM conventions. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: a1e31bd62e9709ffb9b3efc6c120f83f30b7a660.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4d3da0f3aa5a5d0cbdb17ad49f1baf3cf1bd95a1 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:51 2014 +0000 target-arm: Give the FPSCR rounding modes names When setting rounding modes we currently just hardcode the numeric values for rounding modes in a big switch statement. With AArch64 support coming, we will need to refer to these rounding modes at different places throughout the code though, so let's better give them names so we don't get confused by accident. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, use names from ARM ARM.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5640ff62c9668651beae0a438540040fd9ee05b5 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:51 2014 +0000 target-arm: A64: Add support for floating point cond select This adds decoding support for C3.6.24 FP conditional select. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 513f1d762f12a4cfdb6cfd59db5f2fb434db60ec Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:51 2014 +0000 target-arm: A64: Add support for floating point conditional compare This adds decoding support for C3.6.23 FP Conditional Compare. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit da7dafe7ee9372322f926834ca7c0532822ad415 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add support for floating point compare Add decoding support for C3.6.22 Floating-point compare. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6163f868c9284a204ea108238f1812ad50c6bf17 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add fmov (scalar, immediate) instruction This patch adds emulation for the fmov instruction working on scalars with an immediate payload. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, rebase and use new infrastructure.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6a30667fb77601b47501172218c7eabd0086c375 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add "Floating-point data-processing (3 source)" insns This patch adds emulation for the "Floating-point data-processing (3 source)" group of instructions. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, merged single and double precision patches. Implement using muladd as suggested by Richard Henderson.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: pull field decode up a level, use register accessors] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit ec73d2e096df1848cbd4255ed2b69954498085aa Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add "Floating-point data-processing (2 source)" insns This patch adds emulation for the "Floating-point data-processing (2 source)" group of instructions. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, merge single and double precision patches. Rebase and update to new infrastructure. Incorporate FMIN/FMAX support patch by Michael Matz.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: * added convenience accessors for FP s and d regs * pulled the field decode and opcode validity check up a level] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f71a2ae50e728f775446302d84e509bf0af43899 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:49 2014 +0000 target-arm: Use VFP_BINOP macro for min, max, minnum, maxnum Use the VFP_BINOP macro to provide helpers for min, max, minnum and maxnum, rather than hand-rolling them. (The float64 max version is not used by A32 but will be needed for A64.) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e2f90565e7b3e2824fffcfcbcecf86205a1f14e2 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:49 2014 +0000 target-arm: A64: Fix vector register access on bigendian hosts The A64 128 bit vector registers are stored as a pair of uint64_t values in the register array. This means that if we're directly loading or storing a value of size less than 64 bits we must adjust the offset appropriately to account for whether the host is bigendian or not. Provide utility functions to abstract away the offsetof() calculations for the FP registers. For do_fp_st() we can sidestep most of the issues for 64 bit and smaller reg-to-mem transfers by always doing a 64 bit load from the register and writing just the piece we need to memory. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f6d8a31440c523de15f88a186b9e6daacab17054 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:49 2014 +0000 target-arm: A64: Add support for dumping AArch64 VFP register state When dumping the current CPU state, we can also get a request to dump the FPU state along with the CPU's integer state. Add support to dump the VFP state when that flag is set, so that we can properly debug code that modifies floating point registers. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, rebased. Output all registers, two per-line.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 13a7f79dfea84ddb9ff1132bf87583bdda93182d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:48 2014 +0000 default-configs: Add config for aarch64-linux-user Add a config for aarch64-linux-user, thereby enabling it as a valid target. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 08aef910d9398ba488455dbb553a8253dc24a333 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Sat Jan 4 22:15:48 2014 +0000 .travis.yml: Add aarch64-* targets Now the AArch64 targets are in mainline we can include them in our Travis test matrix. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e0ee138bf241ca493afe1419d578584b8be05c29 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Sat Jan 4 22:15:48 2014 +0000 linux-user: AArch64: Use correct values for FPSR/FPCR in sigcontext Use the helpers provided for getting the correct FPSR and FPCR values for the signal context. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1b69f006bff89e5e4710dd04be85277aab8856bf Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:47 2014 +0000 linux-user: AArch64: define TARGET_CLONE_BACKWARDS The AArch64 linux-user support was written before but merged after commit 4ce6243dc621 which cleaned up the handling of the clone() syscall argument order, so we failed to notice that AArch64 also needs TARGET_CLONE_BACKWARDS to be defined. Add this define so that clone and fork syscalls work correctly. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit fa2ef212dff8556ea92c4aef54b57efec69ca6fe Author: Michael Matz <matz@xxxxxxx> Date: Sat Jan 4 22:15:47 2014 +0000 target-arm: A64: support for ld/st/cl exclusive This implement exclusive loads/stores for aarch64 along the lines of arm32 and ppc implementations. The exclusive load remembers the address and loaded value. The exclusive store throws an an exception which uses those values to check for equality in a proper exclusive region. This is not actually the architecture mandated semantics (for either AArch32 or AArch64) but it is close enough for typical guest code sequences to work correctly, and saves us from having to monitor all guest stores. It's fairly easy to come up with test cases where we don't behave like hardware - we don't for example model cache line behaviour. However in the common patterns this works, and the existing 32 bit ARM exclusive access implementation has the same limitations. AArch64 also implements new acquire/release loads/stores (which may be either exclusive or non-exclusive). These imposes extra ordering constraints on memory operations (ie they act as if they have an implicit barrier built into them). As TCG is single-threaded all our barriers are no-ops, so these just behave like normal loads and stores. Signed-off-by: Michael Matz <matz@xxxxxxx> Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 03d05e2d0765512fb960192b6e9f9a41c47282bd Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:47 2014 +0000 target-arm: Widen exclusive-access support struct fields to 64 bits In preparation for adding support for A64 load/store exclusive instructions, widen the fields in the CPU state struct that deal with address and data values for exclusives from 32 to 64 bits. Although in practice AArch64 and AArch32 exclusive accesses will be generally separate there are some odd theoretical corner cases (eg you should be able to do the exclusive load in AArch32, take an exception to AArch64 and successfully do the store exclusive there), and it's also easier to reason about. The changes in semantics for the variables are: exclusive_addr -> extended to 64 bits; -1ULL for "monitor lost", otherwise always < 2^32 for AArch32 exclusive_val -> extended to 64 bits. 64 bit exclusives in AArch32 now use the high half of exclusive_val instead of a separate exclusive_high exclusive_high -> is no longer used in AArch32; extended to 64 bits as it will be needed for AArch64's pair-of-64-bit-values exclusives. exclusive_test -> extended to 64 bits, as it is an address. Since this is a linux-user-only field, in arm-linux-user it will always have the top 32 bits zero. exclusive_info -> stays 32 bits, as it is neither data nor address, but simply holds register indexes etc. AArch64 will be able to fit all its information into 32 bits as well. Note that the refactoring of gen_store_exclusive() coincidentally fixes a minor bug where ldrexd would incorrectly update the first CPU register even if the load for the second register faulted. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 32b64e860d6e0887b3d2ad36a940c362646146f4 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:46 2014 +0000 target-arm: aarch64: add support for ld lit Adds support for Load Register (literal), both normal and SIMD/FP forms. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 750813cfaa971bd8679d9f77b8bd21d316871f51 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:46 2014 +0000 target-arm: A64: add support for conditional compare insns this patch adds support for C3.5.4 - C3.5.5 Conditional compare (both immediate and register) Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 643dbb07d26d100487ea87153d5222674bf482d8 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:46 2014 +0000 target-arm: A64: add support for add/sub with carry This patch adds support for C3.5.3 Add/subtract (with carry): instructions ADC, ADCS, SBC, SBCS. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7826163492b306d99680f9fd5e46720404d902f0 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 09:38:07 2013 +1000 target-i386: Tidy ljmp Remove an unnecessary move opcode. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 74bdfbda5537452c59db64fab42179f01d0436b9 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 09:33:53 2013 +1000 target-i386: Rename gen_op_jmp_T0 to gen_op_jmp_v And make the destination argument explicit. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 830a19a425e7b513cd08eb1f8aa58dfc7e9d0d48 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 09:13:27 2013 +1000 target-i386: Tidy some size computation Clean up relics of multiple size domains: - MO_16 + 1 => - 1 + 1 => 0. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 33b7891bd5ea08e22aac755a145cb5c9afd2f86c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 08:54:33 2013 +1000 target-i386: Remove gen_op_mov_reg_A0 Replace with its definition. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c56baccf67c0251ce4480ecc6f72e3511add8b5e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 08:52:13 2013 +1000 target-i386: Remove gen_op_mov_TN_reg Replace with its definition. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit fd5185ecccb1ee0893dcd37324e8db96f876f866 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 08:46:59 2013 +1000 target-i386: Remove gen_op_addl_T0_T1 Replace with its definition. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 68773f84dcedf5971bf756d0b13fa7c99049ed21 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 08:43:50 2013 +1000 target-i386: Remove gen_op_mov_reg_T1 Replace with its definition. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 480a762d1795487e893918c5eb47124f275b4312 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 08:41:38 2013 +1000 target-i386: Remove gen_op_mov_reg_T0 Replace with its definition. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit fac0aff9f3f2bb23e597ff0dad92d8eee6916c8f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 16:38:38 2013 +1000 target-i386: Tidy cpu_regs initialization Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8e31d234b224634729d02b58a8faf364a574e5d7 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 13:57:45 2013 +1000 target_i386: Clean up gen_pop_T0 Reduce ifdefs, share more code between paths, reduce the number of TCG ops generated. Avoid re-computing the size of the operation across gen_pop_T0 and gen_pop_update. Add forgotten zero-extension in the TARGET_X86_64, !CODE64, ss32 case. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 432baffe15c18af576232f22ada2f4dec88ad74a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 13:19:04 2013 +1000 target-i386: Combine gen_push_T* into gen_push_v Reduce ifdefs, share more code between paths, reduce the number of TCG ops generated. Add forgotten zero-extension in the TARGET_X86_64, !CODE64, ss32 case. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7effd62514fa42c3c6c9be15a97c98a5f76748b7 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 11:34:38 2013 +1000 target-i386: Tidy addr16 code in gen_lea_modrm Unlike the addr32, there was no bug. But we can use the same technique to reduce the number of TCG ops. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ab4e4aec78657138312948359055e20f6266bd17 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 09:37:57 2013 +1000 target-i386: Change dflag to TCGMemOp Changing the domain to TCGMemOp makes it easier to interoperate with other portions of the rest of the translator. We now only have one domain for size operands inside the translator, which makes things less confusing all the way around. There are still a number of helpers that continue to use the log2-1 domain. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6f17675a9c14125af544948791a26e3d8033e2b0 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 09:34:20 2013 +1000 target-i386: Change gen_op_mov_reg_A0 size parameter to TCGMemOp Change the domain of the parameter and update all callers. Which lets us defer completely to gen_op_mov_reg_v. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1d71ddb1c28f58e1065386725634ed36ae1d665f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 08:27:33 2013 +1000 target-i386: Change aflag to TCGMemOp Changing the domain to TCGMemOp makes it easier to interoperate with other portions of the rest of the translator. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c92aa1addeae7e3fe6876dd3dff7978f1d3449d2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 07:50:53 2013 +1000 target-i386: Change gen_op_j*z_ecx size parameter to TCGMemOp Change the domain of the parameter and update all callers. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d3f4bbe3318da00f5923ad5c9b60075f8a1cc073 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 07:44:57 2013 +1000 target-i386: Change gen_op_add_reg_* size parameter to TCGMemOp These functions used the aflags/dflags domain, which is log2-1 of the byte size. Confusingly, they used enumeration values from the log2 domain. Change the domain of the parameter and update all callers. Since we're now in a common domain, defer the deposit/extend/mov decision to gen_op_mov_reg_v. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d67dc9e6194dec1f9b361b94ada6c567d6099f39 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 07:25:05 2013 +1000 target-i386: Use TCGMemOp for 'ot' variables The 'ot' variables (operand type?) hold the log2(byte size) of the operand being manipulated. This is the same as the MO_SIZE subset of the TCGMemOp. Indeed, we often pass 'ot' to the tcg_gen_qemu_ld/st functions. Changing the type from 'int' makes it easier to see what domain the variable should be. This does require adding some default cases to some switch statements, to avoid the 'unhandled enumeration value' warning that would result from the change of type. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a7e5c7de2a634cbf7b528659c5e8a25818c5b92e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 12:38:58 2013 +1000 target-i386: Remove gen_op_andl_A0_ffff Replace it with tcg_gen_ext16u_tl, and in two cases merge with a previous move from cpu_regs. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2b98a7d75308a968472a537b215408faf0b9c628 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 12:29:14 2013 +1000 target-i386: Remove gen_op_movl_T0_T1 Replace it with its definition. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f0706f0c939ea751e8bb164f58594e254749b7fd Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 12:27:09 2013 +1000 target-i386: Remove gen_op_andl_T0_im Replace it with its definition. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 40b90233d260446a6d4099f41f0aed1b77962248 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 12:23:48 2013 +1000 target-i386: Remove gen_op_andl_T0_ffff Replace it with tcg_gen_ext16u_tl. In four places we can combine that with a previous move into cpu_T[0], and in one place we can infer that the zero-extension has already happened via the previous load. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit cc0bce884b9a3cf38b5aa8a711813e7ca1c26cac Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 12:13:44 2013 +1000 target-i386: Remove gen_movtl_T*_im Propagate the definitions into all users. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3250cff8e521ec361d3bda69acffa77b70f9525d Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 12:09:00 2013 +1000 target-i386: Remove gen_op_mov*_A0_im Propagate the definitions into all users. In two cases, this allows us to share code between the 32-bit and 64-bit immediate moves. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0ae657b11656284d5f3967c3fe9640c2a238fcd0 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 11:58:01 2013 +1000 target-i386: Remove gen_op_movl_T0_im* Propagate the definitions into all users. The only time that gen_op_movl_T1_imu was used, the input was type 'unsigned', so the replacement works identically. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1b90d56e8c46ca92f39c330a5ce38ef7f6d6ebb6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 11:51:10 2013 +1000 target-i386: Remove gen_op_movl_T0_im* Propagate the definition of gen_op_movl_T0_im to all users. The function gen_op_movl_T0_imu was unused. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 97212c8844f50b3552e991e0d3305d7d69c2a99f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 11:37:35 2013 +1000 target-i386: Remove gen_op_movl_T0_0 Propagate its definition into all users. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a7fbcbe538518108a967306c29dbb0fe76e0b512 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 11:31:34 2013 +1000 target-i386: Tidy extend + move For the known MO_32/MO_64 cases, we don't need to extend a 32-bit temp into a 64-bit temp before storing into the hardware register. We do need the extension for the MO_8/MO_16 cases, in order for the deposit_tl operation to work, so leave those alone. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d5601ad0235679a1b58e8975a34f63c5f039af36 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 11:14:33 2013 +1000 target-i386: Tidy extend + store We can now use tcg_gen_qemu_st_i32 directly to avoid the extension. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 80b0201384f17fd6401eb11eab79ea0e5896b496 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 09:54:48 2013 -1000 target-i386: Tidy load + truncate We can now use tcg_gen_qemu_ld_i32 directly to avoid the truncation. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 24b9c00fc3106a98adc0e89915584eadb092b745 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 09:35:30 2013 -1000 target-i386: Tidy gen_op_mov_TN_reg+tcg_gen_trunc_tl_i32 For the 16 and 32-bit cases, we don't need to truncate via a temporary register. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3655a19fdd9891c1e3a568d77483a11b2ad70951 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 09:22:04 2013 -1000 target-i386: Use MO_BE for movbe Fold the bswap into the memory operation. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4eeb3939b5b4731747cb38a9e6b8fb20062b5ef1 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 08:55:59 2013 -1000 target-i386: Remove unused arguments to gen_lea_modrm The reg_ptr and offset_ptr outputs are universally unused. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4b1fe0671f5f9324b570c5ec165c67b36b05e7d2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 08:32:39 2013 -1000 target-i386: Tidy movsl Always perform a sign-extending load. In the extremely unlikely case that we've used an 0x66 prefix, the extension to 64-bits is unnecessary but not wrong; the store will still examine only 16 bits. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c8fbc479674d00a8f9dd63f9a9d4978c4c4b96d9 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 08:28:40 2013 -1000 target-i386: Tidy mov[sz][bw] We can use the MO_SIGN bit to tidy the reg-reg switch statement as well as pass it on to gen_op_ld_v, eliminating one call. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ee3138da2f76b415cbce6466aa4083a84fc26241 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 08:16:45 2013 -1000 target-i386: Fix typo in gen_push_T1 By inspection, obviously we should be storing T[1] not T[0]. This could only happen for x86_64 in 64-bit mode with 0x66 prefix to call insn -- i.e. never. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b5afc104947369cd3d49de88dee8629193639b46 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 08:14:26 2013 -1000 target-i386: Remove gen_op_st_T1_A0 Propagate its definition into all users. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit fd8ca9f6f5250771207f7dbe88bb804ac0b90a39 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 08:12:01 2013 -1000 target-i386: Remove gen_op_st_T0_A0 Propagate its definition into all users. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d4faa3e08a13aa70bf0d9709610ab27713167df9 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 10:59:43 2013 -0700 target-i386: Introduce gen_op_st_rm_T0_A0 Too many places have the same test vs OR_TMP0 to indicate a write back to memory. Hoist that to a subroutine. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit dc732b76fa6f30bbfc46f721d52a67d0505a1445 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 10:43:41 2013 -0700 target-i386: Remove gen_op_lds_T0_A0 Replace its users by gen_op_ld_v with the MO_SIGN bit set. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0f712e109becb8c0e911209967a014ce3df21a71 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 10:39:41 2013 -0700 target-i386: Remove gen_op_ld_T1_A0 Propagate its definition into all users. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit cc1a80dfb369974bb275387f9559eafdcb6e08eb Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 10:35:24 2013 -0700 target-i386: Remove gen_op_ldu_T0_A0 Propagate its definition into all users. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 909be183823febfe579766e89f9a499ff4da3e47 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 10:30:24 2013 -0700 target-i386: Remove gen_op_ld_T0_A0 Propagate its definition into all users. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4ba9938c893c040af589a7fb1265ac19a2dc43d2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 09:54:47 2013 -0700 target-i386: Replace OT_* constants with MO_* constants The MO_8/16/32/64 constants have the same encoding and meaning as the OT_BYTE/WORD/LONG/QUAD. Since we rely on them being the same, for the qemu_ld/st helpers, standardize on the common names. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 096fc768184d5e9c47ccc4dd95d9f983fa83b9e1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:15 2014 +0000 target-arm: A64: Add support for FCVT between half, single and double Add support for FCVT between half, single and double precision. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e97db91cbf7df456a35996d7243cd0f55d23ca1a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add 1-source 32-to-32 and 64-to-64 FP instructions This patch adds support for those instructions in the "Floating-point data-processing (1 source)" group which are simple 32-bit-to-32-bit or 64-bit-to-64-bit operations (ie everything except FCVT between single/double/half precision). We put the new round-to-int helpers in helper.c because they will also be used by the new ARMv8 A32/T32 rounding instructions. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, merged single and double precision patches, updated to new infrastructure.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: reworked decode, split FCVT out into their own patch] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6a7413385d731a97cbd45c7c4b1c2cbd73d94409 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add floating-point<->integer conversion instructions Add support for the AArch64 floating-point <-> integer conversion instructions to disas_fpintconv. In the process we can rearrange and simplify the detection of unallocated encodings a little. We also correct a typo in the instruction encoding diagram for this instruction group: bit 21 is 1, not 0. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3617f86ba87a0f54b74dbaed0d92da13beb14e45 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add floating-point<->fixed-point instructions This patch adds emulation for the instruction group labeled "Floating-point <-> fixed-point conversions" in the ARM ARM. Namely this includes the instructions SCVTF, UCVTF, FCVTZS, FCVTZU (scalar, fixed-point). Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, rebased, updated to new infrastructure. Applied bug fixes from Michael Matz and Janne Grunau.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: significant cleanup] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8fe2a36f33f44e9d1333c851762ac463ad528233 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add extra VFP fixed point conversion helpers Define the full set of floating point to fixed point conversion helpers required to support AArch64. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 39905e53db75b6df0cfdb65644056a9f1cd10069 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:13 2014 +0000 target-arm: Ignore most exceptions from scalbn when doing fixpoint conversion The VFP fixed point conversion helpers first call float_scalbn and then convert the result to an integer. This scalbn operation may set floating point exception flags for: * overflow & inexact (if it overflows to infinity) * input denormal squashed to zero * output denormal squashed to zero Of these, we only care about the input-denormal flag, since the output of the whole scale-and-convert operation will be an integer (so squashed-output-denormal and overflow don't apply). Suppress the others by saving the pre-scalb exception flags and only copying across a potential input-denormal flag. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6ab748af130912b92decfb1fa411ebdfd7cf8d87 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:13 2014 +0000 target-arm: Rename A32 VFP conversion helpers The VFP conversion helpers for A32 round to zero as this is the only rounding mode supported. Rename these helpers to make it clear that they round to zero and are not suitable for use in the AArch64 code. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 59af2dc86866dc14a42eec596f3d100dd3a24d1e Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:13 2014 +0000 target-arm: Prepare VFP_CONV_FIX helpers for A64 uses Make the VFP_CONV_FIX helpers a little more flexible in preparation for the A64 uses. This requires two changes: * use the correct softfloat conversion function based on itype rather than always the int32 one; this is possible now that softfloat provides int16 versions and necessary for the future conversion-to-int64 A64 variants. This also allows us to drop the awkward 'sign' macro argument. * split the 'fsz' argument which currently controls both width of the input float type and width of the output integer type into two; this will allow us to specify the A64 64-bit-int-to-single conversion function, where the two widths are different. We can also drop the (itype##_t) cast now that softfloat guarantees that all the itype##_to_float* functions take an integer argument of exactly the correct type. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit dcc69632089fece07a0bb4fd859b010659569fda Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:12 2014 +0000 softfloat: Add support for ties-away rounding IEEE754-2008 specifies a new rounding mode: "roundTiesToAway: the floating-point number nearest to the infinitely precise result shall be delivered; if the two nearest floating-point numbers bracketing an unrepresentable infinitely precise result are equally near, the one with larger magnitude shall be delivered." Implement this new mode (it is needed for ARM). The general principle is that the required code is exactly like the ties-to-even code, except that we do not need to do the "in case of exact tie clear LSB to round-to-even", because the rounding operation naturally causes the exact tie to round up in magnitude. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 01a0b83cdb1c29a0066cfee3445a34280b3ac03a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:12 2014 +0000 softfloat: Refactor code handling various rounding modes Refactor the code in various functions which calculates rounding increments given the current rounding mode, so that instead of a set of nested if statements we have a simple switch statement. This will give us a clean place to add the case for the new tiesAway rounding mode. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7b378119bd67609f25bd78b714d0fab922600f40 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:12 2014 +0000 softfloat: Add float16 <=> float64 conversion functions Add the conversion functions float16_to_float64() and float64_to_float16(), which will be needed for the ARM A64 instruction set. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 84c6b75d8557a6e638dc72343428b0a78b66923f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:11 2014 +0000 softfloat: Factor out RoundAndPackFloat16 and NormalizeFloat16Subnormal In preparation for adding conversions between float16 and float64, factor out code currently done inline in the float16<=>float32 conversion functions into functions RoundAndPackFloat16 and NormalizeFloat16Subnormal along the lines of the existing versions for the other float types. Note that we change the handling of zExp from the inline code to match the API of the other RoundAndPackFloat functions; however we leave the positioning of the binary point between bits 22 and 23 rather than shifting it up to the high end of the word. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e9ef30c079354db6a8eb5bd6574b948288a55b94 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:11 2014 +0000 softfloat: Provide complete set of accessors for fp state Tidy up the get/set accessors for the fp state to add missing ones and make them all inline in softfloat.h rather than some inline and some not. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2958f14d75b9c2ef9a68f41a3101884af307e4f8 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:51 2014 +0000 softfloat: Fix float64_to_uint32_round_to_zero The float64_to_uint32_round_to_zero routine is incorrect. For example, the following test pattern: 425F81378DC0CD1F / 0x1.f81378dc0cd1fp+38 will erroneously set the inexact flag. This patch re-implements the routine to use the float64_to_uint64_round_to_zero routine. If saturation occurs we ignore any flags set by the conversion function and raise only Invalid. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Message-id: 1387397961-4894-6-git-send-email-tommusta@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8d551c988e96ac4cfe462e6b34d513bba2da572f Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:51 2014 +0000 softfloat: Fix float64_to_uint32 The float64_to_uint32 has several flaws: - for numbers between 2**32 and 2**64, the inexact exception flag may get incorrectly set. In this case, only the invalid flag should be set. test pattern: 425F81378DC0CD1F / 0x1.f81378dc0cd1fp+38 - for numbers between 2**63 and 2**64, incorrect results may be produced: test pattern: 43EAAF73F1F0B8BD / 0x1.aaf73f1f0b8bdp+63 This patch re-implements float64_to_uint32 to re-use the float64_to_uint64 routine (instead of float64_to_int64). For the saturation case, we ignore any flags which the conversion routine has set and raise only the invalid flag. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Message-id: 1387397961-4894-5-git-send-email-tommusta@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit a757f1c2deb6c8eac4a75f8e817fa2d7c8cd2527 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:50 2014 +0000 softfloat: Fix float64_to_uint64_round_to_zero The float64_to_uint64_round_to_zero routine is incorrect. For example, the following test pattern: 46697351FF4AEC29 / 0x1.97351ff4aec29p+103 currently produces 8000000000000000 instead of FFFFFFFFFFFFFFFF. This patch re-implements the routine to temporarily force the rounding mode and use the float64_to_uint64 routine. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Message-id: 1387397961-4894-4-git-send-email-tommusta@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 47a34e009de2f4a99862e71e1d15d178dac5f259 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:50 2014 +0000 softfloat: Add float32_to_uint64() This patch adds the float32_to_uint64() routine, which converts a 32-bit floating point number to an unsigned 64 bit number. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> [PMM: removed harmless but silly int64_t casts] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0ace25a5676af233a9b5abf48599dbcc45f92dcf Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:50 2014 +0000 softfloat: Fix factor 2 error for scalbn on denormal inputs If the input to float*_scalbn() is denormal then it represents a number 0.[mantissabits] * 2^(1-exponentbias) (and the actual exponent field is all zeroes). This means that when we convert it to our unpacked encoding the unpacked exponent must be one greater than for a normal number, which represents 1.[mantissabits] * 2^(e-exponentbias) for an exponent field e. This meant we were giving answers too small by a factor of 2 for all denormal inputs. Note that the float-to-int routines also have this behaviour of not adjusting the exponent for denormals; however there it is harmless because denormals will all convert to integer zero anyway. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f2e933d20d5fd6c38bda227359b79bcc81654f99 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Only raise Invalid when conversions to int are out of range We implement a number of float-to-integer conversions using conversion to an integer type with a wider range and then a check against the narrower range we are actually converting to. If we find the result to be out of range we correctly raise the Invalid exception, but we must also suppress other exceptions which might have been raised by the conversion function we called. This won't throw away exceptions we should have preserved, because for the 'core' exception flags the IEEE spec mandates that the only valid combinations of exception that can be raised by a single operation are Inexact + Overflow and Inexact + Underflow. For the non-IEEE softfloat flag for input denormals, we can guarantee that that flag won't have been set for out of range float-to-int conversions because a squashed denormal by definition goes to plus or minus zero, which is always in range after conversion to integer zero. This bug has been fixed for some of the float-to-int conversion routines by previous patches; fix it for the remaining functions as well, so that they all restore the pre-conversion status flags prior to raising Invalid. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f883b3896ed5e180f234613aadca019fdbe7c49c Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Fix float64_to_uint64 The comment preceding the float64_to_uint64 routine suggests that the implementation is broken. And this is, indeed, the case. This patch properly implements the conversion of a 64-bit floating point number to an unsigned, 64 bit integer. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 564658dc8c5fabdc73702967590a5652bc45107f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Make the int-to-float functions take exact-width types Currently the int-to-float functions take types which are specified as "at least X bits wide", rather than "exactly X bits wide". This is confusing and unhelpful since it means that the callers have to include an explicit cast to [u]intXX_t to ensure the correct behaviour. Fix them all to take the exactly-X-bits-wide types instead. Note that this doesn't change behaviour at all since at the moment we happen to define the 'int32' and 'uint32' types as exactly 32 bits wide, and the 'int64' and 'uint64' types as exactly 64 bits wide. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 44e09132cae159ce1e2f3d0aebd62c8298224a6d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Add 16 bit integer to float conversions Add the float to 16 bit integer conversion routines. These can be trivially implemented in terms of the int32_to_float* routines, but providing them makes our API more symmetrical and can simplify callers. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e0a2db7128626a795c3657ffcaff40514e998e2f Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:17:48 2014 +0000 softfloat: Add float to 16bit integer conversions. ARMv8 requires support for converting 32 and 64bit floating point values to signed and unsigned 16bit integers. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: updated not to incorrectly set Inexact for Invalid inputs] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1bf6beec8a012cae4bb6fbc89c465127e9650c92 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Jan 6 11:47:21 2014 +0000 softfloat: Fix exception flag handling for float32_to_float16() Our float32 to float16 conversion routine was generating the correct numerical answers, but not always setting the right set of exception flags. Fix this, mostly by rearranging the code to more closely resemble RoundAndPackFloat*, and in particular: * non-IEEE halfprec always raises Invalid for input NaNs * we need to check for the overflow case before underflow * we weren't getting the tininess-detected-after-rounding case correct (somewhat academic since only ARM uses halfprec and it is always tininess-detected-before-rounding) * non-IEEE halfprec overflow raises only Invalid, not Invalid + Inexact * we weren't setting Inexact when we should Also add some clarifying comments about what the code is doing. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e3d8cc0536699b66f58b0e3a13a70ee007f61647 Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Fri Dec 20 22:09:33 2013 -0800 hw: arm_gic: Introduce gic_set_priority function To make the code slightly cleaner to look at and make the save/restore code easier to understand, introduce this function to set the priority of interrupts. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1387606179-22709-3-git-send-email-christoffer.dall@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 07c935087a5541fb167fecf3bef810de2605f93f Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Fri Dec 20 22:09:32 2013 -0800 arm_gic: Rename GIC_X_TRIGGER to GIC_X_EDGE_TRIGGER TRIGGER can really mean mean anything (e.g. was it triggered, is it level-triggered, is it edge-triggered, etc.). Rename to EDGE_TRIGGER to make the code comprehensible without looking up the data structure. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1387606179-22709-2-git-send-email-christoffer.dall@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 455e1e14bbfaf72275efeddaa7bc5d6294253eff Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Dec 23 16:52:16 2013 +0200 target-arm: fix build with gcc 4.8.2 commit 5ce4f35781028ce1aee3341e6002f925fdc7aaf3 "target-arm: A64: add set_pc cpu method" introduces an array aarch64_cpus which is zero size if this code is built without CONFIG_USER_ONLY. In particular an attempt to iterate over this array produces a warning under gcc 4.8.2: CC aarch64-softmmu/target-arm/cpu64.o /scm/qemu/target-arm/cpu64.c: In function â??aarch64_cpu_register_typesâ??: /scm/qemu/target-arm/cpu64.c:124:5: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits] for (i = 0; i < ARRAY_SIZE(aarch64_cpus); i++) { ^ cc1: all warnings being treated as errors This is the result of ARRAY_SIZE being an unsigned type, causing "i" to be promoted to unsigned int as well. As zero size arrays are a gcc extension, it seems cleanest to add a dummy element with NULL name, and test for it during registration. We'll be able to drop this when we add more CPUs. Cc: Alexander Graf <agraf@xxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Cc: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 20131223145216.GA22663@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit ec0e68ef1da316b3ead1943d8f607cc68b13e0d1 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Fri Jan 3 17:58:43 2014 -0800 arm/xilinx_zynq: Always instantiate the GEMs Don't conditionalise GEM instantiation on networking attachments. The device should always be present even if not attached to a network. This allows for probing of the device by expectant guests (such as OS's). This is needed because sysbus (or AXI in Xilinx's real hw case) is not self identifying so the guest has no dynamic way of detecting device absence. Also allows for testing of the GEM in loopback mode with -net none. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 55649779a68ee3ff54b24c339b6fdbdccd1f0ed7.1388800598.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8455bc76c76c5246694290a28c6ebd6797011c18 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 23:58:20 2014 -0800 target-arm: remove raw_read|write duplication There is an inline duplication of the raw_read and raw_write function bodies. Fix by just calling raw_read/raw_write instead. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: e69281b7e1462b346cb313cf0b89eedc0568125f.1388649290.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d045815a5712afbeb8d2c76d8b624c91cfda777c Author: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Date: Fri Dec 20 10:33:11 2013 +0400 target-arm: use c13_context field for CONTEXTIDR Use c13_context field instead of c13_fcse for CONTEXTIDR register definition. Signed-off-by: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1387521191-15350-1-git-send-email-s.fedorov@xxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 294cdac2a02d3172b69c84dec727d6ac6006bb59 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:40 2014 +0000 char/cadence_uart: Implement Tx flow control If the UART back-end blocks, buffer in the Tx FIFO to try again later. This stops the IO-thread busy waiting on char back-ends (which causes all sorts of performance problems). Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 4bea048b3ab38425701d82ccc1ab92545c26b79c.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a33f37a1784691556ed6fd3f58badfce22b761ad Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:40 2014 +0000 char/cadence_uart: Delete redundant rx rst logic uart_rx_reset() called immediately above already does this. Remove. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 05e30826496cf2579084ed801ac0b2c0d0a3071f.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 9e263f73912ba35510d7d7be4c40ba871d4b57e2 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:40 2014 +0000 char/cadence_uart: Use the TX fifo for transmission Populate the TxFIFO with the Tx data before sending. Prepares support for proper Tx flow control implementation. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: bdf7f8af2ef02839bea18665701bc2612f7baa6f.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 61654c77413d1bccb69b384d891d0c688a31430b Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:39 2014 +0000 char/cadence_uart: Fix can_receive logic The can_receive logic was only taking into account the RxFIFO occupancy. RxFIFO population is only used for the echo and normal modes however. Improve the logic to correctly return the true number of receivable characters based on the current mode: Normal mode: RxFIFO vacancy. Remote loopback: TxFIFO vacancy. Echo mode: The min of the TxFIFO and RxFIFO vacancies. Local Loopback: Return non-zero (to implement droppage) Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 36a58440c9ca5080151e95765c2c81342de8a8df.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit faa79359cdb28916b102024e49916af212b344bf Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:39 2014 +0000 char/cadence_uart: Remove TX timer & add TX FIFO state This tx timer implementation is flawed. Despite the controller attempting to time the guest visable assertion of the TX-empty status bit (and corresponding interrupt) the controller is still transmitting characters instantaneously. There is also no sense of multiple character delay. The only side effect of this timer is assertion of tx-empty status. So just remove the timer completely and hold tx-empty as permanently asserted (its reset status). This matches the actual behaviour of instantaneous transmission. While we are VMSD version bumping, add the tx_fifo as device state to prepare for upcomming TxFIFO flow control. Implement the interrupt generation logic for the TxFIFO occupancy. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 7a208a7eb8d79d6429fe28b1396c3104371807b2.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2c628d98989fa224dc3c07033ba4d89562a9bb5f Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:39 2014 +0000 char/cadence_uart: Define Missing SR/ISR fields Some (interrupt) status register bits relating to the TxFIFO path were not defined. Define them. This prepares support for proper Tx data path flow control. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 2068b963f0af8cc834c353944e9fa816d950b163.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a24234cad03d70612e30494f21062fcee5eb9f0e Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:38 2014 +0000 char/cadence_uart: Simplify status generation The status register bits are always pure functions of other device state. Move the generation of these bits to the update_status() function to simplify. Makes developing much easier as theres now no need to recheck status bits on all the changes to rx/tx fifo state. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 321994929f789096975104f99c55732774be4cae.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8998a3c0ceb174d1c6089361efe870bb4f40a27c Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:38 2014 +0000 char/cadence_uart: s/r_fifo/rx_fifo Rename this field to match the many other uses of "rx". Xilinx docmentation (UG585) also refers to this as "RxFIFO". Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 7386d7cee0ea175f7e53ed5ff045265528d34e32.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit b56fab8847e5746085c46a5bf6b5903b3b9fe957 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:38 2014 +0000 char/cadence_uart: Fix reset. Don't reset the uart as an init step. Register the reset function as a proper reset fn instead. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: d82cd2e65e5a6f8b6deeecb6cced61f0bf3f8c89.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 362f656878345e9e50b6f7c676a1961d9ecaa355 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:37 2014 +0000 char/cadence_uart: Add missing uart_update_state This should be rechecked on bus write accesses as such accesses may change the underlying state that generates the interrupt. Particular relevant for when the guest touches the interrupt status or mask. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1c250cd61b7b8de492fbc8b79b8370958a56d83b.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2c7fd04c9348abada0be331b04f9e5cbeeb2ac18 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:37 2014 +0000 char/cadence_uart: Mark struct fields as public/private As per current QOM conventions. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: a1e31bd62e9709ffb9b3efc6c120f83f30b7a660.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f9dfa55857f4f172d4c23011d18f260c875e4bfb Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:51 2014 +0000 target-arm: Give the FPSCR rounding modes names When setting rounding modes we currently just hardcode the numeric values for rounding modes in a big switch statement. With AArch64 support coming, we will need to refer to these rounding modes at different places throughout the code though, so let's better give them names so we don't get confused by accident. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, use names from ARM ARM.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7b2440e4384e59a3d5228cbd53b76089075e9e71 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:51 2014 +0000 target-arm: A64: Add support for floating point cond select This adds decoding support for C3.6.24 FP conditional select. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 32ca04a60fa1ab1b08bcdb9474af3ecf036f8f0f Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:51 2014 +0000 target-arm: A64: Add support for floating point conditional compare This adds decoding support for C3.6.23 FP Conditional Compare. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 244976576d47543901c8d5ccb7f1f191f74b46f5 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add support for floating point compare Add decoding support for C3.6.22 Floating-point compare. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 624490c33ccd803b730d3600d943472bfcc5fa59 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add fmov (scalar, immediate) instruction This patch adds emulation for the fmov instruction working on scalars with an immediate payload. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, rebase and use new infrastructure.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit cd54be5fdbded3346a94fcf71f4a1d9aed340d40 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add "Floating-point data-processing (3 source)" insns This patch adds emulation for the "Floating-point data-processing (3 source)" group of instructions. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, merged single and double precision patches. Implement using muladd as suggested by Richard Henderson.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: pull field decode up a level, use register accessors] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 459cc34290b2823403f9820345c8a83f66495e1d Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add "Floating-point data-processing (2 source)" insns This patch adds emulation for the "Floating-point data-processing (2 source)" group of instructions. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, merge single and double precision patches. Rebase and update to new infrastructure. Incorporate FMIN/FMAX support patch by Michael Matz.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: * added convenience accessors for FP s and d regs * pulled the field decode and opcode validity check up a level] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 286cb8b9cb04048b940bd9f385404781a42c6cff Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:49 2014 +0000 target-arm: Use VFP_BINOP macro for min, max, minnum, maxnum Use the VFP_BINOP macro to provide helpers for min, max, minnum and maxnum, rather than hand-rolling them. (The float64 max version is not used by A32 but will be needed for A64.) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 76afb0d5967ebee59efbf3bfc6a2a042f3cb06f6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:49 2014 +0000 target-arm: A64: Fix vector register access on bigendian hosts The A64 128 bit vector registers are stored as a pair of uint64_t values in the register array. This means that if we're directly loading or storing a value of size less than 64 bits we must adjust the offset appropriately to account for whether the host is bigendian or not. Provide utility functions to abstract away the offsetof() calculations for the FP registers. For do_fp_st() we can sidestep most of the issues for 64 bit and smaller reg-to-mem transfers by always doing a 64 bit load from the register and writing just the piece we need to memory. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 83d210fb670862e9df5ca19d260fd7628cd67843 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:49 2014 +0000 target-arm: A64: Add support for dumping AArch64 VFP register state When dumping the current CPU state, we can also get a request to dump the FPU state along with the CPU's integer state. Add support to dump the VFP state when that flag is set, so that we can properly debug code that modifies floating point registers. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, rebased. Output all registers, two per-line.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0f64fdaf7bd11a9165cc4b7461fb5a316819d257 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:48 2014 +0000 default-configs: Add config for aarch64-linux-user Add a config for aarch64-linux-user, thereby enabling it as a valid target. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2d123ad256fb47bac33c38f90dafb4280879aee5 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Sat Jan 4 22:15:48 2014 +0000 .travis.yml: Add aarch64-* targets Now the AArch64 targets are in mainline we can include them in our Travis test matrix. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e0350d0c17d31b276812e659d8bdf9fc48a59951 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Sat Jan 4 22:15:48 2014 +0000 linux-user: AArch64: Use correct values for FPSR/FPCR in sigcontext Use the helpers provided for getting the correct FPSR and FPCR values for the signal context. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 749c7970d00cdb2be71ce66d65b9eb2ade668832 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:47 2014 +0000 linux-user: AArch64: define TARGET_CLONE_BACKWARDS The AArch64 linux-user support was written before but merged after commit 4ce6243dc621 which cleaned up the handling of the clone() syscall argument order, so we failed to notice that AArch64 also needs TARGET_CLONE_BACKWARDS to be defined. Add this define so that clone and fork syscalls work correctly. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2df7566445c8b0934030627dff2c2417ec6d8e27 Author: Michael Matz <matz@xxxxxxx> Date: Sat Jan 4 22:15:47 2014 +0000 target-arm: A64: support for ld/st/cl exclusive This implement exclusive loads/stores for aarch64 along the lines of arm32 and ppc implementations. The exclusive load remembers the address and loaded value. The exclusive store throws an an exception which uses those values to check for equality in a proper exclusive region. This is not actually the architecture mandated semantics (for either AArch32 or AArch64) but it is close enough for typical guest code sequences to work correctly, and saves us from having to monitor all guest stores. It's fairly easy to come up with test cases where we don't behave like hardware - we don't for example model cache line behaviour. However in the common patterns this works, and the existing 32 bit ARM exclusive access implementation has the same limitations. AArch64 also implements new acquire/release loads/stores (which may be either exclusive or non-exclusive). These imposes extra ordering constraints on memory operations (ie they act as if they have an implicit barrier built into them). As TCG is single-threaded all our barriers are no-ops, so these just behave like normal loads and stores. Signed-off-by: Michael Matz <matz@xxxxxxx> Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 90ba562c61b15f418f284751faa81aca25de2d95 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:47 2014 +0000 target-arm: Widen exclusive-access support struct fields to 64 bits In preparation for adding support for A64 load/store exclusive instructions, widen the fields in the CPU state struct that deal with address and data values for exclusives from 32 to 64 bits. Although in practice AArch64 and AArch32 exclusive accesses will be generally separate there are some odd theoretical corner cases (eg you should be able to do the exclusive load in AArch32, take an exception to AArch64 and successfully do the store exclusive there), and it's also easier to reason about. The changes in semantics for the variables are: exclusive_addr -> extended to 64 bits; -1ULL for "monitor lost", otherwise always < 2^32 for AArch32 exclusive_val -> extended to 64 bits. 64 bit exclusives in AArch32 now use the high half of exclusive_val instead of a separate exclusive_high exclusive_high -> is no longer used in AArch32; extended to 64 bits as it will be needed for AArch64's pair-of-64-bit-values exclusives. exclusive_test -> extended to 64 bits, as it is an address. Since this is a linux-user-only field, in arm-linux-user it will always have the top 32 bits zero. exclusive_info -> stays 32 bits, as it is neither data nor address, but simply holds register indexes etc. AArch64 will be able to fit all its information into 32 bits as well. Note that the refactoring of gen_store_exclusive() coincidentally fixes a minor bug where ldrexd would incorrectly update the first CPU register even if the load for the second register faulted. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 66759c063c3472fe70df0c8489ecc6fd7dc1a843 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:46 2014 +0000 target-arm: aarch64: add support for ld lit Adds support for Load Register (literal), both normal and SIMD/FP forms. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit fc514b094e8f5aa211a36925b62348ab52243762 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:46 2014 +0000 target-arm: A64: add support for conditional compare insns this patch adds support for C3.5.4 - C3.5.5 Conditional compare (both immediate and register) Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 03468633b16e96176ffbe7fd1943f7014e63ccde Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:46 2014 +0000 target-arm: A64: add support for add/sub with carry This patch adds support for C3.5.3 Add/subtract (with carry): instructions ADC, ADCS, SBC, SBCS. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e4fe830b50b56561dae5b5c79c6eb63cc2e94a3d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:45 2014 +0000 target-arm: Widen thread-local register state fields to 64 bits The common pattern for system registers in a 64-bit capable ARM CPU is that when in AArch32 the cp15 register is a view of the bottom 32 bits of the 64-bit AArch64 system register; writes in AArch32 leave the top half unchanged. The most natural way to model this is to have the state field in the CPU struct be a 64 bit value, and simply have the AArch32 TCG code operate on a pointer to its lower half. For aarch64-linux-user the only registers we need to share like this are the thread-local-storage ones. Widen their fields to 64 bits and provide the 64 bit reginfo struct to make them visible in AArch64 state. Note that minor cleanup of the AArch64 system register encoding space means We can share the TPIDR_EL1 reginfo but need split encodings for TPIDR_EL0 and TPIDRRO_EL0. Since we're touching almost every line in QEMU that uses the c13_tls* fields in this patch anyway, we take the opportunity to rename them in line with the standard ARM architectural names for these registers. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 19917791fd1433b79d20b26440ec321d71dcfc01 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:45 2014 +0000 target-arm: Widen thread-local register state fields to 64 bits The common pattern for system registers in a 64-bit capable ARM CPU is that when in AArch32 the cp15 register is a view of the bottom 32 bits of the 64-bit AArch64 system register; writes in AArch32 leave the top half unchanged. The most natural way to model this is to have the state field in the CPU struct be a 64 bit value, and simply have the AArch32 TCG code operate on a pointer to its lower half. For aarch64-linux-user the only registers we need to share like this are the thread-local-storage ones. Widen their fields to 64 bits and provide the 64 bit reginfo struct to make them visible in AArch64 state. Note that minor cleanup of the AArch64 system register encoding space means We can share the TPIDR_EL1 reginfo but need split encodings for TPIDR_EL0 and TPIDRRO_EL0. Since we're touching almost every line in QEMU that uses the c13_tls* fields in this patch anyway, we take the opportunity to rename them in line with the standard ARM architectural names for these registers. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit b0d2b7d0f084f6b33acf7c722790da683916fee3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:45 2014 +0000 target-arm: A64: Implement minimal set of EL0-visible sysregs Implement an initial minimal set of EL0-visible system registers: * NZCV * FPCR * FPSR * CTR_EL0 * DCZID_EL0 Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit fea505221eaf87889000378d4d33ad0dfd5f4d9d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:45 2014 +0000 target-arm: A64: Implement MRS/MSR/SYS/SYSL The AArch64 equivalent of the traditional AArch32 cp15 coprocessor registers is the set of instructions MRS/MSR/SYS/SYSL, which cover between them both true system registers and the "operations with side effects" such as cache maintenance which in AArch32 are mixed in with other cp15 registers. Implement these instructions to look in the cpregs hashtable for the register or operation. Since we don't yet populate the cpregs hashtable with any registers with the "AA64" bit set, everything will still UNDEF at this point. MSR/MRS is the first user of is_jmp = DISAS_UPDATE, so fix an infelicity in its handling where the main loop was requiring the caller to do the update of PC rather than just doing it itself. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 60322b399dc62da7cc1ccd42fbd19b017f8a5e38 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:44 2014 +0000 target-arm: Remove ARMCPU/CPUARMState from cpregs APIs used by decoder The cpregs APIs used by the decoder (get_arm_cp_reginfo() and cp_access_ok()) currently take either a CPUARMState* or an ARMCPU*. This is problematic for the A64 decoder, which doesn't pass the environment pointer around everywhere the way the 32 bit decoder does. Adjust the parameters these functions take so that we can copy only the relevant info from the CPUARMState into the DisasContext and then use that. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3523e4bd9b0b2ff05a88e09bd67be2ec8d5e9e08 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 09:49:20 2013 -0700 target-i386: Use new tcg_gen_qemu_st_* helpers In preference to the older helpers. Stores only in this patch. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3c5f41169b43953b60c415d6ab7287c92ab235ac Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 09:30:34 2013 -0700 target-i386: Use new tcg_gen_qemu_ld_* helpers In preference to the older helpers. Loads only in this patch. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5c42a7cd983e2fee3a63c39c5c5e98a8face463c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Oct 30 22:20:42 2013 -0700 target-i386: Stop encoding DisasContext.mem_index Now that we don't combine mem_index with operand size info, we don't need to encode it. Which tidies many places that access it. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 323d18769ead123501bd4c51a9af820e846cf1d3 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Oct 30 22:04:05 2013 -0700 target-i386: Push DisasContext into load/store helpers Rather than add s->mem_index into a combined size+mem_index argument, pass the context down. This will allow cleaning up s->mem_index later. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 03afa5f808c5af74fa137a20b10f73b0b30aa563 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 17:29:39 2013 +1000 exec: Delay CPU_LOG_TB_CPU until we actually execute a TB The previous placement could result in duplicate logging while still processing interrupts. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c950114286ea358a93ce632db0421945e1008395 Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Sun Dec 29 22:39:58 2013 -0500 migration: qmp_migrate(): keep working after syntax error If a user or QMP client enter a bad syntax for the migrate command in QMP/HMP, then the migrate command will never succeed from that point on. For example, if you enter: (qemu) migrate tcp;0:4444 migrate: Parameter 'uri' expects a valid migration protocol Then the migrate command will always fail from now on: (qemu) migrate tcp:0:4444 migrate: There's a migration process in progress The problem is that qmp_migrate() sets the migration status to MIG_STATE_SETUP and doesn't reset it on syntax error. This bug was introduced by commit 29ae8a4133082e16970c9d4be09f4b6a15034617. Reviewed-by: Michael R. Hines <mrhines@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 594278718323ca7bffaab0fb7fc6c82fa2c1cd5f Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 18:49:52 2014 -0800 qerror: Remove assert_no_error() This is no longer needed, and is obsoleted by error_abort. Remove. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 87ea75d5e135c0527c6a9dbac4317913409f28c7 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 18:49:17 2014 -0800 qemu-option: Remove qemu_opts_create_nofail This is a boiler-plate _nofail variant of qemu_opts_create. Remove and use error_abort in call sites. null/0 arguments needs to be added for the id and fail_if_exists fields in affected callsites due to argument inconsistency between the normal and no_fail variants. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 00b810532446b1037aa5d299f181ac4d1d65aa9c Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 18:48:43 2014 -0800 target-i386: Remove assert_no_error usage Replace an assert_no_error() usage with the error_abort system. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 5433a0a89e68443c9ce1cd0c7b1af23320133983 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 18:48:08 2014 -0800 hw: Remove assert_no_error usages Replace assert_no_error() usages with the error_abort system. &error_abort is passed into API calls to signal to the Error sub-system that any errors are fatal. Removes need for caller assertions. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 90c3f6e02662d2d8edf059168a037a119ed208cb Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 18:47:33 2014 -0800 qdev: Delete dead code This is unreachable code, as it's already asserted that no errors have occurred. Delete. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 5d24ee70bcbcf578614193526bcd5ed30a8eb16c Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 18:46:59 2014 -0800 error: Add error_abort Add a special Error * that can be passed to error handling APIs to signal that any errors are fatal and should abort QEMU. There are two advantages to this: - allows for brevity when wishing to assert success of Error ** accepting APIs. No need for this pattern: Error * local_err = NULL; api_call(foo, bar, &local_err); assert_no_error(local_err); This also removes the need for _nofail variants of APIs with asserting call sites now reduced to 1LOC. - SIGABRT happens from within the offending API. When a fatal error occurs in an API call (when the caller is asserting sucess) failure often means the API itself is broken. With the abort happening in the API call now, the stack frames into the call are available at debug time. In the assert_no_error scheme the abort happens after the fact. The exact semantic is that when an error is raised, if the argument Error ** matches &error_abort, then the abort occurs immediately. The error messaged is reported. For error_propagate, if the destination error is &error_abort, then the abort happens at propagation time. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit cff8b2c6fcdc9492d1141da11f55615843fa0a5e Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 20 23:21:10 2013 +0100 monitor: add object-add (QMP) and object_add (HMP) command Add two commands that are the monitor counterparts of -object. The commands have the same Visitor-based implementation, but use different kinds of visitors so that the HMP command has a DWIM string-based syntax, while the QMP variant accepts a stricter JSON-based properties dictionary. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit ab2d0531b2e41bc5fd8f8e59405f135986599476 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 20 23:21:09 2013 +0100 monitor: add object-del (QMP) and object_del (HMP) command These two commands invoke the "unparent" method of Object. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit b0ed5e9feaf0e2881330a48c692f62e1ac6d9052 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 20 23:21:08 2013 +0100 qom: catch errors in object_property_add_child Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 28ec2598ff7d74bd9556a1786f45fc5df2aacfe1 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 20 23:21:07 2013 +0100 qom: fix leak for objects created with -object The object must be unref-ed when its variable goes out of scope. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 513b8c74c4c899cd940a79131e76c5568aa11381 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 20 23:21:06 2013 +0100 rng: initialize file descriptor to -1 The file descriptor is never initialized to -1, which makes rng-random close stdin if an object is created and immediately destroyed. If we change it to -1, we also need to protect qemu_set_fd_handler from receiving a bogus file descriptor. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit abf233294bc8a4d2c7d5f428f1408d7bdd0c02e0 Author: Jason J. Herne <jjherne@xxxxxxxxxx> Date: Wed Dec 11 13:24:14 2013 -0500 qemu-monitor: HMP cpu-add wrapper Add HMP cpu-add wrapper to allow cpu hot plugging via monitor. Signed-off-by: Jason J. Herne <jjherne@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit eca01d3a93be4041ac5858ef7676e60352e9c2ed Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Dec 3 13:00:15 2013 +0100 vl: add missing transition debug->finish_migrate This fixes an abort if you invoke the "migrate" command while the guest is being debugged. Cc: qemu-stable@xxxxxxxxxx Cc: lcapitulino@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit f5a0a5a5abe7b72ad14b8884681a25fcf3e91c16 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:44 2014 +0000 target-arm: Update generic cpreg code for AArch64 Update the generic cpreg support code to also handle AArch64: AArch64-visible registers coexist in the same hash table with AArch32-visible ones, with a bit in the hash key distinguishing them. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 6e6efd612f58726189893fd4d948b7fc10acd872 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Dec 22 22:32:30 2013 +0000 target-arm: Pull "add one cpreg to hashtable" into its own function define_one_arm_cp_reg_with_opaque() has a set of nested loops which insert a cpreg entry into the hashtable for each of the possible opc/crn/crm values allowed by wildcard specifications. We're about to add an extra loop to this nesting, so pull the core of the loop (which adds a single entry to the hashtable) out into its own function for clarity. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5862ad0f55fa54f3ed05774b538a7e862a10941f Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Dec 26 12:53:39 2013 +0800 acpi unit-test: Remove temporary disk after test Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 7dbc1158bc63fdbad849d21409eeeb53f5230445 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Dec 22 20:42:05 2013 +0100 mainstone: Fix duplicate array values for key 'space' cgcc reported a duplicate initialisation. Mainstone includes a matrix keyboard where two different positions map to 'space'. QEMU uses the reversed mapping and does not map 'space' to two different matrix positions. Some other keys are either missing or might be mapped wrongly (cf. Linux kernel code). Don't fix these until someone can test them with real hardware, but add TODO comments. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 52975c313ee4b5ce2004c1ed3279272a55429ede Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Dec 22 15:22:57 2013 +0100 pxa27x: Add 'const' attribute to keyboard maps The mapping is a hardware feature, so it is relatively constant. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit f57d6693e1ad994374927d7ab7b151bb28f0cb37 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Dec 22 15:32:29 2013 +0100 pxa27x: Reduce size of keyboard matrix mapping The row and column values use only a very limited range (-1 ... 7), so a byte value is sufficient. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 88e020e55e8fcfee0ca2428fb3654469abbd21ae Author: Ingo van Lil <inguin@xxxxxx> Date: Fri Dec 20 14:44:53 2013 +0100 doc: Mention chardev:id in available devices for -serial It is possible to pre-define a character device with the -chardev option and reference its id as serial device. The man page does not mention this feature. Use case: Use stdio as serial, but do not terminate VM on Ctrl-C -chardev stdio,id=mystdio,signal=off -serial chardev:mystdio Signed-off-by: Ingo van Lil <inguin@xxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit f6f0b7d90fe0c481d33165334b4a595fa514c202 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Dec 18 22:30:26 2013 +0100 configure: Python tests must be done before help message The help message uses $python and displays its value, so that macro should be tested and set early. With this modification, configure --help displays the correct value (usually python -B) and no longer creates several *.pyc files. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 08fb77ed391dcbb35ba98fd98d81635a9f6aeb12 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Dec 18 22:09:39 2013 +0100 configure: Rewrite code for help message In the new form most lines of the code now look like the final output: there is no leading echo command and the lines are shorter. The resulting output is nearly identical: the only difference is a blank character which was deliberately removed: @@ -8,7 +8,7 @@ --interp-prefix=PREFIX where to find shared libraries, etc. use %M for cpu name [/usr/gnemul/qemu-%M] --target-list=LIST set target list (default: build everything) - Available targets: alpha-softmmu arm-softmmu + Available targets: alpha-softmmu arm-softmmu cris-softmmu i386-softmmu lm32-softmmu m68k-softmmu microblaze-softmmu microblazeel-softmmu mips-softmmu mips64-softmmu mips64el-softmmu mipsel-softmmu Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2ba82852894c762299b7d05e9a2be184116b80f0 Author: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Date: Wed Dec 18 16:42:17 2013 -0200 mempath prefault: fix off-by-one error Fix off-by-one error (noticed by Andrea Arcangeli). Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> commit 11c308b17a34932033cceca4f88b5e67009e3ebd Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Dec 19 15:30:13 2013 +0100 qdev-monitor: Improve error message for -device nonexistant Once upon a time, the error message was: qemu: -device nonexistant: Device "nonexistant" not found. Try -device '?' for a list. But progress marches on, and conversion to QError (commit 0204276) changed it into: Invalid parameter 'driver' Try with argument '?' for a list. Progress didn't stop there, of course. After a couple of iterations, we arrived at the current message (commit 6acbe4c): qemu: -device nonexistant: Parameter 'driver' expects device type Mission accomplished: this is complete mush. We've since abandoned our quest for "rich" error objects, fortunately before it turned all error messages into mush. Time to undo the damage to this one. Make it: qemu: -device nonexistant: nonexistant is not a valid device model name Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit db0f888848bc5cc578d005d04f4cf7a1105bb758 Author: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Date: Tue Nov 5 18:16:05 2013 +0800 ioapic: QOM'ify ioapic Convert 'init' function to QOM's 'realize' for ioapic and kvm-ioapic. Change variable 'ioapic_no' from static to global. Then we can drop the 'instance_no' function argument. Signed-off-by: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f97718584baa6ef919d00067b9787ba7fc5f1a5b Author: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Date: Tue Nov 5 18:16:04 2013 +0800 ioapic: Cleanup for QOM'ification Some cleanups: * ioapic_common.c: Rename 'register_types' to 'ioapic_common_register_types' * Replace inline 'DEVICE(s)' with local 'DeviceState *dev' variable Signed-off-by: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 494c271784a5e360523e874be9f67259932ea68c Author: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Date: Wed Dec 18 18:21:46 2013 +0100 icc_bus: QOM'ify ICC For consistency, QOM'ify APIC's parent bus. Signed-off-by: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ff6986ce618c69f988e4419efd67ea5cbf7792a5 Author: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Date: Tue Nov 5 18:16:03 2013 +0800 apic: QOM'ify APIC Convert 'init' function to QOM's 'realize' for apic, kvm/apic and xen/xen_apic. Signed-off-by: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d3b0c9e90a9853984c60478dae45bedf8aadf42a Author: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Date: Tue Nov 5 18:16:02 2013 +0800 apic: Cleanup for QOM'ification Do some cleanup, including: 1. Remove DO_UPCAST() for APICCommonState 2. Change DeviceState pointers from 'd' to 'dev', better to understand 3. Rename 'register_types' to specifically 'apic_common_register_types' Signed-off-by: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 6780a22cc71227068925e7b70faa71d6641a9b1b Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Dec 18 17:15:51 2013 +0100 qdev: Drop misleading qbus_free() function Same reasoning as commit 02a5c4c97422b40034f31265e0f139f7846172a8 ("qdev: Drop misleading qdev_free() function"). The qbus_free() function removes the child from the namespace and decrements the reference count. It does not, however, guarantee to free the child since the refcount may still be held. Just call object_unparent() directly. Suggested-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f54c19cacb44d2fad14aca6be08e4aa9b8423217 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Tue Dec 3 16:42:00 2013 +0100 qom: Detect bad reentrance during object_class_foreach() We should not modify the type hash table while it is being iterated on. Assert that it does not happen. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 14389dbd0281e901176319f5868166c706485c5e Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 20 22:14:40 2013 +0100 tests: Test QOM interface casting Add basic regression testing for QOM Interface usage. Test checks casting to interface type/class for following cases: - interface implementation in leaf class - interface implementation in intermediate (parent) class Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit b061dc41f62048acd4a34c6570c0ea396cd9d0b4 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Dec 3 16:41:59 2013 +0100 qom: Do not register interface "types" in the type table and fix names There should be no need to look up nor enumerate the interface "types", whose "classes" are really just vtables. Just create the types and add them to the interface list of the parent type. Interfaces not registering their type anymore means that accessing superclass::interface by type name will fail when initializing subclass::interface. Thus, we need to pre-initialize the subclass's parent_type field before calling type_initialize. Apart from this, the interface "types" should never be used and thus it is harmless to leave them out of the hashtable. Further, the interface types had a bug with interfaces that are inherited from a superclass: The implementation type name was wrong (for example it was subclass::superclass::interface rather than just subclass::interface). This patch fixes this as well. Reported-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 0ab4c94c844cb3953adedbd27adc378b3cf31d9e Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Nov 27 20:27:33 2013 -0800 qom: Split out object and class caches The object-cast and class-cast caches cannot be shared because class caching is conditional on the target type not being an interface and object caching is unconditional. Leads to a bug when a class cast to an interface follows an object cast to the same interface type: FooObject = FOO(obj); FooClass = FOO_GET_CLASS(obj); Where TYPE_FOO is an interface. The first (object) cast will be successful and cache the casting result (i.e. TYPE_FOO will be cached). The second (class) cast will then check the shared cast cache and register a hit. The issue is, when a class cast hits in the cache it just returns a pointer cast of the input class (i.e. the concrete class). When casting to an interface, the cast itself must return the interface class, not the concrete class. The implementation of class cast caching already ensures that the returned cast result is only a pointer cast before caching. The object cast logic however does not have this check. Resolve by just splitting the object and class caches. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Tested-by: Nathan Rossi <nathan.rossi@xxxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c272758f93b9c88c884461a2baa37b8f4008bf02 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Nov 29 10:43:45 2013 +0100 qdev: Document that pointer properties kill device_add Ask users of DEFINE_PROP_PTR() to set cannot_instantiate_with_device_add_yet, or explain why it's not needed. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 1b111dc1216be2a89770fdc1ab3dfa8025957442 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Nov 29 10:43:44 2013 +0100 hw: cannot_instantiate_with_device_add_yet due to pointer props Pointer properties can be set only by code, not by device_add. A device with a pointer property can work with device_add only when the property may remain null. This is the case for property "interrupt_vector" of device "etraxfs,pic". Add a comment there. Set cannot_instantiate_with_device_add_yet for the other devices with pointer properties, with a comment explaining why. Juha Riihimäki and Peter Maydell deserve my thanks for making "pointer property must not remain null" blatantly obvious in the OMAP devices. Only device "smbus-eeprom" is actually changed. The others are all sysbus devices, which get cannot_instantiate_with_device_add_yet set in their abstract base's class init function. Setting it again in their class init function is technically redundant, but serves as insurance for when sysbus devices become available with device_add, and as documentation. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> (for ETRAX) Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 061e84f7a469ad1f94f3b5f6a5361b346ab990e8 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:02:24 2013 +0100 qdev-monitor: Avoid device_add crashing on non-device driver name Watch this: $ upstream-qemu -nodefaults -S -display none -monitor stdio QEMU 1.7.50 monitor - type 'help' for more information (qemu) device_add rng-egd /work/armbru/qemu/qdev-monitor.c:491:qdev_device_add: Object 0x2089b00 is not an instance of type device Aborted (core dumped) Crashes because "rng-egd" exists, but isn't a subtype of TYPE_DEVICE. Broken in commit 18b6dad. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d024d209045b912eb6127861fab2af6c64880efd Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 14 01:29:56 2012 +0100 target-i386: Cleanup 'foo=val' feature handling Features family, model, stepping, level, hv_spinlocks are treated similarly when passed from command line, so it's not necessary to handle each of them individually. Collapse them to one catch-all branch which will treat any not explicitly handled feature in format 'foo=val'. Any unknown feature will be rejected by property setter so there is no need to check for unknown feature in cpu_x86_parse_featurestr(), therefore it's replaced by above mentioned catch-all handler. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 258f5abe9a8786c410f98367e9e042ee16c249f2 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 14 01:16:00 2012 +0100 target-i386: Cleanup 'foo' feature handling Features check, enforce, hv_relaxed and hv_vapic are treated as boolean set to 'on' when passed from command line, so it's not necessary to handle each of them separately. Collapse them to one catch-all branch which will treat any feature in format 'foo' as boolean set to 'on'. Any unknown feature will be rejected by CPU property setter so there is no need to check for unknown feature in cpu_x86_parse_featurestr(), therefore it's replaced by above mentioned catch-all handler. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 912ffc479c0008bd983f5733daa52438b359be6f Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Tue Jun 4 15:13:14 2013 +0200 target-i386: Convert 'check' and 'enforce' to static properties * Additionally convert check_cpuid & enforce_cpuid to bool and make them members of X86CPU * Make 'enforce' feature independent from 'check' Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c8f0f88e2a4cf27bde27a31a98badd61fe212652 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Tue Jun 4 15:05:25 2013 +0200 target-i386: Convert 'hv_spinlocks' to static property Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 0f46685d1b03efaaf5189f0e9af8754cb8f8979c Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Aug 8 13:54:27 2012 +0200 target-i386: Convert 'hv_vapic' to static property Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 89314504197b305173e3f2d23ce541898ef2691c Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Aug 8 13:52:51 2012 +0200 target-i386: Convert 'hv_relaxed' to static property Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 693fa551f96cc4b7a6647f6f55636ee0b6d3a04b Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Dec 24 03:18:12 2013 +0100 cpu-exec: Optimize X86CPU usage in cpu_exec() Replace growing numbers of inline x86_env_get_cpu() with x86_cpu variable. Reviewed-by: Chen Fan <chen.fan@xxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ce5458e82e250c66fe31c716d0e44fac5b1bc349 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Dec 23 23:27:31 2013 +0000 target-arm: A64: implement FMOV Implement FMOV, ie non-converting moves between general purpose registers and floating point registers. This is a subtype of the floating point <-> integer instruction class. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit faa0ba465b772200e9775c1f5af886cfc83d0da6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Dec 23 23:27:30 2013 +0000 target-arm: A64: Add decoder skeleton for FP instructions Add a top level decoder skeleton for FP instructions. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 9618e80938d38eeee765dd23fc0b7475ae536e77 Author: Alexander Graf <agraf@xxxxxxx> Date: Mon Dec 23 23:27:30 2013 +0000 target-arm: A64: implement SVC, BRK Add decoding for the exception generating instructions, and implement SVC (syscalls) and BRK (software breakpoint). Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 52c8b9afcd019df799f5eb779395b46a610348b8 Author: Alexander Graf <agraf@xxxxxxx> Date: Mon Dec 23 23:27:30 2013 +0000 target-arm: A64: add support for 3 src data proc insns This patch adds emulation for the "Data-processing (3 source)" family of instructions, namely MADD, MSUB, SMADDL, SMSUBL, SMULH, UMADDL, UMSUBL, UMULH. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit ed6ec679a8706af4eedd7b3aa132f13bb2329abe Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Dec 23 23:27:29 2013 +0000 target-arm: A64: add support for move wide instructions This patch adds emulation for the mov wide instructions (MOVN, MOVZ, MOVK). Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit b0ff21b4f96fa8223ec252ec3e99a8a9af86cf0c Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Dec 23 23:27:29 2013 +0000 target-arm: A64: add support for add, addi, sub, subi Implement the non-carry forms of addition and subtraction (immediate, extended register and shifted register). This includes the code to calculate NZCV if the instruction calls for setting the flags. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit a5e94a9d767b2111608fe2013492392c7117cef5 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Dec 23 23:27:29 2013 +0000 target-arm: A64: add support for ld/st with index This adds support for the pre/post-index ld/st forms with immediate offsets as well as the un-scaled immediate form (which are all variations on the same 9-bit immediate 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> commit 229b7a05e3abd3def309a04b5d1c14f3a3cb9236 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Dec 23 23:27:29 2013 +0000 target-arm: A64: add support for ld/st with reg offset This adds support for the load/store forms using a register offset. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit d5612f10a1a92afd390d4950b9f8af00ec30ad3e Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Dec 23 23:27:28 2013 +0000 target-arm: A64: add support for ld/st unsigned imm This adds support for the forms of ld/st with a 12 bit unsigned immediate offset. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4a08d4758faf4d6497a5f6fa6be6f048a5359420 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Dec 22 22:32:27 2013 +0000 target-arm: A64: add support for ld/st pair This patch support the basic load and store pair instructions and includes the generic helper functions: * do_gpr_st() * do_fp_st() * do_gpr_ld() * do_fp_ld() * read_cpu_reg_sp() * gen_check_sp_alignment() The last function gen_check_sp_alignment() is a NULL op currently but put in place to make it easy to add SP alignment checking later. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5bf58abf1cb7220d9f7d8e18f113a353cd6f260d Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Dec 23 13:33:11 2013 +0200 target-arm: fix build with gcc 4.8.2 commit 5ce4f35781028ce1aee3341e6002f925fdc7aaf3 "target-arm: A64: add set_pc cpu method" introduces an array aarch64_cpus which is zero size if this code is built without CONFIG_USER_ONLY. In particular an attempt to iterate over this array produces a warning under gcc 4.8.2: CC aarch64-softmmu/target-arm/cpu64.o /scm/qemu/target-arm/cpu64.c: In function â??aarch64_cpu_register_typesâ??: /scm/qemu/target-arm/cpu64.c:124:5: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits] for (i = 0; i < ARRAY_SIZE(aarch64_cpus); i++) { ^ cc1: all warnings being treated as errors This is the result of ARRAY_SIZE being an unsigned type, causing "i" to be promoted to unsigned int as well. As zero size arrays are a gcc extension, it seems cleanest to add a dummy element with NULL name, and test for it during registration. We'll be able to drop this when we add more CPUs. Cc: Alexander Graf <agraf@xxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Cc: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> commit 83d0704734955bf1aa7697af7be2a50e11a80a42 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 20 19:48:51 2013 +0100 virtio: add back call to virtio_bus_device_unplugged This got lost in a rebase. Reported-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit ddaaefb4dd427d6d2e41c1cfbe0cd8d8e8d6aad9 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Sat Dec 21 03:02:50 2013 +0100 piix: fix 32bit pci hole Make the 32bit pci hole start at end of ram, so all possible address space is covered. We used to try and make addresses aligned so they are easier to cover with MTRRs, but since they are cosmetic on KVM, this is probably not worth worrying about. Of course the firmware can use less than that. Leaving space unused is no problem, mapping pci bars outside the hole causes problems though. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 02e51483341a371b508c1a529782d83064c93596 Author: Chen Fan <chen.fan.fnst@xxxxxxxxxxxxxx> Date: Mon Dec 23 17:04:02 2013 +0800 target-i386: Move apic_state field from CPUX86State to X86CPU This motion is preparing for refactoring vCPU APIC subsequently. Signed-off-by: Chen Fan <chen.fan.fnst@xxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit eb2535f411c2201cd6f79e8d2b4e3f4c5b765729 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Dec 7 10:44:52 2013 +1300 cputlb: Tidy memset() of arrays Don't duplicate the array length computation in the memset() when plain sizeof() can produce the correct results. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 4fadb3bb570c5a665bd6f7e300d63c306e67b668 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Dec 7 10:44:51 2013 +1300 cputlb: Use memset() when flushing entries The size of tlb_table is 4k on a 64-bit host. For overwriting memory at this size, cacheline tricks can help. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit e5187b561ff7b241d609a2848131879072169565 Author: Amos Kong <akong@xxxxxxxxxx> Date: Mon Dec 9 19:53:15 2013 +0800 fix -boot strict regressed in commit 6ef4716 Commit 6ef4716 cleaned up parsing of -boot option argument, but accidentally dropped parameter strict. It should have been updated exactly like parameter menu. Do that. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 6f2bfda35cf1c7b8a5913570b808396ab9299873 Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Mon Dec 9 12:18:46 2013 +0400 vl: make boot_strict variable static (not used outside vl.c) Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> Reviewed-by: Amos Kong <akong@xxxxxxxxxx> commit 33dfdb56f2f3c8686d218395b871ec12fd5bf30b Author: Alexander Graf <agraf@xxxxxxx> Date: Fri Dec 6 13:52:24 2013 +0100 x86: only allow real mode to access 32bit without LMA When we're running in non-64bit mode with qemu-system-x86_64 we can still end up with virtual addresses that are above the 32bit boundary if a segment offset is set up. GNU Hurd does exactly that. It sets the segment offset to 0x80000000 and puts its EIP value to 0x8xxxxxxx to access low memory. This doesn't hit us when we enable paging, as there we just mask away the unused bits. But with real mode, we assume that vaddr == paddr which is wrong in this case. Real hardware wraps the virtual address around at the 32bit boundary. So let's do the same. This fixes booting GNU Hurd in qemu-system-x86_64 for me. Reported-by: Michael Tokarev <mjt@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 0d9e61c2619eeead4de6afa8fedec2ad9311b642 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 14:48:08 2013 +0100 linux-user: Use macro TARGET_NSIG_WORDS where possible This improves readability and simplifies the code. Cc: Riku Voipio <riku.voipio@xxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit c46b07f0d7a826ea0bb5811dd49450c2497fb926 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 14:48:06 2013 +0100 exynos4210: Use macro ARRAY_SIZE where possible This improves readability and simplifies the code. Cc: Dmitry Solodkiy <d.solodkiy@xxxxxxxxxxx> Cc: Evgeny Voevodin <e.voevodin@xxxxxxxxxxx> Cc: Igor Mitsyanko <i.mitsyanko@xxxxxxxxx> Cc: Maksim Kozlov <m.kozlov@xxxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 5d70192bcb80a5355323a4736e0fb44d8e2b6743 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 14:48:05 2013 +0100 ui/cocoa: Use macro ARRAY_SIZE where possible This improves readability and simplifies the code. Cc: Andreas Färber <andreas.faerber@xxxxxx> Cc: Anthony Liguori <aliguori@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit dff7424dc09635c33b42193fbb40c90fc9a971f4 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 14:48:04 2013 +0100 misc: Use macro ARRAY_SIZE where possible This improves readability and simplifies the code. Cc: Anthony Liguori <aliguori@xxxxxxxxxx> Cc: Gerd Hoffmann <kraxel@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2e0fc3a488ef12c4e0e3ad4e1a07efec3a19169e Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 09:24:48 2013 +0100 openrisc: Fix spelling in comment (transaltion -> translation) I also removed two hyphens in the same comment. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 112f2ac98d8bd4edafc4a4c84d0abcd9ba98a736 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Fri Dec 6 19:43:30 2013 +0100 hw/arm/highbank: Simplify code (memory region in device state) The memory region can be included by value instead of by reference in the device state. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit dcc209314afdaeec42f1e2a7bbf37eec3ace23de Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 6 17:54:27 2013 +0100 qdev: switch reset to post-order Post-order is the only sensible direction for the reset signals. For example, suppose pre-order is used and the parent has some data structures that cache children state (for example a list of active requests). When the reset method is invoked on the parent, these caches could be in any state. If post-order is used, on the other hand, these will be in a known state when the reset method is invoked on the parent. This change means that it is no longer possible to block the visit of the devices, so the callback is changed to return void. This is not a problem, because PCI was returning 1 exactly in order to achieve the same ordering that this patch implements. PCI can then rely on the qdev core having sent a "reset signal" (whatever that means) to the device, and only do the PCI-specific initialization with pci_do_device_reset. MST: fixed up virtio-ccw Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 0293214b8c5bf56a095d0a39c5821c9da66dd566 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 6 17:54:26 2013 +0100 qdev: allow both pre- and post-order vists in qdev walking functions Resetting should be done in post-order, not pre-order. However, qdev_walk_children and qbus_walk_children do not allow this. Fix it by adding two extra arguments to the functions. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9bdbbfc3a04c28dc43af5afffb32066623cb0022 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 6 17:54:25 2013 +0100 pci: clean up resetting of IRQs pci_device_reset will deassert the INTX pins, and this will make the irq_count array all-zeroes. Check that this is the case, and remove the existing loop which might even unsync irq_count and irq_state. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 81e3e75b6461c53724fe7c7918bc54468fcdaf9d Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 6 17:54:24 2013 +0100 pci: do not export pci_bus_reset qbus_reset_all can be used instead. There is no semantic change because pcibus_reset returns 1 and takes care of the device tree traversal. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit aef52ee87f324fb03e0dcd88a84bdd50c8339a5f Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 13 17:22:13 2013 +0100 ACPI/DSDT-CPU: cleanup bogus comment Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c1a1af87d8d5dce93328bbe8c3db70ff29275069 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 13 17:22:12 2013 +0100 ACPI: Q35 DSDT: fix CPU hotplug GPE0.2 handler Fix bogus CPU hotplug GPE handler. Make Q35 CPU hotplug GPE handler match PIIX4 one, since CPU hotplug event is triggered by GPE0.2 register. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 2c047956f3b27048883350c071bcd33ef8331d13 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 13 17:22:10 2013 +0100 acpi: ich9: allow guest to clear SCI rised by GPE it fixes IRQ storm since guest isn't able to lower SCI IRQ after it has been handled when it clears GPE event. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 063135032808700a5a6b0b4a781f31252da2e762 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 13 17:22:07 2013 +0100 acpi: factor out common pm_update_sci() into acpi core ... and rename it into acpi_update_sci() since it changes SCI on only on PM registers status. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit e4f308bbf9f360ee2af5b94b87aef170d8f20dc4 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 13 17:22:06 2013 +0100 acpi: piix4: remove not needed GPE0 mask Hardcoded GPE0 mask isn't really needed. Since GPE0_STS initialized with all bits cleared and only QEMU itself can set bits there (i.e. guest can only clear bits in it). So guest can't triger SCI by setting _STS & _EN bits and there is not reason to mask out not supported _STS bits since they shouldn't be set by QEMU in the first place. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 3bcc77ae9935c8c3d10f63492af81f1d7d99d492 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Fri Nov 29 18:12:22 2013 +0100 i440fx-test: verify firmware under 4G and 1M, both -bios and -pflash Check whether the firmware is not hidden by other memory regions. Qemu is started in paused mode: it shouldn't try to interpret generated garbage. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 27d59ccd89a5b112e5a5804250440ea30dbfb891 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Fri Nov 29 18:12:21 2013 +0100 i440fx-test: generate temporary firmware blob The blob is 64K in size and contains 0x00..0xFF repeatedly. The client code added to main() wouldn't make much sense in the long term. It helps with debugging and it silences gcc about create_blob_file() being unused, and we'll replace it in the next patch anyway. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c37805b6724e5d4c3ad41653630b72b43619474e Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Fri Nov 29 18:12:20 2013 +0100 i440fx-test: give each GTest case its own qtest The current two GTest cases, /i440fx/defaults and /i440fx/pam can share a qemu process, but the next two cases will need dedicated instances. It is messy (and order-dependent) to dynamically configure GTest cases one by one to start, stop, or keep the current qtest (*); let's just have each GTest work with its own qtest. The performance difference should be negligible. (*) As g_test_run() can be invoked at most once per process startup, and it runs GTest cases in sequence, we'd need clumsy data structures to control each GTest case to start/stop/keep the qemu instance. Or, we'd have to code the same information into the test methods themselves, which would make them even more order-dependent. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit b817e3fb5401bfab49e3c212e6daa1ff1f5a4c9a Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Fri Nov 29 18:12:19 2013 +0100 i440fx-test: qtest_start() should be paired with qtest_end() Similarly to commit 1d9358e6 ("libqtest: New qtest_end() to go with qtest_start()"). Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 637a5acb46b36a25b506ba6545e9a53350585b03 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Thu Nov 28 00:52:52 2013 +0100 hw/i386/pc_sysfw: support two flash drives This patch allows the user to usefully specify -drive file=img_1,if=pflash,format=raw,readonly \ -drive file=img_2,if=pflash,format=raw on the command line. The flash images will be mapped under 4G in their reverse unit order -- that is, with their base addresses progressing downwards, in increasing unit order. (The unit number increases with command line order if not explicitly specified.) This accommodates the following use case: suppose that OVMF is split in two parts, a writeable host file for non-volatile variable storage, and a read-only part for bootstrap and decompressible executable code. The binary code part would be read-only, centrally managed on the host system, and passed in as unit 0. The variable store would be writeable, VM-specific, and passed in as unit 1. 00000000ffe00000-00000000ffe1ffff (prio 0, R-): system.flash1 00000000ffe20000-00000000ffffffff (prio 0, R-): system.flash0 (If the guest tries to write to the flash range that is backed by the read-only drive, pflash_update() is never called; various flash programming/erase errors are returned to the guest instead. See the callers of pflash_update(), and the initialization of "pfl->ro", in "hw/block/pflash_cfi01.c".) Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit ecdbfceb0f20a3ef784bf522ed7264660aa3d150 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Dec 16 13:54:19 2013 +0200 pc_piix: document gigabyte_align Document the logic behind the below/above 4G split. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit bb43d3839c29b17a2f5c122114cd4ca978065a18 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 16 10:11:28 2013 +0100 piix: gigabyte alignment for ram Map 3G (i440fx) of memory below 4G, so the RAM pieces are nicely aligned to gigabyte borders. Keep old memory layout for (a) old machine types and (b) in case all memory fits below 4G and thus we don't have to split RAM into pieces in the first place. The later makes sure this change doesn't take away memory from 32bit guests. So, with i440fx and up to 3.5 GB of memory, all of it will be mapped below 4G. With more than 3.5 GB of memory 3 GB will be mapped below 4G and the remaining amount will be mapped above 4G. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 7ea5e78f3d8d64e99c4017ea211b7518f2629756 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:27:03 2013 +0100 qdev: Do not let the user try to device_add when it cannot work Such devices have always been unavailable and omitted from the list of available devices shown by device_add help. Until commit 18b6dad silently broke the former, setting up nasty traps for unwary users, like this one: $ qemu-system-x86_64 -nodefaults -monitor stdio -display none QEMU 1.6.50 monitor - type 'help' for more information (qemu) device_add apic Segmentation fault (core dumped) I call that a regression. Fix it. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f3b176402fa92149320dcd5479916ccb39cfa0a8 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:27:02 2013 +0100 isa: Clean up use of cannot_instantiate_with_device_add_yet Drop it when there's no obvious reason why device_add could not work. Else keep and document why. * isa-fdc: drop * i8042: drop, even though its I/O base is hardcoded (because you could conceivably still add one to a board that has none), and even though PC board code wires up the A20 line (because that wiring is optional) * port92: keep because it needs additional wiring by port92_init() * mc146818rtc: keep because it needs to be wired up by rtc_init() * m48t59_isa: keep because needs to be wired up by m48t59_init_isa() * isa-pit, kvm-pit: keep (in their abstract base pic-common) because the PIT needs additional wiring by board code, depending on HPET presence * pcspk: keep because of pointer property pit, and because realize sets global pcspk_state * vmmouse: keep because of pointer property ps2_mouse * vmport: keep because realize sets global port_state * isa-i8259, kvm-i8259: keep (in their abstract base pic-common), because the PICs' IRQ input lines are set up by board code, and the wiring of the slave to the master is hard-coded in device model code Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 04916ee9fb8ff4be4d9f612b85aef009ec57b0b4 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:27:01 2013 +0100 vt82c686: Clean up use of cannot_instantiate_with_device_add_yet A VT82C686B southbridge has multiple functions. We model each function as a separate qdev. One of them need some special wiring set up in mips_fulong2e_init() to work: the ISA bridge at 05.0. The IDE controller at 05.1 (via-ide) has always had cannot_instantiate_with_device_add_yet set, but there is no obvious reason why device_add could not work for them. Drop it. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 81aab2ff1118a4de8fd92ae89380ccfbc2870574 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:27:00 2013 +0100 piix3 piix4: Clean up use of cannot_instantiate_with_device_add_yet A PIIX3/PIIX4 southbridge has multiple functions. We model each function as a separate qdev. Two of them need some special wiring set up in pc_init1() or mips_malta_init() to work: the ISA bridge at 01.0, and the SMBus controller at 01.3. The IDE controller at 01.1 (piix3-ide, piix3-ide-xen, piix4-ide) has always had cannot_instantiate_with_device_add_yet set, but there is no obvious reason why device_add could not work for them. Drop it. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit bfa6dfd070f0cb5be37ae3bd6b90bdd67849c311 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:26:59 2013 +0100 ich9: Document why cannot_instantiate_with_device_add_yet An ICH9 southbridge contains several PCI devices, some of them with multiple functions. We model each function as a separate qdev. Two of them need some special wiring set up in pc_q35_init() to work: the LPC controller at 00:1f.0, and the SMBus controller at 00:1f.3. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 08c58f92f66dcf0a9097c3a6a65bcc4ffd71268f Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:26:58 2013 +0100 pci-host: Consistently set cannot_instantiate_with_device_add_yet Many PCI host bridges consist of a sysbus device and a PCI device. You need both for the thing to work. Arguably, these bridges should be modelled as a single, composite devices instead of pairs of seemingly independent devices you can only use together, but we're not there, yet. Since the sysbus part can't be instantiated with device_add, yet, permitting it with the PCI part is useless. We shouldn't offer useless options to the user, so let's set cannot_instantiate_with_device_add_yet for them. It's already set for Bonito, Grackle, i440FX and Raven. Document why. Set it for the others: dec-21154, e500-host-bridge, gt64120_pci, mch, pbm-pci, ppc4xx-host-bridge, sh_pci_host, u3-agp, uni-north-agp, uni-north-internal-pci, uni-north-pci, and versatile_pci_host. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f37a4374bae20ca678b808b5ee32319e943b1b4b Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:26:57 2013 +0100 apic: Document why cannot_instantiate_with_device_add_yet Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ffa957148698eec9cfdaf6e0c1b43cda8828cd61 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:26:56 2013 +0100 cpu: Document why cannot_instantiate_with_device_add_yet Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 837d37167dc446af8a91189108b363c04609e296 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:26:55 2013 +0100 sysbus: Set cannot_instantiate_with_device_add_yet device_add plugs devices into suitable bus. For "real" buses, that actually connects the device. For sysbus, the connections need to be made separately, and device_add can't do that. The device would be left unconnected, and could not possibly work. Quite a few, but not all sysbus devices already set cannot_instantiate_with_device_add_yet in their class init function. Set it in their abstract base's class init function sysbus_device_class_init(), and remove the now redundant assignments from device class init functions. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit efec3dd631d94160288392721a5f9c39e50fb2bc Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:26:54 2013 +0100 qdev: Replace no_user by cannot_instantiate_with_device_add_yet In an ideal world, machines can be built by wiring devices together with configuration, not code. Unfortunately, that's not the world we live in right now. We still have quite a few devices that need to be wired up by code. If you try to device_add such a device, it'll fail in sometimes mysterious ways. If you're lucky, you get an unmysterious immediate crash. To protect users from such badness, DeviceClass member no_user used to make device models unavailable with -device / device_add, but that regressed in commit 18b6dad. The device model is still omitted from help, but is available anyway. Attempts to fix the regression have been rejected with the argument that the purpose of no_user isn't clear, and it's prone to misuse. This commit clarifies no_user's purpose. Anthony suggested to rename it cannot_instantiate_with_device_add_yet_due_to_internal_bugs, which I shorten somewhat to keep checkpatch happy. While there, make it bool. Every use of cannot_instantiate_with_device_add_yet gets a FIXME comment asking for rationale. The next few commits will clean them all up, either by providing a rationale, or by getting rid of the use. With that done, the regression fix is hopefully acceptable. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f976b09ea249cccc3fd41c98aaf6512908db0bae Author: Alexander Graf <agraf@xxxxxxx> Date: Fri Dec 20 11:01:50 2013 +0100 PPC: Fix compilation with TCG debug The recent VSX patches broken compilation of QEMU when configurated with --enable-debug, as it was treating "target long" TCG variables as "i64" which is not true for 32bit targets. This patch fixes all the places that the compiler has found to use the correct variable type and if necessary manually cast. Reported-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 8a1bd2973ed5f99a3c37c9afdff823c4a22152b1 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 20 15:54:27 2013 +0100 scsi-disk: add UNMAP limits to block limits VPD page Linux prefers WRITE SAME to UNMAP if the limits are zero, and WRITE SAME does not discard anything unless the device can guarantee that the resulting block is zero. Setting the maximum unmap block and descriptor counts to non-zero makes Linux choose UNMAP and fixes thin provisioning on glusterfs. While the maximum unmap block count can have some effect on performance, the (suggested) maximum number of descriptors is not particularly important so I didn't add a customization option. SCSI drivers are used to online firmware updates so I'm not yet adding versioning support for SCSI, but we're probably getting close to the point when it's worth thinking about it. Reported-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e8092f7ae1c71419829879e18ce2dd7249a4d00f Merge: 3376f41 10c8599 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Sat Dec 21 16:46:07 2013 +0100 Merge tag 'signed-s390-for-upstream' of git://github.com/agraf/qemu Patch queue for s390 - 2013-12-18 This covers mostly minor bug fixes and implements the SIGP START hypercall which allows to start a remote CPU without changing its state. Cornelia Huck (1): s390x/kvm: Fix diagnose handling. Thomas Huth (7): s390x/kvm: Removed duplicated SIGP defines s390x/kvm: Removed s390_store_status stub s390x/kvm: Fix coding style in handle_sigp() s390x/kvm: Implemented SIGP START s390x/kvm: Simplified the calculation of the SIGP order code s390x/kvm: Fixed condition code for unknown SIGP orders s390x/ioinst: CHSC has to set a condition code * tag 'signed-s390-for-upstream' of git://github.com/agraf/qemu: s390x/ioinst: CHSC has to set a condition code s390x/kvm: Fixed condition code for unknown SIGP orders s390x/kvm: Simplified the calculation of the SIGP order code s390x/kvm: Implemented SIGP START s390x/kvm: Fix coding style in handle_sigp() s390x/kvm: Removed s390_store_status stub s390x/kvm: Removed duplicated SIGP defines s390x/kvm: Fix diagnose handling. commit 3376f4151e4ce0534b35c49c56037cb347293c85 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Dec 11 07:56:47 2013 +0100 target-sh4: Use new qemu_ld/st opcodes Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 5f68f5ae444725de4f35d99f1026155fadaf514b Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Dec 11 08:35:27 2013 +0100 target-mips: Use new qemu_ld/st opcodes Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 8589467f9419b86644a1a5ccab670c948e148efd Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Tue Dec 10 10:35:28 2013 +0100 tcg/i386: fix a comment The comments apply to 8-bit stores, not 8-byte stores. Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 2a13f991123fa16841e6d94b02a9cc2c76d91725 Author: Corey Bryant <coreyb@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 18 11:48:11 2013 -0500 seccomp: exit if seccomp_init() fails This fixes a bug where we weren't exiting if seccomp_init() failed. Signed-off-by: Corey Bryant <coreyb@xxxxxxxxxxxxxxxxxx> Acked-by: Eduardo Otubo <otubo@xxxxxxxxxxxxxxxxxx> Acked-by: Paul Moore <pmoore@xxxxxxxxxx> commit 18da7f94cdce130f2a71387de4980ffa817181a1 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Dec 16 14:45:33 2013 +0800 commit: Remove unused check We support top == active for commit now, remove the check and add an assertion here. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4de43470f2f35762b4b3e6a59b4aed55e239024a Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Dec 16 14:45:32 2013 +0800 qemu-iotests: Update test cases for commit active Factor out commit test common logic into super class, and update test of committing the active image. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 20a63d2cec838c2dde4d246c4d7abe747d9b7a11 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Dec 16 14:45:31 2013 +0800 commit: Support commit active layer If active is top, it will be mirrored to base, (with block/mirror.c code), then the image is switched when user completes the block job. QMP documentation is updated. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 03544a6e9ecc1be115e8a29bd929f83b467d4816 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Dec 16 14:45:30 2013 +0800 block: Add commit_active_start() commit_active_start is implemented in block/mirror.c, It will create a job with "commit" type and designated base in block-commit command. This will be used for committing active layer of device. Sync mode is removed from MirrorBlockJob because there's no proper type for commit. The used information is is_none_mode. The common part of mirror_start and commit_active_start is moved to mirror_start_job(). Fix the comment wording for commit_start. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5bc361b8134eff68e2c40916d1cf58b3523d223b Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Dec 16 14:45:29 2013 +0800 mirror: Move base to MirrorBlockJob This allows setting the base before entering mirror_run, commit will make use of it. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f95c625ce4cb7863795fcc36502ac58a44fdb2f1 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Dec 16 14:45:28 2013 +0800 mirror: Don't close target Let reference count manage target and don't call bdrv_close here. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit de99c417f6208a64b68e3b35d2aecbca1f60eae0 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Dec 19 16:26:44 2013 +0100 qemu-iotests: drop duplicate virtio-blk initialization failure Commit 75884afd5c6c42e523b08565e289dbe319e17ad9 ("virtio-blk: Convert to QOM realize") dropped a duplicate error_report() call. Now we no longer get the following error message twice: QEMU_PROG: -drive if=virtio: Device initialization failed. Update qemu-iotests 051. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 917703c179d4483d050fe112a2a81acec3d6ffd7 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Dec 20 09:48:48 2013 +0800 vmdk: Allow vmdk_create to work with protocol This improves vmdk_create to use bdrv_* functions to replace qemu_open and other fd functions. The error handling are improved as well. One difference is that bdrv_pwrite will round up buffer to sectors, so for description file, an extra bdrv_truncate is used in the end to drop inding zeros. Notes: - A bonus bug fix is correct endian is used in initializing GD entries. - ROUND_UP and DIV_ROUND_UP are used where possible. I tested that new code produces exactly the same file as previously. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Tested-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b47053bd0359c68094d7a25a65687c0844771e34 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Dec 9 13:24:36 2013 +0800 vmdk: Check VMFS extent line field number VMFS extent line in description file should be with 4 fields: RW <size> VMFS "file-name.vmdk" Check the number explicitly and report error if offset is appended as FLAT, which should be invalid format. Reported-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8282db1b2e7394574cb55fcc608c5cb0df159d8f Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Tue Dec 17 13:56:06 2013 -0500 docs: updated qemu-img man page and qemu-doc to reflect VHDX support. The man page for qemu-img, and the qemu-doc, did not mention VHDX as a supported format. This adds in reference to VHDX in those documents. [Stefan Weil <sw@xxxxxxxxxxx> suggested s/Block Size/Block size/ for consistency. I have made this change. --Stefan] Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7e30e6a6746b417c7e0dbc9af009560fbb63f336 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Tue Dec 17 05:33:37 2013 -0500 block: vhdx - improve error message, and .bdrv_check implementation If there is a dirty log file to be replayed in a VHDX image, it is replayed in .vhdx_open(). However, if the file is opened read-only, then a somewhat cryptic error message results. This adds a more helpful error message for the user. If an image file contains a log to be replayed, and is opened read-only, the user is instructed to run 'qemu-img check -r all' on the image file. Running qemu-img check -r all will cause the image file to be opened r/w, which will replay the log file. If a log file replay is detected, this is flagged, and bdrv_check will increase the corruptions_fixed count for the image. [Fixed typo in error message that was pointed out by Eric Blake <eblake@xxxxxxxxxx>. --Stefan] Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 219c252193862898430e5dea5efb7447877aaa85 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Dec 17 08:57:10 2013 +0100 block/iscsi: Fix compilation for libiscsi 1.4.0 (API change) Function iscsi_read10_task got additional parameters starting with version libiscsi 1.5.0. libiscsi 1.4.0 is still widely used (Debian wheezy, jessie and other Linux distributions currently provide packages for QEMU which use it), so we still need support for this older API. Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c27de2a3e9c8664116287d639bacd600e61a6b45 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Dec 11 09:49:14 2013 +0100 qapi-schema: fix QEMU 1.8 references We are moving boldly on to QEMU 2.0 in the next release. Some patches written at a time where we assumed 1.8 would be the next version number managed to sneak in. s/1.8/2.0/ in qapi-schema.json Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 87b7f2f8c8da4d2da2728f0f1ad207973f1ea834 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Dec 10 13:27:01 2013 +0100 dataplane: replace hostmem with memory_region_find Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8c1b566fd165af6cb12d6ef69eb554a347641e20 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Dec 10 13:27:00 2013 +0100 dataplane: change vring API to use VirtQueueElement Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 781c117f3758bdb21e982d2aebba81febceccfe5 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Dec 10 13:26:59 2013 +0100 vring: factor common code for error exits Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4d684832e54afe971fd8f94cb830ec1e135648e7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Dec 10 13:26:58 2013 +0100 vring: create a common function to parse descriptors Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e50d7607f1800c9f9c576229c6119e4c82f456d6 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Sat Dec 14 01:29:28 2013 +0800 sheepdog: fix dynamic grow for running qcow2 format When running qcow2 over sheepdog, we might meet following problem qemu-system-x86_64: shrinking is not supported And cause IO errors to Guest. This is because we abuse bs->total_sectors, which is manipulated by generic block layer and race with sheepdog code. We should directly check if offset > vdi_size to dynamically enlarge the volume instead of 'offset > bs->total_sectors', which will cause problem when following case happens: vdi_size > offset > bs->total_sectors # then trigger sd_truncate() to shrink the volume wrongly. Cc: qemu-devel@xxxxxxxxxx Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reported-by: Hadrien KOHL <hadrien.kohl@xxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f8251db121c3f051b22a7536b97d160c30bcccd4 Merge: 3dc7e2a 5fe269b Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Dec 19 17:03:17 2013 -0800 Merge remote-tracking branch 'agraf/tags/signed-ppc-for-upstream' into staging Patch queue for ppc - 2013-12-20 Alexander Graf (3): PPC: Use default pci bus name for grackle and heathrow roms: Flush icache when writing roms to guest memory PPC: Add VSX to hflags Alexey Kardashevskiy (5): powerpc: add PVR mask support target-ppc: move POWER7+ to a separate family spapr-rtas: replace return code constants with macros spapr-rtas: add ibm, (get|set)-system-parameter spapr: make sure RMA is in first mode of first memory node Greg Kurz (1): target-ppc: add stubs for KVM breakpoints Paolo Bonzini (1): spapr: tie spapr-nvram to -pflash Paul Mackerras (1): spapr: limit numa memory regions by ram size Peter Crosthwaite (2): device_tree: s/qemu_devtree/qemu_fdt globally device_tree: qemu_fdt_setprop: Rename val_array arg Tom Musta (19): Declare and Enable VSX Add MSR VSX and Associated Exception Add VSX Instruction Decoders Add VSR to Global Registers Add lxvd2x Add stxvd2x Add xxpermdi Add lxsdx Add lxvdsx Add lxvw4x Add stxsdx Add stxvw4x Add VSX Scalar Move Instructions Add VSX Vector Move Instructions Add Power7 VSX Logical Instructions Add xxmrgh/xxmrgl Add xxsel Add xxspltw Add xxsldwi * agraf/tags/signed-ppc-for-upstream: (32 commits) spapr: limit numa memory regions by ram size spapr: make sure RMA is in first mode of first memory node device_tree: qemu_fdt_setprop: Rename val_array arg device_tree: s/qemu_devtree/qemu_fdt globally PPC: Add VSX to hflags Add xxsldwi Add xxspltw Add xxsel Add xxmrgh/xxmrgl Add Power7 VSX Logical Instructions Add VSX Vector Move Instructions Add VSX Scalar Move Instructions roms: Flush icache when writing roms to guest memory spapr: tie spapr-nvram to -pflash PPC: Use default pci bus name for grackle and heathrow spapr-rtas: add ibm, (get|set)-system-parameter spapr-rtas: replace return code constants with macros target-ppc: move POWER7+ to a separate family Add stxvw4x Add stxsdx ... commit 5fe269b16c6dc8f19da3e8c13d4c66958b00d2f0 Author: Paul Mackerras <paulus@xxxxxxxxx> Date: Mon Nov 25 14:14:51 2013 +1100 spapr: limit numa memory regions by ram size This makes sure that all NUMA memory blocks reside within RAM or have zero length. Reviewed-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit c4177479069d6d643e0e0f90595795406db7efbf Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Nov 25 14:14:50 2013 +1100 spapr: make sure RMA is in first mode of first memory node The SPAPR specification says that the RMA starts at the LPAR's logical address 0 and is the first logical memory block reported in the LPARâ??s device tree. So SLOF only maps the first block and that block needs to span the full RMA. This makes sure that the RMA area is where SLOF expects it. Reviewed-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit be5907f2cc6d075b1d687e51a0e0d8ac074a7ac8 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Nov 11 18:15:21 2013 +1000 device_tree: qemu_fdt_setprop: Rename val_array arg Looking at the implementation, this doesn't really have a lot to do with arrays. Its just a pointer to a buffer and is passed through to the wrapped fn (qemu_fdt_setprop) unchanged. So rename to make it consistent with libfdt, which in the wrapped function just calls it "val". Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5a4348d1114b7f3dccc578e39e33ef07a1cfabc7 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Nov 11 18:14:41 2013 +1000 device_tree: s/qemu_devtree/qemu_fdt globally The qemu_devtree API is a wrapper around the fdt_ set of APIs. Rename accordingly. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> [agraf: also convert hw/arm/virt.c] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit c2b63f03977a84d0584d82be6981e4eb5f4faacd Author: Alexander Graf <agraf@xxxxxxx> Date: Wed Dec 18 09:21:02 2013 +0100 PPC: Add VSX to hflags We generate different code depending on whether MSR_VSX is set or clear, so it needs to be part of our hflags too which indicate whether we're still in the same translation block cache bucket. Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit acc429682c71968b8aef37822879dda3b54dda96 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:23 2013 -0500 Add xxsldwi This patch adds the VSX Shift Left Double by Word Immediate (xxsldwi) instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 76c15fe0bdaa5b0c4b458c2b291e27a24494a77f Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:22 2013 -0500 Add xxspltw This patch adds the VSX Splat Word (xxsplatw) instruction. This is the first instruction to use the UIM immediate field and consequently a decoder is also added. V2: reworked implementation per Richard Henderson's comments. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 551e3ef72e59d3975073e2ea3aaf2f7508323063 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:21 2013 -0500 Add xxsel This patch adds the VSX Select (xxsel) instruction. The xxsel instruction has four VSR operands. Thus the xC instruction decoder is added. The xxsel instruction is massively overloaded in the opcode table since only bits 26 and 27 are opcode bits. This overloading is done in matrix fashion with two macros (GEN_XXSEL_ROW and GEN_XX_SEL). V2: (1) eliminated unecessary XXSEL macro (2) tighter implementation using tcg_gen_andc_i64. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit ce577d2e48e756f17d4c4a6c6bdc96924a157ca0 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:20 2013 -0500 Add xxmrgh/xxmrgl This patch adds the VSX Merge High Word and VSX Merge Low Word instructions. V2: Now implemented using deposit (per Richard Henderson's comment) Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 79ca8a6a76517edb4f54793c638259b9e6dfce66 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:19 2013 -0500 Add Power7 VSX Logical Instructions This patch adds the VSX logical instructions that are defined by the Version 2.06 Power ISA (aka Power7): - xxland - xxlandc - xxlor - xxlxor - xxlnor Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit be574920b1285c0505ad116795d3a646422a1b8e Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:18 2013 -0500 Add VSX Vector Move Instructions This patch adds the vector move instructions: - xvabsdp - Vector Absolute Value Double-Precision - xvnabsdp - Vector Negative Absolute Value Double-Precision - xvnegdp - Vector Negate Double-Precision - xvcpsgndp - Vector Copy Sign Double-Precision - xvabssp - Vector Absolute Value Single-Precision - xvnabssp - Vector Negative Absolute Value Single-Precision - xvnegsp - Vector Negate Single-Precision - xvcpsgnsp - Vector Copy Sign Single-Precision V3: Per Paolo Bonzini's suggestion, used a temporary for the sign mask and andc. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit df020ce07045413ab3205916a3cde64bb150694c Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:17 2013 -0500 Add VSX Scalar Move Instructions This patch adds the VSX scalar move instructions: - xsabsdp (Scalar Absolute Value Double-Precision) - xsnabspd (Scalar Negative Absolute Value Double-Precision) - xsnegdp (Scalar Negate Double-Precision) - xscpsgndp (Scalar Copy Sign Double-Precision) A common generator macro (VSX_SCALAR_MOVE) is added since these instructions vary only slightly from each other. Macros to support VSX XX2 and XX3 form opcodes are also added. These macros handle the overloading of "opcode 2" space (instruction bits 26:30) caused by AX and BX bits (29 and 30, respectively). V3: Per feedback from Paolo Bonzini, moved the sign mask into a temporary and used andc. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 582b55a96ac4f66cea64d82e47651bd5ef38a8ec Author: Alexander Graf <agraf@xxxxxxx> Date: Wed Dec 11 14:17:44 2013 +0100 roms: Flush icache when writing roms to guest memory We use the rom infrastructure to write firmware and/or initial kernel blobs into guest address space. So we're basically emulating the cache off phase on very early system bootup. That phase is usually responsible for clearing the instruction cache for anything it writes into cachable memory, to ensure that after reboot we don't happen to execute stale bits from the instruction cache. So we need to invalidate the icache every time we write a rom into guest address space. We do not need to do this for every DMA since the guest expects it has to flush the icache manually in that case. This fixes random reboot issues on e5500 (booke ppc) for me. Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3978b863a5d8ac1c02848bf57d0a7f7067826a8a Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 10:27:40 2013 +0100 spapr: tie spapr-nvram to -pflash spapr-nvram's drive property is currently connected to a non-existent "-machine nvram=<drivename>" option. Instead, tie it to -pflash like other non-volatile RAM devices. This provides the following possibilities for adding a backend for the sPAPR non-volatile RAM: * -pflash filename * -drive if=pflash,file=filename,format=raw,... * -drive if=none,file=filename,format=raw,id=foo,... -global spapr-nvram.drive=foo Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 8a0e11045d5f50d300e0ab1ba05f4c8217fb5dcb Author: Alexander Graf <agraf@xxxxxxx> Date: Wed Dec 4 12:42:32 2013 +0100 PPC: Use default pci bus name for grackle and heathrow There's no good reason to call our bus "pci" rather than let the default bus name take over ("pci.0"). The big downside to calling it different from anyone else is that tools that pass -device get confused. They are looking for a bus "pci.0" rather than "pci". To make life easier for everyone, let's just drop the name override. Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3ada6b113726ae554154f6e5367bf4b4ed110bbe Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Nov 19 15:28:55 2013 +1100 spapr-rtas: add ibm, (get|set)-system-parameter This adds very basic handlers for ibm,get-system-parameter and ibm,set-system-parameter RTAS calls. The only parameter handled at the moment is "platform-processor-diagnostics-run-mode" which is always disabled and does not support changing. This is expected to make "ppc64_cpu --run-mode=1" happy. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> [agraf: s/papameter/parameter/g] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit a64d325df1ce9b554e15d612b80775159cc4d7a6 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Nov 19 15:28:54 2013 +1100 spapr-rtas: replace return code constants with macros Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit b650d6a2fcb77e2e42872ebd102ba387d547ab77 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Nov 19 12:39:15 2013 +1100 target-ppc: move POWER7+ to a separate family So far POWER7+ was a part of POWER7 family. However it has a different PVR base value so in order to support PVR masks, it needs a separate family class. This adds a new family class, PVR base and mask values and moves Power7+ v2.1 CPU to a new family. The class init function is copied from the POWER7 family. This defines a firmware name for the new family as "PowerPC,POWER7+" instead of previously used "PowerPC,POWER7" from the POWER7 family. The reason for that is that the Sapphire firmware (a h0st firmware) uses "PowerPC,POWER7+" already and since no specification defines exactly the CPU nodes naming in the device tree, we better stay in sync with the host firmware. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 86e61ce3d0e4806519c79f2555f20b7b3283bdab Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:16 2013 -0500 Add stxvw4x This patch adds the Store VSX Vector Word*4 Indexed (stxvw4x) instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 9231ba9ee9c7d68364a28657109d2f7c32e12971 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:15 2013 -0500 Add stxsdx This patch adds the Store VSX Scalar Doubleword Indexed (stxsdx) instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 897e61d13777a5995d3cd12fcaf44eb4bbb5439c Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:14 2013 -0500 Add lxvw4x This patch adds the Load VSX Vector Word*4 Indexed (lxvw4x) instruction. V2: changed to use deposit_i64 per Richard Henderson's review. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit ca03b46765d4633f5746764696058b0cb33ac487 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:13 2013 -0500 Add lxvdsx This patch adds the Load VSX Vector Doubleword & Splat Indexed (lxvdsx) instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit fa1832d7e2fccfe3ea55d2885c023daa285342d4 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:12 2013 -0500 Add lxsdx This patch adds the Load VSX Scalar Doubleowrd Indexed (lxsdx) instruction. The lower 8 bytes of the target register are undefined; this implementation leaves those bytes unaltered. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit cd73f2c992765141b3497551ebdf841b26c238ca Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Oct 22 22:09:35 2013 +1100 Add xxpermdi This patch adds the xxpermdi instruction. The instruction uses bits 22, 23, 29 and 30 for non-opcode fields (DM, AX and BX). This results in overloading of the opcode table with aliases, which can be seen in the GEN_XX3FORM_DM macro. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit fbed2478e9ba22f091e3842123252a902dc5b98d Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Oct 22 22:09:00 2013 +1100 Add stxvd2x This patch adds the stxvd2x instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 304af367427301697df32112c50448b7d55c7054 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Oct 22 22:08:32 2013 +1100 Add lxvd2x This patch adds the lxvd2x instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 472b24ce2b4f22363ec9a556e479be6ad5180727 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Oct 22 22:07:41 2013 +1100 Add VSR to Global Registers This patch adds VSX VSRs to the the list of global register indices. More specifically, it adds the lower halves of the first 32 VSRs to the list of global register indices. The upper halves of the first 32 VSRs are already defined via cpu_fpr[]. And the second 32 VSRs are already defined via the cpu_avrh[] and cpu_avrl[] arrays. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit f9fc6d810f6777a253337ba050639d266e9a3538 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Oct 22 22:06:46 2013 +1100 Add VSX Instruction Decoders This patch adds decoders for the VSX fields XT, XS, XA, XB and DM. The first four are split fields and a general helper for these types of fields is also added. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 1f29871cb7518692cf5c1fa8c19b117c789ff7f0 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Oct 22 22:06:17 2013 +1100 Add MSR VSX and Associated Exception This patch adds support for the VSX bit of the PowerPC Machine State Register (MSR) as well as the corresponding VSX Unavailable exception. The VSX bit is added to the defined bits masks of the Power7 and Power8 CPU models. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 74f239975501cf0ad886a5d40ce40aecbb9dc0b2 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Oct 22 22:05:46 2013 +1100 Declare and Enable VSX This patch adds the flag POWERPC_FLAG_VSX to the list of defined flags and also adds this flag to the list of supported features of the Power7 and Power8 CPUs. Additionally, the VSX instructions are added to the list of TCG-enabled instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3bc9ccc054574820190f0e6bbfd299bc2d42323d Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Sep 27 18:05:03 2013 +1000 powerpc: add PVR mask support IBM POWERPC processors encode PVR as a CPU family in higher 16 bits and a CPU version in lower 16 bits. Since there is no significant change in behavior between versions, there is no point to add every single CPU version in QEMU's CPU list. Also, new CPU versions of already supported CPU won't break the existing code. This adds PVR value/mask support for KVM, i.e. for -cpu host option. As CPU family class name for POWER7 is "POWER7-family", there is no need to touch aliases. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit c65f9a07a78afa3c98712f6192962ffd6babe339 Author: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 11 14:15:34 2013 +0100 target-ppc: add stubs for KVM breakpoints The latest update to v3.13-rc3 (bf63839f) breaks the ppc build with KVM: kvm-all.o: In function `kvm_update_guest_debug': kvm-all.c:1910: undefined reference to `kvm_arch_update_guest_debug' kvm-all.o: In function `kvm_insert_breakpoint': kvm-all.c:1937: undefined reference to `kvm_arch_insert_sw_breakpoint' kvm-all.c:1945: undefined reference to `kvm_arch_insert_hw_breakpoint' kvm-all.o: In function `kvm_remove_breakpoint': kvm-all.c:1977: undefined reference to `kvm_arch_remove_sw_breakpoint' kvm-all.c:1985: undefined reference to `kvm_arch_remove_hw_breakpoint' kvm-all.o: In function `kvm_remove_all_breakpoints': kvm-all.c:2009: undefined reference to `kvm_arch_remove_sw_breakpoint' kvm-all.c:2006: undefined reference to `kvm_arch_remove_sw_breakpoint' kvm-all.c:2017: undefined reference to `kvm_arch_remove_all_hw_breakpoints' We need stubs until something gets implemented. Signed-off-by: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3dc7e2a3fedafc2f951bd62300b342c84e3606f8 Merge: f46e720 84291fe Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Dec 19 11:56:33 2013 -0800 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20131217' into staging target-arm queue: * AES instruction support for 32 bit ARM * pflash01: much better emulation of 2x16bit and similar configs where multiple flash devices are banked together * fixed CBAR handling on Zynq, Highbank * initial AArch64 KVM control support * first two chunks of patches for A64 instruction emulation * new board: canon-a1100 (Canon DIGIC SoC) * new board: cubieboard (Allwinner A10 SoC) # gpg: Signature made Tue 17 Dec 2013 12:18:39 PM PST using RSA key ID 14360CDE # gpg: Can't check signature: public key not found # By Alexander Graf (14) and others # Via Peter Maydell * pmaydell/tags/pull-target-arm-20131217: (62 commits) MAINTAINERS: add myself to maintain allwinner-a10 hw/arm: add cubieboard support hw/arm: add allwinner a10 SoC support hw/intc: add allwinner A10 interrupt controller hw/timer: add allwinner a10 timer vmstate: Add support for an array of ptimer_state * MAINTAINERS: Document 'Canon DIGIC' machine hw/arm/digic: add NOR ROM support hw/arm/digic: add UART support hw/arm/digic: add timer support hw/arm/digic: prepare DIGIC-based boards support hw/arm: add very initial support for Canon DIGIC SoC target-arm: A64: add support for logical (immediate) insns target-arm: A64: add support for 1-src CLS insn host-utils: add clrsb32/64 - count leading redundant sign bits target-arm: A64: add support for bitfield insns target-arm: A64: add support for 1-src REV insns target-arm: A64: add support for 1-src RBIT insn target-arm: A64: add support for 1-src data processing and CLZ target-arm: A64: add support for 2-src shift reg insns ... Message-id: 1387312160-12318-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 10c8599a49f99180c2f79596325a5e856cdac59f Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 19:50:01 2013 +0100 s390x/ioinst: CHSC has to set a condition code I missed to set the CC in the CHSC instruction when I refactored the CC setting in the IO instructions with the following commit: 5d9bf1c07c1369ab3506fc82cc65a10f4415d867 s390/ioinst: Moved the CC setting to the IO instruction handlers This patch now restores the correct behaviour of CHSC by setting the condition code 0 at the end of the instruction. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3796f0e1cda41eacf4fc915e7edaf54f2279466c Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 14:22:09 2013 +0100 s390x/kvm: Fixed condition code for unknown SIGP orders If SIGP is called with an unknown order code, it has to return CC1 instead of CC3 and set the "invalid order" bit in the return status. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit b8031adba791325907d8a9e19af8d483996974fd Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 14:22:08 2013 +0100 s390x/kvm: Simplified the calculation of the SIGP order code We've already got a helper function for calculating the base/displacement of RS formatted instructions, so we can get rid of the manual calculation of the SIGP order code. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit b20a461fcd55d2b05e729c587244eddc60b9527f Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 14:22:07 2013 +0100 s390x/kvm: Implemented SIGP START This patch adds the missing START order to the SIGP instruction handler. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 0b9972a2483b27824f3ec71b7b8b4a5961614216 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 14:22:06 2013 +0100 s390x/kvm: Fix coding style in handle_sigp() To make scripts/checkpatch.pl happy for the following patches, the coding style in handle_sigp() has to be fixed first. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Acked-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit cd7a0f4cf905c421743357a55f107b86ee1ded9d Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 14:22:05 2013 +0100 s390x/kvm: Removed s390_store_status stub The SIGP order STORE STATUS AT ADDRESS will be handled in kernel space, so we do not need the stub in QEMU anymore. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 4f91e0b5d8b116c16964926a103e01623dbd81b6 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 14:22:04 2013 +0100 s390x/kvm: Removed duplicated SIGP defines The SIGP order defines are also available in cpu.h, so there is no need to re-define them in kvm.c. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 638129ff475dd3b4c0e57e0be598efe41461e9b3 Author: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Date: Tue Dec 17 18:27:33 2013 +0100 s390x/kvm: Fix diagnose handling. The instruction intercept handler for diagnose used only the displacement when trying to calculate the function code. This is only correct for base 0, however; we need to perform a complete base/displacement address calculation and use bits 48-63 as the function code. Reviewed-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 6bdf863d942a267f984e4bd82be80cb2ac5b9915 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Dec 17 20:05:13 2013 +0100 kvm: x86: Separately write feature control MSR on reset If the guest is running in nested mode on system reset, clearing the feature MSR signals the kernel to leave this mode. Recent kernels processes this properly, but leave the VCPU state undefined behind. It is the job of userspace to bring it to a proper shape. Therefore, write this specific MSR first so that no state transfer gets lost. This allows to cleanly reset a guest with VMX in use. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 84291fe7a34f8c2d595bcdb77ff506d1d60fcd7c Author: liguang <lig.fnst@xxxxxxxxxxxxxx> Date: Tue Dec 17 19:42:38 2013 +0000 MAINTAINERS: add myself to maintain allwinner-a10 Signed-off-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Message-id: 1387159292-10436-7-git-send-email-lig.fnst@xxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a01c005327007562f3313f3efe235f77309db809 Author: liguang <lig.fnst@xxxxxxxxxxxxxx> Date: Tue Dec 17 19:42:38 2013 +0000 hw/arm: add cubieboard support Signed-off-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1387159292-10436-6-git-send-email-lig.fnst@xxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 9158fa5451b5929f1d882ef08c30b4f4aadd6945 Author: liguang <lig.fnst@xxxxxxxxxxxxxx> Date: Tue Dec 17 19:42:38 2013 +0000 hw/arm: add allwinner a10 SoC support Signed-off-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1387159292-10436-5-git-send-email-lig.fnst@xxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c3931ee8b42def4089831b4d79e93c5b05667ff6 Author: liguang <lig.fnst@xxxxxxxxxxxxxx> Date: Tue Dec 17 19:42:38 2013 +0000 hw/intc: add allwinner A10 interrupt controller Signed-off-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1387159292-10436-4-git-send-email-lig.fnst@xxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3589de8c971df29562fcaf2d9b04f0886aff4866 Author: liguang <lig.fnst@xxxxxxxxxxxxxx> Date: Tue Dec 17 19:42:37 2013 +0000 hw/timer: add allwinner a10 timer Signed-off-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1387159292-10436-3-git-send-email-lig.fnst@xxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a1f05e79f2c207bded5efc23e8c6b1ca58161a8e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:37 2013 +0000 vmstate: Add support for an array of ptimer_state * Add support for defining a vmstate field which is an array of pointers to structures, and use this to define a VMSTATE_PTIMER_ARRAY() which allows an array of ptimer_state* to be used by devices. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1387159292-10436-2-git-send-email-lig.fnst@xxxxxxxxxxxxxx commit 9082f12173d407290bcec9f4ae84242972b2480c Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:37 2013 +0000 MAINTAINERS: Document 'Canon DIGIC' machine Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Message-id: 1387188908-754-7-git-send-email-antonynpavlov@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 04234a37b1a89f3f119ef59c143a7b2e0a1ab40e Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:37 2013 +0000 hw/arm/digic: add NOR ROM support Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Message-id: 1387188908-754-6-git-send-email-antonynpavlov@xxxxxxxxx [PMM: don't try to load ROM blob if qtest_enabled()] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 142593c9d700e02b316443bcaa99226720242625 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:37 2013 +0000 hw/arm/digic: add UART support Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1387188908-754-5-git-send-email-antonynpavlov@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 576e99cb951e9c1a289555a31cfd5b9040e80037 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:36 2013 +0000 hw/arm/digic: add timer support Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1387188908-754-4-git-send-email-antonynpavlov@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d91fd756fb2af16584d338c4ef715f40ea49924c Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:36 2013 +0000 hw/arm/digic: prepare DIGIC-based boards support Also this patch adds initial support for Canon PowerShot A1100 IS compact camera. Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Message-id: 1387188908-754-3-git-send-email-antonynpavlov@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c6f09eb4a0ea14b68f2745e87641c79a51057959 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:36 2013 +0000 hw/arm: add very initial support for Canon DIGIC SoC DIGIC is Canon Inc.'s name for a family of SoC for digital cameras and camcorders. There is no publicly available specification for DIGIC chips. All information about DIGIC chip internals is based on reverse engineering efforts made by CHDK (http://chdk.wikia.com) and Magic Lantern (http://www.magiclantern.fm) projects contributors. Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1387188908-754-2-git-send-email-antonynpavlov@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 71b46089303beb7d52a0b9397f5c286a7e66275f Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:36 2013 +0000 target-arm: A64: add support for logical (immediate) insns This patch adds support for C3.4.4 Logical (immediate), which include AND, ANDS, ORR, EOR. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted to new decoder, function renaming, removed a TCG temp variable] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> [PMM: cleaned up some unnecessary code in logic_imm_decode_wmask and added clarifying commentary on what it's actually doing. Dropped an ext32u that's not needed if we've just done an AND.] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e80c502023d332fb60866eb378e715ab3f158b72 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:35 2013 +0000 target-arm: A64: add support for 1-src CLS insn this patch adds support for the CLS instruction. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit afd3fe4ce56e6fb0d0384ddb8e3c4fac01935c37 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:35 2013 +0000 host-utils: add clrsb32/64 - count leading redundant sign bits this patch introduces wrappers for the clrsb builtins, which count the leading redundant sign bits. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 880777423525685ccaf1bf6967b27cc8a38e5f96 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:35 2013 +0000 target-arm: A64: add support for bitfield insns This patch implements the C3.4.2 Bitfield instructions: SBFM, BFM, UBFM. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 453232096c4e93ec871f7ff97abfc0bf54258c95 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:35 2013 +0000 target-arm: A64: add support for 1-src REV insns This adds support for C5.6.149 REV, C5.6.151 REV32, C5.6.150 REV16. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 82e14b02a2bd822af6db2ef728a1698b9a24e50c Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:35 2013 +0000 target-arm: A64: add support for 1-src RBIT insn This adds support for the C5.6.147 RBIT instruction. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted to new decoder, use bswap64, make RBIT part standalone from the rest of the patch, splitting REV into a separate patch] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 680ead216e666e5cc192fe86adf30563999a5dd8 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:35 2013 +0000 target-arm: A64: add support for 1-src data processing and CLZ This patch adds support for decoding 1-src data processing insns, and the first user, C5.6.40 CLZ (count leading zeroes). Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6c1adc919b6a81e008b919c53902b4877ef4d737 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:34 2013 +0000 target-arm: A64: add support for 2-src shift reg insns This adds 2-src variable shift register instructions: C5.6.115 LSLV, C5.6.118 LSRV, C5.6.17 ASRV, C5.6.154 RORV Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted to new decoder, use enums for shift types] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8220e911c240df5b4b2a1473f0ba9feddc154c45 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:34 2013 +0000 target-arm: A64: add support for 2-src data processing and DIV This patch adds support for decoding 2-src data processing insns, and the first users, UDIV and SDIV. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted to new decoder adding the 2-src decoding level, always zero-extend result in 32bit mode] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e801de93d0155c0c14d6b4dea1b3577ca36e214b Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:34 2013 +0000 target-arm: A64: add support for EXTR This patch adds emulation support for the EXTR instruction. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted for new decoder, removed a few temporaries, fixed the 32bit bug, added checks for more unallocated cases] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 15bfe8b650a0fd40940cb8f4bfc8c57d6940173e Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:34 2013 +0000 target-arm: A64: add support for ADR and ADRP Add support for the instructions described in "C3.4.6 PC-rel. addressing" (ADR and ADRP). Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted to new decoder structure] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 832ffa1ce073f010fd1c766361b2e35ce3f105d3 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:34 2013 +0000 target-arm: A64: add support for logical (shifted register) Add support for the instructions described in "C3.5.10 Logical (shifted register)". We store the flags in the same locations as the 32 bit decoder. This is slightly awkward when calculating 64 bit results, but seems a better tradeoff than having to rework the whole 32 bit decoder and also make 32 bit result calculation in A64 awkward. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: some refactoring to avoid hidden allocation of temps, rework flags, use enums for shift types, renaming of functions] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> [PMM: Use TCG's andc/orc/eqv ops rather than manually inverting] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e952d8c77a59dd31b5a4332f19e19f43dc90bd68 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:33 2013 +0000 target-arm: A64: add support for conditional select This patch adds support for the instruction group "C3.5.6 Conditional select": CSEL, CSINC, CSINV, CSNEG. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> [PMM: Improved code generated in the nomatch case as per RTH suggestions] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 60e5338831e35e7b407b1670f5fe936859ea5490 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:33 2013 +0000 target-arm: A64: add support for compare and branch imm This patch adds emulation for the compare and branch insns, CBZ and CBNZ. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted to new decoder, compare with immediate 0, introduce read_cpu_reg to get the 0 extension on (!sf)] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit db0f79589c16fe7f697716f4cadc903a2575ef55 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:33 2013 +0000 target-arm: A64: add support for 'test and branch' imm This patch adds emulation for the test and branch insns, TBZ and TBNZ. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted for new decoder always compare with 0 remove a TCG temporary ] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 39fb730aed8c5f7b0058845cb9feac0d4b177985 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:33 2013 +0000 target-arm: A64: add support for conditional branches This patch adds emulation for the conditional branch (b.cond) instruction. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted to new decoder structure, reused arm infrastructure for checking the flags] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit b001c8c3d6855b0b52fc0fdd63b5a93fd326bf0c Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:33 2013 +0000 target-arm: A64: add support for BR, BLR and RET insns Implement BR, BLR and RET. This is all of the 'unconditional branch (register)' instruction category except for ERET and DPRS (which are system mode only). Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: reimplemented on top of new decoder structure] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 11e169de9940b9dc057e534ecf864c542fafb425 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:32 2013 +0000 target-arm: A64: add support for B and BL insns Implement the B and BL instructions (PC relative branches and calls). For convenience in managing TCG temporaries which might be generated if a source register is the zero-register XZR, we provide a simple mechanism for creating a new temp which is automatically freed at the end of decode of the instruction. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: renamed functions, adapted to new decoder layout] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 87462e0f41fccc353f9c902caed563ab7cbdd8ed Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:32 2013 +0000 target-arm: A64: expand decoding skeleton for system instructions Decode the various kinds of system instructions: hints (HINT), which include NOP, YIELD, WFE, WFI, SEV, SEL sync instructions, which include CLREX, DSB, DMB, ISB msr_i, which move immediate to processor state field sys, which include all SYS and SYSL instructions msr, which move from a gp register to a system register mrs, which move from a system register to a gp register Provide implementations where they are trivial nops. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit ad7ee8a290d08a2fe9d408af2461d1f583d96f7d Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:32 2013 +0000 target-arm: A64: provide skeleton for a64 insn decoding Provide a skeleton for a64 instruction decoding in translate-a64.c, by dividing instructions into the classes defined by the ARM Architecture Reference Manual(DDI0487A_a) section C3. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit d3e35a1fe4562ee3f9f1af91ab02d62cf31b9488 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:32 2013 +0000 target-arm: A64: add stubs for a64 specific helpers We will need helpers that only make sense with AArch64. Add helper-a64.{c,h} files as stubs that we can fill with these helpers in the following patches. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6a66942735569ec7f8b761c1205e6f4c50962fe4 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:32 2013 +0000 target-arm: Support fp registers in gdb stub Register the aarch64-fpu XML and implement the necessary read/write handlers so we can support reading and writing of FP registers in the gdb stub. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f903fa22f4d7f3a20c4d0f42e7585ed80a3ec051 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:31 2013 +0000 target-arm: A64: provide functions for accessing FPCR and FPSR The information which AArch32 holds in the FPSCR is split for AArch64 into two logically distinct registers, FPSR and FPCR. Since they are carefully arranged to use non-overlapping bits, we leave the underlying state in the same place, and provide accessor functions which just update the appropriate bits via vfp_get_fpscr() and vfp_set_fpscr(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5ce4f35781028ce1aee3341e6002f925fdc7aaf3 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:31 2013 +0000 target-arm: A64: add set_pc cpu method When executing translation blocks we need to be able to recover our program counter. Add a method to set it for AArch64 CPUs. This covers user-mode, but for system mode emulation we will need to check if the CPU is in an AArch32 execution state. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 40f860cd6c1aa0d3399e3f8158f20bdc5b2bfbfe Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:31 2013 +0000 target-arm: Split A64 from A32/T32 gen_intermediate_code_internal() The A32/T32 gen_intermediate_code_internal() is complicated because it has to deal with: * conditionally executed instructions * Thumb IT blocks * kernel helper page * M profile exception-exit special casing None of these apply to A64, so putting the "this is A64 so call the A64 decoder" check in the middle of the A32/T32 loop is confusing and means the A64 decoder's handling of things like conditional jump and singlestepping has to take account of the conditional-execution jumps the main loop might emit. Refactor the code to give A64 its own gen_intermediate_code_internal function instead. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 013424d436b83f7ba8366b1d40bf82c4f6716f5e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:31 2013 +0000 default-configs: Add config for aarch64-softmmu Add a config for aarch64-softmmu; this enables building of this target. The resulting executable doesn't know about any 64 bit CPUs, but all the 32 bit CPUs and board models work. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1385645602-18662-8-git-send-email-peter.maydell@xxxxxxxxxx Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 4d9ebf751a5a98e5dc2e26baf2344e744f4fa7b9 Author: Mian M. Hamayun <m.hamayun@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 19:42:30 2013 +0000 hw/arm/boot: Add boot support for AArch64 processor This commit adds support for booting a single AArch64 CPU by setting appropriate registers. The bootloader includes placeholders for Board-ID that are used to implement uniform indexing across different bootloaders. Signed-off-by: Mian M. Hamayun <m.hamayun@xxxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1385645602-18662-7-git-send-email-peter.maydell@xxxxxxxxxx [PMM: * updated to use ARMInsnFixup style bootloader fragments * dropped virt.c additions * use runtime checks for "is this an AArch64 core" rather than ifdefs * drop some unnecessary setting of registers in reset hook ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> commit 47b1da8134610c10a672b249808dbc763308668e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:30 2013 +0000 hw/arm/boot: Allow easier swapping in of different loader code For AArch64 we will obviously require a different set of primary and secondary boot loader code fragments. However currently we hardcode the offsets into the loader code where we must write the entrypoint and other data into arm_load_kernel(). This makes it hard to substitute a different loader fragment, so switch to a more flexible scheme where instead of a raw array of instructions we use an array of (instruction, fixup-type) pairs that indicate which words need special action or data written into them. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1385645602-18662-6-git-send-email-peter.maydell@xxxxxxxxxx Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 70a5f682f34c04d13164eb0d55241b7378f02030 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:30 2013 +0000 configure: Enable KVM for aarch64 host/target combination Enable KVM if the host and target CPU are both aarch64. Note that host aarch64 + target arm is not valid for KVM acceleration: the 64 bit kernel does not support the ioctl interface for 32 bit CPUs. 32 bit VMs on 64 bit hosts need to be created using the 64 bit ioctl interface; when QEMU supports this it will be on the arch64-softmmu target with a -cpu parameter for a 32 bit CPU, which is still an aarch64/aarch64 combination as far as configure is concerned. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1385645602-18662-5-git-send-email-peter.maydell@xxxxxxxxxx Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> commit 26861c7ce06c055786323ff4c65af74d735d1c19 Author: Mian M. Hamayun <m.hamayun@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 19:42:30 2013 +0000 target-arm: Add minimal KVM AArch64 support Add the bare minimum set of functions needed for control of an AArch64 KVM vcpu: * CPU initialization * minimal get/put register functions which only handle the basic state of the CPU Signed-off-by: Mian M. Hamayun <m.hamayun@xxxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1385645602-18662-4-git-send-email-peter.maydell@xxxxxxxxxx [PMM: significantly overhauled; most notably: * code lives in kvm64.c rather than using #ifdefs * support '-cpu host' rather than implicitly using whatever the host's CPU is regardless of what the user requests * fix bug attempting to get/set nonexistent X[31] * fix bug writing 64 bit kernel pstate into uint32_t env field ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> commit d356312fdc8640af929e0dbab61c6e514d47feb8 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:30 2013 +0000 target-arm: Clean up handling of AArch64 PSTATE The env->pstate field is a little odd since it doesn't strictly speaking represent an architectural register. However it's convenient for QEMU to use it to hold the various PSTATE architectural bits in the same format the architecture specifies for SPSR registers (since this is the same format the kernel uses for signal handlers and the KVM register). Add some structure to how we deal with it: * document what env->pstate is * add some #defines for various bits in it * add helpers for reading/writing it taking account of caching of NZCV, and use them where appropriate * reset it on startup Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1385645602-18662-3-git-send-email-peter.maydell@xxxxxxxxxx Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> commit b197ebd410f0298ec078c3048f9cfb9f6bfc3b3c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:29 2013 +0000 target-arm/kvm: Split 32 bit only code into its own file Split ARM KVM support code which is 32 bit specific out into its own file, which we only compile on 32 bit hosts. This will give us a place to add the 64 bit support code without adding lots of ifdefs to kvm.c. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1385645602-18662-2-git-send-email-peter.maydell@xxxxxxxxxx Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> commit 387f980676aedcc67baddbf5fd1c9169f331f30b Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:29 2013 +0000 ARM: arm_cpu_reset: make it possible to use high vectors for reset_exc If hivecs are being used on reset, the CPU should come out of reset at the hivecs reset vector (0xFFFF0000) Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 3afc69c4f58f60aa2bbee7b91574a4eb414b1c23.1387160489.git.peter.crosthwaite@xxxxxxxxxx [ PC Changes: * Fixed Grammar error in commit message * Elaborated commit message. ] Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 68e0a40a5342e798a76ff4c9bf33837e30099ef7 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:29 2013 +0000 ARM: cpu: add "reset_hivecs" property Add an ARM CPU property for the reset value of hivecs as it is a board/SoC configurable setting. The existence of the property is conditional on the ARM CPU not being M class. Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: b04216c6bda4bd163f44a55bba552d0e8267481f.1387160489.git.peter.crosthwaite@xxxxxxxxxx [ PC Changes: * Elaborated commit message * refactored to use qdev_property_add_static ] Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e2cddeeb97a47cd58384cfd86ae79c9bbe829255 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:29 2013 +0000 arm/highbank.c: Fix MPCore periphbase name GIC_BASE_ADDR is not the base address of the GIC. Its clear from the code that this is the base address of the MPCore. Rename to MPCORE_PERIPHBASE accordingly. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 90798bd3507205c16238b8b19a1a58c5437cf7ca.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c25771281ea17c2a09c86ac6a74672f2ec297f8d Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:29 2013 +0000 arm/xilinx_zynq: Implement CBAR initialisation Fix the CBAR initialisation by using the newly defined static property. Zynq will now correctly init the CBAR to the SCU base address. Needed to boot Linux on the xilinx_zynq machine model. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 8db7d57ebe5418fed397fcc86ea719f98446c178.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d8bbdcf8d6cb71735014dbd22baf274aea46066f Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:28 2013 +0000 arm/xilinx_zynq: Use object_new() rather than cpu_arm_init() To allow the machine model to set device properties before CPU realization. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: e57658b4506b26ab6b6fadbe6d7827f669f51895.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c0f1ead985e024dd8d01bba650bc753083a2cc2a Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:28 2013 +0000 arm/highbank: Fix CBAR initialisation Fix the CBAR initialisation by using the newly defined static property. CBAR is now set before realization, so the intended value is now actually used. So I have kind of tested this. I booted an ARM kernel on Highbank with the stock Highbank DTB. It doesn't boot (and I will be doing something wrong), but before this patch I got this: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 0 at /workspaces/pcrost/public/linux2.git/arch/arm/mm/ioremap.c:301 __arm_ioremap_pfn_caller+0x180/0x198() CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 3.13.0-rc1-next-20131126-dirty #2 [<c0015164>] (unwind_backtrace) from [<c00118c0>] (show_stack+0x10/0x14) [<c00118c0>] (show_stack) from [<c02bd5fc>] (dump_stack+0x78/0x90) [<c02bd5fc>] (dump_stack) from [<c001f110>] (warn_slowpath_common+0x68/0x84) [<c001f110>] (warn_slowpath_common) from [<c001f1f4>] (warn_slowpath_null+0x1c/0x24) [<c001f1f4>] (warn_slowpath_null) from [<c0017c6c>] (__arm_ioremap_pfn_caller+0x180/0x198) [<c0017c6c>] (__arm_ioremap_pfn_caller) from [<c0017cd8>] (__arm_ioremap_caller+0x54/0x5c) [<c0017cd8>] (__arm_ioremap_caller) from [<c0017d10>] (__arm_ioremap+0x18/0x1c) [<c0017d10>] (__arm_ioremap) from [<c03913c0>] (highbank_init_irq+0x34/0x8c) [<c03913c0>] (highbank_init_irq) from [<c038c228>] (init_IRQ+0x28/0x2c) [<c038c228>] (init_IRQ) from [<c03899ec>] (start_kernel+0x234/0x398) [<c03899ec>] (start_kernel) from [<00008074>] (0x8074) ---[ end trace 3406ff24bd97382f ]--- Which disappears with this patch. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: fedec366aaa512d75093635f523d1dbcb3358361.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f282f29626b6ce65641fb5f8cb631aaade0e51c5 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:28 2013 +0000 arm/highbank: Use object_new() rather than cpu_arm_init() To allow the machine model to set device properties before CPU realization. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 8c671e500390c8be0cc363e887e32867d1d1b0d2.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 07a5b0d21e450842e3474546366593a5893e8c61 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:28 2013 +0000 target-arm/cpu: Convert reset CBAR to a property The reset value of the CP15 CBAR is a vendor (machine) configurable property. If ARM_FEATURE_CBAR is set, add it as a property at post_init time. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 2f1eec3f912135deea6252360e03645003d12e0a.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d8ba780b6a17020aadea479ad96ed9fe3bb10661 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:28 2013 +0000 target-arm: Define and use ARM_FEATURE_CBAR Some processors (notably A9 within Highbank) define and use the CP15 configuration base address (CBAR). This is vendor specific so its best implemented as a CPU property (otherwise we would need vendor specific child classes for every ARM implementation). This patch prepares support for converting CBAR reset value to a CPU property by moving the CP registration out of the CPU init fn, as registration will need to happen at realize time to pick up any property updates. The easiest way to do this is via definition of a new ARM_FEATURE to flag the existence of the register. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 9f697ef1e2ee60a3b9ef971a7f3bc3fa6752a9b7.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3671cd879a2666ca1d6e8820a319924be25d6746 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:27 2013 +0000 target-arm/helper.c: Allow cp15.c15 dummy override The cp15.c15 space is implementation defined. Currently there is a dummy placeholder register RAZing it. Allow overriding of this RAZ so implementations of specific registers can take precedence. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: ed1bacec56dae00cb398c798f8240e8e685f949c.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0163a2dc80b52553a478fa6e60f09cef4b338d42 Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Dec 17 19:42:27 2013 +0000 Fix NOR flash device ID reading Fix NOR flash manufacturer and device ID reading. This now properly takes into account device widths and device max widths as required. The reading of these IDs uses the same max_width dependent addressing as CFI queries. The old code remains for chips that don't specify a device width, as the new code relies on a device width being set in order to properly operate. The existing code seems very broken. Only ident0 and ident1 are used in the new code, as other fields relate to the lock state of blocks in flash. The VExpress flash configuration has been updated to match the new code, as the existing definition was 'wrong' in order to return the expected results with the broken device ID code. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Message-id: 1386279359-32286-8-git-send-email-roy.franz@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4433e660e3ff19747d9ca7fd3873407ecfb276bf Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Dec 17 19:42:27 2013 +0000 Fix CFI query responses for NOR flash This change fixes the CFI query responses to handle NOR device widths that are different from the bank width. Support is also added for multi-width devices in a x8 configuration. This is typically x8/x16 devices, but the CFI specification mentions x8/x32 devices so those should be supported as well if they exist. The query response data is now replicated per-device in the bank, and is adjusted for x16 or x32 parts configured in x8 mode. The existing code is left in place for boards that have not been updated to specify an explicit device_width. The VExpress board has been updated in an earlier patch in this series so this is the only board currently affected. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Message-id: 1386279359-32286-7-git-send-email-roy.franz@xxxxxxxxxx [PMM: fixed a few formatting nits] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit fa21a7b13e97120c789eda1dbae87a9bcb1efe09 Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Dec 17 19:42:27 2013 +0000 Add max device width parameter for NOR devices For handling CFI and device ID reads, we need to not only know the width that a NOR flash device is configured for, but also its maximum width. The maximum width addressing mode is used for multi-width parts no matter which width they are configured for. The most common case is x16 parts that also support x8 mode. When configured for x8 operation these devices respond to CFI and device ID requests differently than native x8 NOR parts. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Message-id: 1386279359-32286-6-git-send-email-roy.franz@xxxxxxxxxx [PMM: Added comment explaining the semantics of width vs device-width vs max-device-width] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit b8433303fbc5a4a694adb0f0aff5059442ae63e3 Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Dec 17 19:42:26 2013 +0000 Set proper device-width for vexpress flash Create vexpress specific pflash registration function which properly configures the device-width of 16 bits (2 bytes) for the NOR flash on the vexpress platform. This change is required for buffered flash writes to work properly. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Message-id: 1386279359-32286-5-git-send-email-roy.franz@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2003889f67755d47ab355c7813c587adb204eeea Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Dec 17 19:42:26 2013 +0000 return status for each NOR flash device Now that we know how wide each flash device that makes up the bank is, return status for each device in the bank. Leave existing code that treats 32 bit wide banks as composed of two 16 bit devices as otherwise we may break configurations that do not set the device_width propery. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Message-id: 1386279359-32286-4-git-send-email-roy.franz@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 1997b48527c38fe8cdbbb3df82ed79aa3ee88b83 Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Dec 17 19:42:26 2013 +0000 Add device-width property to pflash_cfi01 The width of the devices that make up the flash interface is required to mask certain commands, in particular the write length for buffered writes. This length will be presented to each device on the interface by the program writing the flash, and the flash emulation code needs to be able to determine the length of the write as recieved by each flash device. The device-width defaults to the bank width which should maintain existing behavior for platforms that don't need this change. This change is required to support buffered writes on the vexpress platform that has a 32 bit flash interface with 2 16 bit devices on it. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Message-id: 1386279359-32286-3-git-send-email-roy.franz@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4b6fedcac0f51157ef042cde80d5dc5d0c9ef8a4 Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Dec 17 19:42:26 2013 +0000 rename pflash_t member width to bank_width Rename the 'width' member of the pflash_t structure in preparation for adding a bank_width member. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386279359-32286-2-git-send-email-roy.franz@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 9d935509fdb48e47cc46e81d2b9d466b18b546ba Author: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> Date: Tue Dec 17 19:42:25 2013 +0000 target-arm: add support for v8 AES instructions This adds support for the AESE/AESD/AESMC/AESIMC instructions that are available on some v8 implementations of Aarch32. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> Message-id: 1386266078-6976-1-git-send-email-ard.biesheuvel@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f46e720a82ccdf1a521cf459448f3f96ed895d43 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Thu Nov 28 18:12:59 2013 +0100 qemu_opts_parse(): always check return value qemu_opts_parse() can always return NULL, even if the QemuOptsList.desc in question would be trivial to satisfy (eg. because it's empty). For example: qemu_opts_parse() opts_parse() qemu_opts_create() id_wellformed() In practice: $ .../qemu-system-x86_64 -acpitable id=3 qemu-system-x86_64: -acpitable id=3: Parameter 'id' expects an identifier ** ERROR:vl.c:3491:main: assertion failed: (opts != NULL) Aborted (core dumped) $ .../qemu-system-x86_64 -smbios id=3 qemu-system-x86_64: -smbios id=3: Parameter 'id' expects an identifier Segmentation fault (core dumped) I checked all qemu_opts_parse() invocations (and all drive_def() invocations too, because it blindly forwards the former's retval). Only the two above examples look problematic. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Message-id: 1385658779-7529-1-git-send-email-lersek@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit b91f93243bbe36dc436a64a662a9bbfb2362534a Merge: 80d6f5e 75c70e3 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Dec 16 09:44:13 2013 -0800 Merge remote-tracking branch 'spice/tags/pull-spice-1' into staging Collection of little cleanups anf bugfixes. nbd patches in preparation of spice-nbd. # gpg: Signature made Mon 16 Dec 2013 01:27:45 AM PST using RSA key ID D3E87138 # gpg: Can't check signature: public key not found # By Marc-André Lureau (12) and Gerd Hoffmann (4) # Via Gerd Hoffmann * spice/tags/pull-spice-1: spice: stop server for qxl hard reset spice: move spice_server_vm_{start,stop} calls into qemu_spice_display_*() spice: move qemu_spice_display_*() from spice-graphics to spice-core nbd: avoid uninitialized warnings nbd: finish any pending coroutine nbd: make nbd_client_session_close() idempotent nbd: pass export name as init argument nbd: don't change socket block during negotiate Split nbd block client code spice-char: implement chardev port event char: add qemu_chr_fe_event() include: add missing config-host.h include qmp_change_blockdev() remove unused has_format spice-char: remove unused field vscclient: do not add a socket watch if there is not data to send spice: flip streaming video mode to off by default commit 80d6f5eae79b009bf3e02e59e9e225db42ddf887 Merge: e157b8f c547e56 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Dec 16 09:43:27 2013 -0800 Merge remote-tracking branch 'kwolf/tags/for-anthony' into staging Block patches # gpg: Signature made Fri 13 Dec 2013 09:47:03 AM PST using RSA key ID C88F2FD6 # gpg: Can't check signature: public key not found # By Peter Lieven (2) and others # Via Kevin Wolf * kwolf/tags/for-anthony: blkdebug: Use QLIST_FOREACH_SAFE to resume IO qemu-img: make progress output more accurate during convert block: expect get_block_status errors in bdrv_make_zero block/vvfat: Fix compiler warnings for OpenBSD qapi-schema.json: Change 1.8 reference to 2.0 sheepdog: check if '-o redundancy' is passed from user Message-id: 1386956943-19474-1-git-send-email-kwolf@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 8b9dfe9098d91e06a3dd6376624307fe5fa13be8 Author: Peter Lieven <pl@xxxxxxx> Date: Sat Dec 14 17:31:40 2013 +0100 block/iscsi: use a bh to schedule co reentrance this fixes a potential segfault and performance regression. If the coroutine is reentered directly in the iscsi_co_generic_cb iscsi_process_{read,write} are interrupted and reentered any time later. One the one hand this could happen after an iscsi_close where the iscsi context is already gone (segfault). On the other hand this limits the number of processed callbacks in each aio_dispatch to one (potential performance regression). Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 75c70e37bc4a6bdc394b4d1b163fe730abb82c72 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 9 16:03:49 2013 +0100 spice: stop server for qxl hard reset Hard reset can happen at any time. We should be able to put qxl into a known-good state no matter what. Stop spice server thread for reset so it can't be confused by fetching stale commands lingering around in the rings while we reset is ongoing. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit b50f3e42b9438e033074222671c0502ecfeba82c Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 9 16:00:15 2013 +0100 spice: move spice_server_vm_{start,stop} calls into qemu_spice_display_*() So calling spice server to start/stop the worker goes hand in hand with the status variable update. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 7cc6a25fe94b430cb5a041bcb19d7d854b4e99a7 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 9 15:54:46 2013 +0100 spice: move qemu_spice_display_*() from spice-graphics to spice-core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit b1b27b64262fdace45e5ab134c4438338076cb98 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Sun Dec 1 22:23:46 2013 +0100 nbd: avoid uninitialized warnings ==15815== Thread 1: ==15815== Syscall param socketcall.sendto(msg) points to uninitialised byte(s) ==15815== at 0x65AD5CB: send (send.c:31) ==15815== by 0x37F84B: nbd_wr_sync (nbd.c:145) ==15815== by 0x37F94B: write_sync (nbd.c:186) ==15815== by 0x380FA9: nbd_send_request (nbd.c:681) ==15815== by 0x1C4A2D: nbd_teardown_connection (nbd-client.c:337) ==15815== by 0x1C4AD8: nbd_client_session_close (nbd-client.c:354) ==15815== by 0x1ED2D8: close_socketpair (spicebd.c:132) ==15815== by 0x1EE265: spice_close (spicebd.c:457) ==15815== by 0x1ACBF6: bdrv_close (block.c:1519) ==15815== by 0x1AD804: bdrv_delete (block.c:1772) ==15815== by 0x1B4136: bdrv_unref (block.c:4476) ==15815== by 0x1ACCE0: bdrv_close (block.c:1541) ==15815== Address 0x7feffef98 is on thread 1's stack Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 69152c09d337a8e1368e65bcd5a598def6c3079f Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Sun Dec 1 22:23:45 2013 +0100 nbd: finish any pending coroutine Make sure all pending coroutines are finished when closing the session. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5ad283ebb82c007f49535907874213cdb05c307a Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:44 2013 +0100 nbd: make nbd_client_session_close() idempotent Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e2bc625f9bbb3a5d3ef2cb0f14dd52b517b92ffd Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:43 2013 +0100 nbd: pass export name as init argument There is no need to keep the export name around, and it seems a better fit as an argument in the init() call. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e53a18e488c657bbc6f218ae60de8e813a912667 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:42 2013 +0100 nbd: don't change socket block during negotiate The caller might handle non-blocking using coroutine. Leave the choice to the caller to use a blocking or non-blocking negotiate. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 2302c1cafb13df23938b098d9c6595de52ec2577 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:41 2013 +0100 Split nbd block client code Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit be733d6d484cd6a9e27a43a3f426688124fd0652 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Sun Dec 1 22:23:40 2013 +0100 spice-char: implement chardev port event Wire up chardev fe_event to Spice port. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit d61b0c9a2f7f39cc30cbd713e0798a23a51340e7 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:39 2013 +0100 char: add qemu_chr_fe_event() Teach the chardev frontend to send event. This is used by the Spice port chardev currently. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f7d48052644f3307748f47062728bb3e5f051ffe Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:38 2013 +0100 include: add missing config-host.h include Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 314f7ea74f0c36e3291c4c6d58816da83a232fc2 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:37 2013 +0100 qmp_change_blockdev() remove unused has_format Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit d8a03a09524c141325f3469cc5c393f7eae3c9cf Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:36 2013 +0100 spice-char: remove unused field Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit fa88afa51c7db927b3dd6c2f7878c23e53441de6 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:35 2013 +0100 vscclient: do not add a socket watch if there is not data to send Fixes the following error: ** (process:780): CRITICAL **: do_socket_send: assertion `socket_to_send->len != 0' failed Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f1d3e586f069e17f83b669842bc02d60d509daca Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 2 11:17:04 2013 +0100 spice: flip streaming video mode to off by default Video streaming detection heuristics in spice-server have problems keeping modern desktop animations (as done by gnome shell) and real video playback apart. This leads to jpeg compression artefacts on your desktop, due to spice using mjpeg to send what it thinks is a video stream. Turn off video detection by default to avoid these artifacts. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Alon Levy <alevy@xxxxxxxxxx> commit e157b8fdd412d48eacfbb8c67d3d58780154faa3 Merge: 5d0e228 306ec6c Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 13 11:10:33 2013 -0800 Merge remote-tracking branch 'bonzini/virtio' into staging # By Andreas Färber (18) and Paolo Bonzini (12) # Via Paolo Bonzini * bonzini/virtio: (30 commits) virtio: Convert exit to unrealize virtio: Complete converting VirtioDevice to QOM realize virtio-scsi: Convert to QOM realize virtio-rng: Convert to QOM realize virtio-balloon: Convert to QOM realize virtio-net: Convert to QOM realize virtio-serial: Convert to QOM realize virtio-blk: Convert to QOM realize virtio-9p: Convert to QOM realize virtio: Start converting VirtioDevice to QOM realize virtio-scsi: QOM realize preparations virtio-rng: QOM realize preparations virtio-balloon: QOM realize preparations virtio-net: QOM realize preparations virtio-serial: QOM realize preparations virtio-blk: QOM realize preparations virtio-9p: QOM realize preparations virtio-blk-dataplane: Improve error reporting virtio-pci: add device_unplugged callback virtio-rng: switch exit callback to VirtioDeviceClass ... commit 5d0e2280cc344f1b939acff431ed2731a9ee7db5 Merge: bf6e3cc 5111610 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 13 11:10:19 2013 -0800 Merge remote-tracking branch 'mst/tags/for_anthony' into staging acpi.pci,pc,memory core fixes Most notably this includes changes to exec to support full 64 bit addresses. This also flushes out patches that got queued during 1.7 freeze. There are new tests, and a bunch of bug fixes all over the place. There are also some changes mostly useful for downstreams. I'm also listing myself as pc co-maintainer. I'm doing this reluctantly, but this seems to be necessary to make sure patches are not lost or delayed too much, and posting the MAINTAINERS patch did not seem to make anyone else volunteer. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Wed 11 Dec 2013 10:21:51 AM PST using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Michael S. Tsirkin (14) and others # Via Michael S. Tsirkin * mst/tags/for_anthony: (28 commits) pc: use macro for HPET type hpet: fix build with CONFIG_HPET off acpi unit-test: adjust the test data structure for better handling acpi unit-test: load and check facs table exec: separate sections and nodes per address space memory.c: bugfix - ref counting mismatch in memory_region_find hpet: enable to entitle more irq pins for hpet hpet: inverse polarity when pin above ISA_NUM_IRQS pci: fix pci bridge fw path ACPI DSDT: Make control method `IQCR` serialized acpi: strip compiler info in built-in DSDT acpi unit-test: verify signature and checksum smbios: Set system manufacturer, product & version by default exec: reduce L2_PAGE_SIZE exec: make address spaces 64-bit wide exec: memory radix tree page level compression exec: pass hw address to phys_page_find exec: extend skip field to 6 bit, page entry to 32 bit exec: replace leaf with skip split definitions for exec.c and translate-all.c radix trees ... Message-id: cover.1386786228.git.mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit bf6e3cc4fadaa6884dd1e561215f5d93cfe4f5f3 Merge: 47acdd6 2fe3798 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 13 11:10:02 2013 -0800 Merge remote-tracking branch 'bonzini/scsi-next' into staging # By Paolo Bonzini (4) and Peter Lieven (1) # Via Paolo Bonzini * bonzini/scsi-next: help: add id suboption to -iscsi scsi-disk: fix WRITE SAME with large non-zero payload block/iscsi: introduce bdrv_co_{readv, writev, flush_to_disk} scsi-disk: fix VERIFY emulation scsi-bus: fix transfer length and direction for VERIFY command Message-id: 1386594157-17535-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit c547e5640d5b0993cdfb252331065c1a1d813bd8 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Dec 13 15:25:12 2013 +0800 blkdebug: Use QLIST_FOREACH_SAFE to resume IO Qemu-iotest 030 was broken. When the coroutine runs and finishes, it will remove itself from the req list, so let's use safe version of foreach to avoid use after free. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 802c3d4ccc9853ee11c742bc206f284f04259426 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Dec 5 15:54:53 2013 +0100 qemu-img: make progress output more accurate during convert the progress output is very bumpy if the input images contains a significant portion of unallocated sectors. This patch checks how much sectors are allocated a priori if progress output is selected. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3d94ce60ae7ad7c31dc143fdd9da95c61b4e529e Author: Peter Lieven <pl@xxxxxxx> Date: Thu Dec 12 13:57:05 2013 +0100 block: expect get_block_status errors in bdrv_make_zero during testing around with 4k LUNs a bad target implementation triggert an -EIO in iscsi_get_block_status, but it got never caught resulting in an infinite loop. CC: qemu-stable@xxxxxxxxxx Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f671d173c7e1da555b693e8b14f3ed0852601809 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Dec 11 21:37:11 2013 +0100 block/vvfat: Fix compiler warnings for OpenBSD The buildbot shows these compiler warnings: block/vvfat.c: In function 'create_short_and_long_name': block/vvfat.c:620: warning: array size (8) smaller than bound length (11) block/vvfat.c:620: warning: array size (8) smaller than bound length (11) block/vvfat.c:635: warning: array size (8) smaller than bound length (11) block/vvfat.c:635: warning: array size (8) smaller than bound length (11) They are caused by tricky code where 8 characters for the name are followed by 3 characters for the extension, and some operations touch both name and extension. Using an 11 character name which includes the extension fixes the compiler warning, satisfies cppcheck, valgrind and maybe other static and dynamic code checkers, and even simplifies some parts of the code. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 01443e1388971999514511a26f9d36a7cdaa2cc2 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Dec 10 14:01:27 2013 +0100 qapi-schema.json: Change 1.8 reference to 2.0 Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a3120deee5fc1d702ba5da98fd9c845ad1c8f301 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Mon Dec 9 00:11:20 2013 +0800 sheepdog: check if '-o redundancy' is passed from user This fix a segfault (that is caused by b3af018f3) of following command: $ qemu-img convert some_img sheepdog:some_img Cc: qemu-devel@xxxxxxxxxx Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a94b36ddd6af28593c8a5171b5100e6c3dfc063e Author: Alexander Graf <agraf@xxxxxxx> Date: Thu Dec 12 10:29:19 2013 +0100 roms: Flush icache when writing roms to guest memory We use the rom infrastructure to write firmware and/or initial kernel blobs into guest address space. So we're basically emulating the cache off phase on very early system bootup. That phase is usually responsible for clearing the instruction cache for anything it writes into cachable memory, to ensure that after reboot we don't happen to execute stale bits from the instruction cache. So we need to invalidate the icache every time we write a rom into guest address space. We do not need to do this for every DMA since the guest expects it has to flush the icache manually in that case. This fixes random reboot issues on e5500 (booke ppc) for me. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 47acdd63a33a5966bf4fc94a6ac835d72a70c555 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Dec 10 15:40:21 2013 -0800 target-microblaze: Use the new qemu_ld/st opcodes The ability of the new opcodes to byte-swap the memory operation simplifies the code in and around dec_load and dec_store significantly. Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Tested-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Cc: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 0522604b09b8cff54ba2450a7478da2a4d084817 Author: Fernando Luis Vázquez Cao <fernando_b1@xxxxxxxxxxxxx> Date: Fri Dec 6 17:33:01 2013 +0900 target-i386: clear guest TSC on reset VCPU TSC is not cleared by a warm reset (*), which leaves some types of Linux guests (non-pvops guests and those with the kernel parameter no-kvmclock set) vulnerable to the overflow in cyc2ns_offset fixed by upstream commit 9993bc635d01a6ee7f6b833b4ee65ce7c06350b1 ("sched/x86: Fix overflow in cyc2ns_offset"). To put it in a nutshell, if such a Linux guest without the patch above applied has been up more than 208 days and attempts a warm reset chances are that the newly booted kernel will panic or hang. (*) Intel Xeon E5 processors show the same broken behavior due to the errata "TSC is Not Affected by Warm Reset" (Intel® Xeon® Processor E5 Family Specification Update - August 2013): "The TSC (Time Stamp Counter MSR 10H) should be cleared on reset. Due to this erratum the TSC is not affected by warm reset." Cc: Will Auld <will.auld@xxxxxxxxx> Cc: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Signed-off-by: Fernando Luis Vazquez Cao <fernando@xxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Fernando Luis Vázquez Cao <fernando_b1@xxxxxxxxxxxxx> commit f86746c263753cf7a7e4bdb8829c70272dfcf36c Author: Fernando Luis Vázquez Cao <fernando_b1@xxxxxxxxxxxxx> Date: Fri Dec 6 17:38:24 2013 +0900 target-i386: do not special case TSC writeback Newer kernels are capable of synchronizing TSC values of multiple VCPUs on writeback, but we were excluding the power up case, which is not needed anymore. Signed-off-by: Fernando Luis Vazquez Cao <fernando@xxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Fernando Luis Vázquez Cao <fernando_b1@xxxxxxxxxxxxx> commit 79e9ebebbf2a00c46fcedb6dc7dd5e12bbd30216 Author: Liu Jinsong <jinsong.liu@xxxxxxxxx> Date: Thu Dec 5 08:32:12 2013 +0800 target-i386: Intel MPX Add some MPX related definiation, and hardcode sizes and offsets of xsave features 3 and 4. It also add corresponding part to kvm_get/put_xsave, and vmstate. Signed-off-by: Liu Jinsong <jinsong.liu@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 511161027a0ecab6e12107128adeb8a884c5bcbe Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Dec 11 02:48:49 2013 +0200 pc: use macro for HPET type avoid hard-coding strings Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 142e0950cfaf023a81112dc3cdfa799d769886a4 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Dec 11 02:47:16 2013 +0200 hpet: fix build with CONFIG_HPET off make hpet_find inline so we don't need to build hpet.c to check if hpet is enabled. Fixes link error with CONFIG_HPET off. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8ac2adf79a06372fe2c50ddac64cfffb93dbfeb8 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Nov 21 21:33:22 2013 +0200 acpi unit-test: adjust the test data structure for better handling Ensure more then one instance of test_data may exist at a given time. It will help to compare different acpi table versions. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 15650602195be9f2957818318457c5d5096ff4c2 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Nov 21 21:33:21 2013 +0200 acpi unit-test: load and check facs table FACS table does not have a checksum, so we can check at least the signature (existence). Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 53cb28cbfea038f8ad50132dc8a684e638c7d48b Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Sun Dec 1 14:02:23 2013 +0200 exec: separate sections and nodes per address space Every address space has its own nodes and sections, but it uses the same global arrays of nodes/section. This limits the number of devices that can be attached to the guest to 20-30 devices. It happens because: - The sections array is limited to 2^12 entries. - The main memory has at least 100 sections. - Each device address space is actually an alias to main memory, multiplying its number of nodes/sections. Remove the limitation by using separate arrays of nodes and sections for each address space. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 6307d974f9a28bb6652352f52da97f820427d29d Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Dec 2 16:20:59 2013 +0200 memory.c: bugfix - ref counting mismatch in memory_region_find 'address_space_get_flatview' gets a reference to a FlatView. If the flatview lookup fails, the code returns without "unreferencing" the view. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 7a10ef51c2397ac4323bc786af02c58b413b5cd2 Author: Liu Ping Fan <qemulist@xxxxxxxxx> Date: Sun Dec 8 17:38:17 2013 +0800 hpet: enable to entitle more irq pins for hpet Owning to some different hardware design, piix and q35 need different compat. So making them diverge. On q35, IRQ2/8 can be reserved for hpet timer 0/1. And pin 16~23 can be assigned to hpet as guest chooses. So we introduce intcap property to do that. Consider the compat and piix/q35, we finally have the following value for intcap: For piix, hpet's intcap is hard coded as IRQ2. For pc-q35-1.7 and earlier, we use IRQ2 for compat reason. Otherwise IRQ2, IRQ8, and IRQ16~23 are allowed. Signed-off-by: Liu Ping Fan <pingfank@xxxxxxxxxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 0d63b2dd31464cfccc80bbeedc24e3863fe4c895 Author: Liu Ping Fan <qemulist@xxxxxxxxx> Date: Sun Dec 8 17:38:16 2013 +0800 hpet: inverse polarity when pin above ISA_NUM_IRQS According to hpet spec, hpet irq is high active. But according to ICH spec, there is inversion before the input of ioapic. So the OS will expect low active on this IRQ line. (On bare metal, if OS driver claims high active on this line, spurious irq is generated) We fold the emulation of this inversion inside the hpet logic. Signed-off-by: Liu Ping Fan <pingfank@xxxxxxxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4c41425d2e79f267b2236da31abedb866777d92f Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Dec 6 12:24:40 2013 +0100 pci: fix pci bridge fw path qemu uses "pci" as name for pci bridges in the firmware device path. seabios expects "pci-bridge". Result is that bootorder is broken for devices behind pci bridges. Some googling suggests that "pci-bridge" is the correct one. At least PPC-based Apple machines are using this. See question "How do I boot from a device attached to a PCI card" here: http://www.netbsd.org/ports/macppc/faq.html So lets change qemu to use "pci-bridge" too. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 6747f6456fd1e5e986b6385ff5d706c79ebd8a32 Merge: b9aad5d 0ec9eab Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Dec 10 16:14:36 2013 -0800 Merge remote-tracking branch 'rth/tcg-temp-order' into staging # By Richard Henderson # Via Richard Henderson * rth/tcg-temp-order: tcg: Use bitmaps for free temporaries Message-id: 1386698065-6661-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit b9aad5d68d0fa636d1a1edbbeffa0d7a80370711 Merge: 1ead3ed 02d38fc Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Dec 10 16:14:20 2013 -0800 Merge remote-tracking branch 'stefanha/net-next' into staging # By Vincenzo Maffione (2) and others # Via Stefan Hajnoczi * stefanha/net-next: net: Update netdev peer on link change virtio-net: don't update mac_table in error state MAINTAINERS: Add netmap maintainers net: Adding netmap network backend Message-id: 1386594692-21278-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 1ead3ed55584a62a12d840a71d3aab71f12ec42e Merge: b5527da 74f1c6d Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Dec 10 16:13:32 2013 -0800 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20131210' into staging target-arm queue: * support REFCNT register on integrator/cp board * implement the A9MP's global timer * add the 'virt' platform * support '-cpu host' on KVM/ARM * Cadence GEM ethernet device bugfixes * Implement 32-bit ARMv8 VSEL, VMAXNM, VMINNM * fix TTBCR write masking * update 32 bit decoder to use new qemu_ld/st TCG opcodes # gpg: Signature made Tue 10 Dec 2013 06:22:01 AM PST using RSA key ID 14360CDE # gpg: Can't check signature: public key not found # By Peter Crosthwaite (16) and others # Via Peter Maydell * pmaydell/tags/pull-target-arm-20131210: (37 commits) target-arm: fix TTBCR write masking target-arm: Use new qemu_ld/st opcodes target-arm: Implement ARMv8 SIMD VMAXNM and VMINNM instructions. target-arm: Implement ARMv8 FP VMAXNM and VMINNM instructions. softfloat: Add minNum() and maxNum() functions to softfloat. softfloat: Remove unused argument from MINMAX macro. target-arm: Implement ARMv8 VSEL instruction. target-arm: Move call to disas_vfp_insn out of disas_coproc_insn. net/cadence_gem: Don't rx packets when no rx buffer available net/cadence_gem: Improve can_receive debug printfery net/cadence_gem: Fix register w1c logic net/cadence_gem: Fix small packet FCS stripping net/cadence_gem: Fix rx multi-fragment packets net/cadence_gem: Add missing VMSTATE_END_OF_LIST net/cadence_gem: Implement SAR (de)activation net/cadence_gem: Implement SAR match bit in rx desc net/cadence_gem: Implement RX descriptor match mode flags net/cadence_gem: Prefetch rx descriptors ASAP net/cadence_gem: simplify rx buf descriptor walking net/cadence_gem: Don't assert against 0 buffer address ... Message-id: 1386686613-2390-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit b5527dad7dba7d85520aaec787fb6fb14be1c366 Merge: 75c4ce8 d58ce68 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Dec 10 16:11:21 2013 -0800 Merge remote-tracking branch 'kraxel/tags/pull-audio-1' into staging Change audio wakeup rate from 250 Hz to 100 Hz. Emulation bugfixes for intel-hda and adlib. # gpg: Signature made Mon 09 Dec 2013 06:04:16 AM PST using RSA key ID D3E87138 # gpg: Can't check signature: public key not found # By Gerd Hoffmann (2) and others # Via Gerd Hoffmann * kraxel/tags/pull-audio-1: intel-hda: fix position buffer adlib: fix patching of port I/O addresses audio: adjust pulse to 100Hz wakeup rate audio: Lower default wakeup rate to 100 times / second Message-id: 1386597974-26506-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 75c4ce824ffd04a59f0af270f823fd5f1a59bd1a Merge: 45506cc 5ad04fb Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Dec 10 16:11:10 2013 -0800 Merge remote-tracking branch 'alon/libcacard_ccid.4' into staging # By Stefan Weil # Via Alon Levy * alon/libcacard_ccid.4: libcacard: Fix compilation for older versions of glib (bug #1258168) Message-id: 1386596263-26151-1-git-send-email-alevy@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 45506cc2be6834196ac2773ec4267ca6780f17a1 Merge: 8f84271 b1829cd Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Dec 10 16:09:34 2013 -0800 Merge remote-tracking branch 'mjt/trivial-patches' into staging # By Stefan Weil # Via Michael Tokarev * mjt/trivial-patches: qxl: Add missing trace.h (fix broken build) Message-id: 1386441094-9971-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0ec9eabc7f6020418e1f3b3273d1dd701f7f87f9 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 19 12:16:45 2013 -0700 tcg: Use bitmaps for free temporaries We previously allocated 32-bits per temp for the next_free_temp entry. We now allocate 4 bits per temp across the 4 bitmaps. Using a linked list meant that if a translator is tweeked, resulting in temps being freed in a different order, that would have follow-on effects throughout the TB. Always allocating the lowest free temp means that follow-on effects are minimized, which can make it easier to diff output when debugging the translators. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 74f1c6ddec8dc7566d9b75574bb006214cc7d3b4 Author: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Date: Tue Dec 10 10:41:49 2013 +0400 target-arm: fix TTBCR write masking Current implementation is not accurate according to ARMv7-AR reference manual. See "B4.1.153 TTBCR, Translation Table Base Control Register, VMSA | TTBCR format when using the Long-descriptor translation table format". When LPAE feature is supported, EAE, bit[31] selects translation descriptor format and, therefore, TTBCR format. Signed-off-by: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386657709-23399-1-git-send-email-s.fedorov@xxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 09f7813522238555b77ec2b9f2d3bc20d6e3c796 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Dec 9 14:37:06 2013 -0800 target-arm: Use new qemu_ld/st opcodes Retain the existing gen_aa32_* inlines, to aid compilation for A64. Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1386628626-21627-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 505935fc766e84b58af6e4c3c4233ed0a29b1288 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Dec 6 17:01:42 2013 +0000 target-arm: Implement ARMv8 SIMD VMAXNM and VMINNM instructions. This adds support for the ARMv8 Advanced SIMD VMAXNM and VMINNM instructions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Message-id: 1386158099-9239-7-git-send-email-will.newton@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 40cfacdd806b68706b10ceeeca6d0eea417d1a75 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Dec 6 17:01:41 2013 +0000 target-arm: Implement ARMv8 FP VMAXNM and VMINNM instructions. This adds support for the ARMv8 floating point VMAXNM and VMINNM instructions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386158099-9239-6-git-send-email-will.newton@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e17ab310e98c55bd5cb8026c1086f9d19d181d3d Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Dec 6 17:01:41 2013 +0000 softfloat: Add minNum() and maxNum() functions to softfloat. Add floatnn_minnum() and floatnn_maxnum() functions which are equivalent to the minNum() and maxNum() functions from IEEE 754-2008. They are similar to min() and max() but differ in the handling of QNaN arguments. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Message-id: 1386158099-9239-5-git-send-email-will.newton@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e70614eaa0b8c6a2c948efa3ad71e75cd1f8ff8a Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Dec 6 17:01:41 2013 +0000 softfloat: Remove unused argument from MINMAX macro. The nan_exp argument is not used, so remove it. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386158099-9239-4-git-send-email-will.newton@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 04731fb5f3825409fd5ad64dbc0b1dfe7e7fb82f Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Dec 6 17:01:40 2013 +0000 target-arm: Implement ARMv8 VSEL instruction. This adds support for the VSEL floating point selection instruction which was added in ARMv8. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386158099-9239-3-git-send-email-will.newton@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 6a57f3ebba2dbe4a398319cec4df62cbcf3c5b8d Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Dec 6 17:01:40 2013 +0000 target-arm: Move call to disas_vfp_insn out of disas_coproc_insn. Floating point is an extension to the instruction set rather than a coprocessor, so call it directly from the ARM and Thumb decode functions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386158099-9239-2-git-send-email-will.newton@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8202aa539135a44906c38f82a469234ec65e0ef7 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 22:02:03 2013 -0800 net/cadence_gem: Don't rx packets when no rx buffer available Return false from can_receive() when no valid buffer descriptor is available. Ensures against mass packet droppage in some applications. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: cde00ef774e84e2586bf10fd37b542f75bf36cfb.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3ae5725f86a82751cccf6bc075e5ebfb327ac283 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 22:01:28 2013 -0800 net/cadence_gem: Improve can_receive debug printfery Currently this just floods indicating that can_receive has been called by the net framework. Instead, save the result of the most recent can_receive callback as state and only print a message if the result changes (indicating some sort of actual state change in GEM). Make said debug message more meaningful as well. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 2eb74ca6a5756aea242d9f525961db95d6cfcf2c.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e2314fda62c42c89f91dcf104ed3702170a90308 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 22:00:54 2013 -0800 net/cadence_gem: Fix register w1c logic This write-1-clear logic was incorrect. It was always clearing w1c bits regardless of whether the written value was 1 or not. i.e. it was implementing a write-anything-to-clear strategy. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: ed905b04d3343966ded425f06aa2224bc7a35b59.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 191946c51f28e6ac76e94c7379d5e0f69c016e83 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 22:00:17 2013 -0800 net/cadence_gem: Fix small packet FCS stripping The minimum packet size is 64, however this is before FCS stripping occurs. So when FCS stripping the minimum packet size is 60. Fix. Reported-by: Deepika Dhamija <deepika@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 8aac5bd737f9cf48b87f32943d7eb5939061e546.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 305706980267dae191d0fca2c769d7a31011be14 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:59:43 2013 -0800 net/cadence_gem: Fix rx multi-fragment packets Bytes_to_copy was being updated before its final use where it advances the rx buffer pointer. This was causing total mayhem, where packet data for any subsequent fragments was being fetched from the wrong place. Reported-by: Deepika Dhamija <deepika@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: c2a1c65c1fd06eb274442a0fa4a6839d940e145e.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 17cf2c76b684b679cb25fcb4a36d536ba9944d4d Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:59:08 2013 -0800 net/cadence_gem: Add missing VMSTATE_END_OF_LIST Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 8f8c2bfb15f40fb5f0d5766aa4cd3d54c596de6a.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 64eb9301769c97c7fd340e4e7ef98edcd500ebff Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:58:34 2013 -0800 net/cadence_gem: Implement SAR (de)activation The Specific address registers can be enabled or disabled by software. QEMU was assuming they were always enabled. Implement the disable/enable feature. SARs are disabled by writing to the lower half register. They are re-enabled by then writing the upper half. Reported-by: Deepika Dhamija <deepika@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 49efd1f7450af8f980b967d3054245bae137866c.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a03f742983f9b6ed03913b30005b6f053290d285 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:57:59 2013 -0800 net/cadence_gem: Implement SAR match bit in rx desc Bit 27 of the RX buffer desc word 1 should be set when the packet was accepted due to specific address register match. Implement. This feature is absent from the Xilinx documentation (UG585) but the behaviour is tested as accurate on real hardware. Reported-by: Deepika Dhamija <deepika@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 7e3f26fc4ab244e8123efc12723e7164730abdcb.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 63af1e0cff8879a3ddd1b08abb3172b49fb88c88 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:57:24 2013 -0800 net/cadence_gem: Implement RX descriptor match mode flags The various Rx packet address matching mode flags were not being set in the rx descriptor. Implement. Reported-by: Deepika Dhamija <deepika@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 6002a24a6a8ceaa11d3009ab5392840d1c084b28.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 06c2fe951d58cdf2cafb432a76415236c8f73328 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:56:50 2013 -0800 net/cadence_gem: Prefetch rx descriptors ASAP The real hardware prefetches rx buffer descriptors ASAP and potentially throws relevant interrupts following the fetch even in the absence of a received packet. Reported-by: Deepika Dhamija <deepika@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 41629e35edfdb1f02f1e401f2c3d0e2e4c9e44b3.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7cfd65e41c51cd8a55730524af750638cd416f95 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:56:15 2013 -0800 net/cadence_gem: simplify rx buf descriptor walking There was a replication of the rx descriptor address walking logic. Reorder the flow control to remove. This refactoring also obsoletes the local variables packet_desc_addr and last_desc_addr. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 2a425b457ff0b57274bf206ad2236690cd7f5909.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 11785f5352d45c6ef3efe3349ade42387ccebd5d Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:55:40 2013 -0800 net/cadence_gem: Don't assert against 0 buffer address This has no real hardware analog and asserting correctness of DMA addresses is not a perhiperal level problem. Delete. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: fc02417eb1874cb05e4f20531c6203c5a00110f1.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3b2c97f9916e15ef630e3f8449b1b10902bf9407 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Tue Dec 3 21:55:05 2013 -0800 net/cadence_gem: Update DMA rx descriptors as we process them We were updating the ownership bit of all descriptors if packets get split and written through several descriptors. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: d61b7847b51487118783c93765a485bc5c66d272.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 24e822ea4669145c94552cef67751fbd9a42b4c8 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:54:30 2013 -0800 net/cadence_gem: Implement mac level loopback mode Cadence GEM has a MAC level loopback mode. Implement. Use the same basic operation as the already implemented PHY loopback. Reported-by: Deepika Dhamija <deepika@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 3a0baf1b6b2fc1be638bdf1a37408ec38988e970.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 198aa06459ba6c0e689ed0f61b59ebe8aa9f9287 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:18 2013 +0000 hw/arm/virt: Support -cpu host Support -cpu host in virt machine (treating it like an A15, ie with a GIC v2 and the A15's private peripherals.) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-12-git-send-email-peter.maydell@xxxxxxxxxx commit a96c0514ab7d74ecb04677d3dc599facafa44e5b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:17 2013 +0000 target-arm: Provide '-cpu host' when running KVM Implement '-cpu host' for ARM when we're using KVM, broadly in line with other KVM-supporting architectures. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-11-git-send-email-peter.maydell@xxxxxxxxxx commit 3541addc888413b84fb309e3f4abf210c0c5eb57 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:16 2013 +0000 target-arm: Don't hardcode KVM target CPU to be A15 Instead of assuming that a KVM target CPU must always be a Cortex-A15 and hardcoding this in kvm_arch_init_vcpu(), store the KVM_ARM_TARGET_* value in the ARMCPU class, and use that. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-10-git-send-email-peter.maydell@xxxxxxxxxx commit f5fdcd6e58ec35b4463569694fc15d28c505c4d0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:14 2013 +0000 hw/arm: Add 'virt' platform Add 'virt' platform support corresponding to arch/arm/mach-virt in the Linux kernel tree. This has no platform-specific code but can use any device whose kernel driver is is able to work purely from a device tree node. We use this to instantiate a minimal set of devices: a GIC and some virtio-mmio transports. Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-8-git-send-email-peter.maydell@xxxxxxxxxx [PMM: Significantly overhauled: * renamed user-facing machine to just "virt" * removed the A9 support (it can't work since the A9 has no generic timers) * added virtio-mmio transports instead of random set of 'soc' devices (though we retain a pl011 UART) * instead of updating io_base as we step through adding devices, define a memory map with an array (similar to vexpress) * similarly, define irqmap with an array * folded in some minor fixes from John's aarch64-support patch * rather than explicitly doing endian-swapping on FDT cells, use fdt APIs that let us just pass in host-endian values and let the fdt layer take care of the swapping * miscellaneous minor code cleanups and style fixes ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 5de164304ad6473c812f24a29fda33a2d1b2bf45 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:13 2013 +0000 target-arm: Allow secondary KVM CPUs to be booted via PSCI New ARM boards are generally expected to boot their secondary CPUs via the PSCI interface, rather than ad-hoc "loop around in holding pen code" as hw/arm/boot.c implements. In particular this is necessary for mach-virt kernels. For KVM we achieve this by creating the VCPUs with a feature flag marking them as starting in PSCI powered-down state; the guest kernel will then make a PSCI call (implemented in the host kernel) to start the secondaries at an address of its choosing once it has got the primary CPU up. Implement this setting of the feature flag, controlled by a qdev property for ARMCPU, which board code can set if it is a PSCI system. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-7-git-send-email-peter.maydell@xxxxxxxxxx commit 54d3e3f52e5d540766af35f99fe0fa415c40cac2 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:12 2013 +0000 target-arm: Add ARMCPU field for Linux device-tree 'compatible' string Linux requires device tree CPU nodes to include a 'compatible' string describing the CPU. Add a field in the ARMCPU struct for this so that boards which construct a device tree can insert the correct CPU nodes. Note that there is currently no officially specified 'compatible' string for the TI925T, Cortex-M3 or SA1110 CPUs. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-6-git-send-email-peter.maydell@xxxxxxxxxx commit a22ec1e6825c7a00d25648027d08d4a332c29c84 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:11 2013 +0000 target-arm: Provide PSCI constants to generic QEMU code Provide versions of the KVM PSCI constants to non-KVM code; this will allow us to avoid an ifdef in boards which set up a PSCI node in the device tree. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-5-git-send-email-peter.maydell@xxxxxxxxxx commit 0fb79851c3dffa06de648d955ee2f2b47bfb96ce Author: John Rigby <john.rigby@xxxxxxxxxx> Date: Fri Nov 22 17:17:10 2013 +0000 hw/arm/boot: Allow boards to provide an fdt blob If no fdt is provided on command line and the new field get_dtb in struct arm_boot_info is set then call it to get a device tree blob. Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-4-git-send-email-peter.maydell@xxxxxxxxxx [PMM: minor tweaks and cleanup] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit ef6de70ea811d66ebb6b9b6046e304f588e754bb Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:09 2013 +0000 device_tree.c: Terminate the empty reservemap in create_device_tree() Device trees created with create_device_tree() may not have any entries in their reservemap, because the FDT API requires that the reservemap is completed before any FDT nodes are added, and create_device_tree() itself creates a node. However we were not calling fdt_finish_reservemap(), which meant that there was no terminator in the reservemap list and whatever happened to be at the start of the FDT data section would end up being interpreted as reservemap entries. Avoid this by calling fdt_finish_reservemap() to add the terminator. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1385140638-10444-3-git-send-email-peter.maydell@xxxxxxxxxx commit 72b0cd35ad3e216a1db7f6a08a2ff65bb577c119 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:08 2013 +0000 target-arm: Provide mechanism for getting KVM constants even if not CONFIG_KVM There are a number of places where it would be convenient for ARM code to have working definitions of KVM constants even in code which is compiled with CONFIG_KVM not set. In this situation we can't simply include the kernel KVM headers (which might conflict with host header definitions or not even compile on the compiler we're using) so we have to redefine equivalent constants. Provide a mechanism for doing this and checking that the values match, and use it for the constants we're currently exposing via an ad-hoc mechanism. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-2-git-send-email-peter.maydell@xxxxxxxxxx commit 57e72f2a1977448959fe4a492bc48cd2988c1f3b Author: François LEGAL <devel@xxxxxxxxxxxxxx> Date: Sun Dec 1 23:37:11 2013 -0800 cpu/a9mpcore: Add Global Timer Add the global timer to A9 MPCore. Signed-off-by: François LEGAL <devel@xxxxxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: ff92f35f438ac671b57d99d823723dd3e62d2c49.1385969450.git.peter.crosthwaite@xxxxxxxxxx [PC Changes: * new commit message * split off original version as a separate patch * Rebased against new mpcore implementation (with struct embedding) ] Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c21c3b53e122a807ae4f5443b7f74f3850f21e37 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 10 13:24:51 2013 +0000 hw/timer: Introduce ARM A9 Global Timer. The ARM A9 MPCore has a timer that is global to all cores in the cluster. The timer is shared but each core has a private independent comparator and interrupt. Based on version contributed by Francois LEGAL. Signed-off-by: François LEGAL <devel@xxxxxxxxxxxxxx> Message-id: 4918e89476b8da916be2964ec41578b50d569a37.1385969450.git.peter.crosthwaite@xxxxxxxxxx [PC changes: * New commit message * Re-implemented as single timer model * Fixed backwards counting issue in polled mode * completed VMSD fields * macroified magic numbers (and headerified reg definitions) * split of as device-model-only patch * use bitops for 64 bit register access * Fixed auto increment mode to check condition properly * general cleanup (names/style etc). ] Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> [PMM: * minor typo fixes * added missing return after error_setg() * dropped setting dc->no_user = 1 ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4c25f365ab3a4f7de0a49af5d39ddc9d459e245b Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 10 13:24:51 2013 +0000 cpu/a9mpcore: reorder operations/declarations To make it consistent for easier code reading. The order in which variables are defined and functions are called is set to match the address map ordering. The new consistent order of doing stuff is: SCU -> GIC -> MPTimer -> WDT. 0 functional change. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 8f31398e6d9a93f57291399f269039da1a77a2b5.1385969450.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d3053e6be5d90b86cbeba5eb3bba6d210014014b Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 10 13:24:51 2013 +0000 cpu/a9mpcore: rename timerbusdev variable Rename this variable for consistency with the above defined mptimerdev variable. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 28939ef95589a62414634e86c47cef76b21b15f7.1385969450.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f53977f788c05e8795d22206c40eafb93a15d72b Author: Jan Petrous <jan.petrous@xxxxxxxxx> Date: Tue Dec 10 13:24:51 2013 +0000 integrator/cp: add support for REFCNT register Linux kernel from version 3.4 requires CM_REFCNT register for sched timer for Integrator/CP board (integrator_defconfig). See http://infocenter.arm.com/help/topic/com.arm.doc.dui0138e/ch04s06s11.html Signed-off-by: Jan Petrous <jan.petrous@xxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 6b9b4405743ffd428f35247516de9e6f4240f73f Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 14 14:12:47 2013 +0200 ACPI DSDT: Make control method `IQCR` serialized Forward-port the following commit from seabios: commit 995bbeef78b338370f426bf8d0399038c3fa259c Author: Paul Menzel <paulepanter@xxxxxxxxxxxxxxxxxxxxx> Date: Thu Oct 3 11:30:52 2013 +0200 The ASL Optimizing Compiler version 20130823-32 [Sep 11 2013] issues the following warning. $ make [â?¦] Compiling IASL out/src/fw/acpi-dsdt.hex out/src/fw/acpi-dsdt.dsl.i 360: Method(IQCR, 1, NotSerialized) { Remark 2120 - ^ Control Method should be made Serialized (due to creation of named objects within) [â?¦] ASL Input: out/src/fw/acpi-dsdt.dsl.i - 475 lines, 19181 bytes, 316 keywords AML Output: out/src/fw/acpi-dsdt.aml - 4407 bytes, 159 named objects, 157 executable opcodes Listing File: out/src/fw/acpi-dsdt.lst - 143715 bytes Hex Dump: out/src/fw/acpi-dsdt.hex - 41661 bytes Compilation complete. 0 Errors, 0 Warnings, 1 Remarks, 246 Optimizations [â?¦] After changing the parameter from `NotSerialized` to `Serialized`, the remark is indeed gone and there is no size change. The remark was added in ACPICA version 20130517 [1] and gives the following explanation. If a thread blocks within the method for any reason, and another thread enters the method, the method will fail because an attempt will be made to create the same (named) object twice. In this case, issue a remark that the method should be marked serialized. ACPICA BZ 909. [1] https://github.com/acpica/acpica/commit/ba84d0fc18ba910a47a3f71c68a43543c06e6831 Signed-off-by: Paul Menzel <paulepanter@xxxxxxxxxxxxxxxxxxxxx> Reported-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Tested-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 53db092ad1c81c30a617f44e83e8fb9e27c001ba Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 14 13:51:25 2013 +0200 acpi: strip compiler info in built-in DSDT IASL stores it's revision in each table header it generates. That's not nice since guests will see a change each time they move between hypervisors. We generally fill our own info for tables, but we (and seabios) forgot to do this for the built-in DSDT. Modifications in DSDT table: OEM ID: "BXPC" -> "BOCHS " OEM Table ID: "BXDSDT" -> "BXPCDSDT" Compiler ID: "INTL" -> "BXPC" Compiler Version: 0x20130823 -> 0x00000001 Tested-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 53333801e7bb41487147599e1b16b60ebea74695 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Tue Nov 12 18:32:24 2013 +0200 acpi unit-test: verify signature and checksum Read all ACPI tables from guest - will be useful for further unit tests. Follow pointers between ACPI tables checking signature and format for correctness. Verify checksum for all tables. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit b29ad07ee8ff44115ac9167bba51d1cf59f8649c Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Oct 30 13:56:40 2013 +0100 smbios: Set system manufacturer, product & version by default Currently, we get SeaBIOS defaults: manufacturer Bochs, product Bochs, no version. Best SeaBIOS can do, but we can provide better defaults: manufacturer QEMU, product & version taken from QEMUMachine desc and name. Take care to do this only for new machine types, of course. Note: Michael Tsirkin doesn't trust us to keep values of QEMUMachine member product stable in the future. Use copies instead, and in a way that makes it obvious that they're guest ABI. Note that we can be trusted to keep values of member name, because that has always been ABI. Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 026736cebfe0e4a96f0761a2bae62cca92ce2a4e Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Nov 13 20:13:03 2013 +0200 exec: reduce L2_PAGE_SIZE With the single exception of ppc with 16M pages, we get the same number of levels with L2_PAGE_SIZE = 10 as with L2_PAGE_SIZE = 9. by doing this we reduce memory footprint of a single level in the node memory map by 2x without runtime overhead. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 57271d63c4d93352406704d540453c43a4a241a7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Nov 7 17:14:37 2013 +0100 exec: make address spaces 64-bit wide As an alternative to commit 818f86b (exec: limit system memory size, 2013-11-04) let's just make all address spaces 64-bit wide. This eliminates problems with phys_page_find ignoring bits above TARGET_PHYS_ADDR_SPACE_BITS and address_space_translate_internal consequently messing up the computations. In Luiz's reported crash, at startup gdb attempts to read from address 0xffffffffffffffe6 to 0xffffffffffffffff inclusive. The region it gets is the newly introduced master abort region, which is as big as the PCI address space (see pci_bus_init). Due to a typo that's only 2^63-1, not 2^64. But we get it anyway because phys_page_find ignores the upper bits of the physical address. In address_space_translate_internal then diff = int128_sub(section->mr->size, int128_make64(addr)); *plen = int128_get64(int128_min(diff, int128_make64(*plen))); diff becomes negative, and int128_get64 booms. The size of the PCI address space region should be fixed anyway. Reported-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit b35ba30f8fa235c779d876ee299b80a2d501d204 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Nov 11 17:52:07 2013 +0200 exec: memory radix tree page level compression At the moment, memory radix tree is already variable width, but it can only skip the low bits of address. This is efficient if we have huge memory regions but inefficient if we are only using a tiny portion of the address space. After we have built up the map, detect configurations where a single L2 entry is valid. We then speed up the lookup by skipping one or more levels. In case any levels were skipped, we might end up in a valid section instead of erroring out. We handle this by checking that the address is in range of the resulting section. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 97115a8d4500abeb090b968f01605e0bdafcdfd3 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Nov 13 20:08:19 2013 +0200 exec: pass hw address to phys_page_find callers always shift by target page bits so let's just do this internally. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8b795765db36544da6193fb64e4e0f1dc55aaa36 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Nov 11 14:51:56 2013 +0200 exec: extend skip field to 6 bit, page entry to 32 bit Extend skip to 6 bit. As page entry doesn't fit in 16 bit any longer anyway, extend it to 32 bit. This doubles node map memory requirements, but follow-up patches will save this memory. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9736e55b78dc49b7f3a265932ab32ed360f633e4 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Nov 11 14:42:43 2013 +0200 exec: replace leaf with skip In preparation for dynamic radix tree depth support, rename is_leaf field to skip, telling us how many bits to skip to next level. Set to 0 for leaf. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 03f4995781a64e106e6f73864a1e9c4163dac53b Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Nov 7 17:14:36 2013 +0100 split definitions for exec.c and translate-all.c radix trees The exec.c and translate-all.c radix trees are quite different, and the exec.c one in particular is not limited to the CPU---it can be used also by devices that do DMA, and in that case the address space is not limited to TARGET_PHYS_ADDR_SPACE_BITS bits. We want to make exec.c's radix trees 64-bit wide. As a first step, stop sharing the constants between exec.c and translate-all.c. exec.c gets P_L2_* constants, translate-all.c gets V_L2_*, for consistency with the existing V_L1_* symbols. Though actually in the softmmu case translate-all.c is also indexed by physical addresses... This patch has no semantic change. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 92b8e39c7f582e15f9e9423bc9fd3f186536b073 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Nov 6 20:25:21 2013 +0200 spapr_pci: s/INT64_MAX/UINT64_MAX/ It doesn't make sense for a region to be INT64_MAX in size: memory core uses UINT64_MAX as a special value meaning "all 64 bit" this is what was meant here. While this should never affect the spapr system which at the moment always has < 63 bit size, this makes us hit all kind of corner case bugs with sub-pages, so users are probably better off if we just use UINT64_MAX instead. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> commit 286690e34ce04fa29bf812ef2bb7b32c3e7c3b85 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Nov 6 20:18:08 2013 +0200 pc: s/INT64_MAX/UINT64_MAX/ It doesn't make sense for a region to be INT64_MAX in size: memory core uses UINT64_MAX as a special value meaning "all 64 bit" this is what was meant here. While this should never affect the PC system which at the moment always has < 63 bit size, this makes us hit all kind of corner case bugs with sub-pages, so users are probably better off if we just use UINT64_MAX instead. Reported-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Tested-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit cf252e5173e46aa4956b88a95fd09ef7eb38b8a6 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Nov 6 20:23:26 2013 +0200 pci: fix address space size for bridge Address space size for bridge should be full 64 bit, so we should use UINT64_MAX not INT64_MAX as it's size. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 046a648661517f63496aaa34ed2647c77cc2ebe5 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Nov 6 17:16:42 2013 +0200 MAINTAINERS: update X86 machine entry Add a bunch of files missing, and add self as maintainer. Since I'm hacking on these anyway, it will be helpful if people Cc me on patches. Anthony gets to review everything anyway ... Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit ad6423a7fbbaedc4ec1ed41a9688ca4a10909e89 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Fri Oct 18 00:52:18 2013 +0300 acpi-test: basic acpi unit-test We run bios, and boot a minimal boot sector that immediately halts. Then poke at memory to find ACPI tables. This only checks that RSDP is there. More will be added later. Cc: Andreas Färber <afaerber@xxxxxxx> Cc: Markus Armbruster <armbru@xxxxxxxxxx> Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d4fce24f3a59eda081cdf2e38e7001591b95d173 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Oct 18 13:51:11 2013 +0200 qtest: split configuration of qtest accelerator and chardev qtest uses the icount infrastructure to implement a test-driven vm_clock. This however is not necessary when using -qtest as a "probe" together with a normal TCG-, KVM- or Xen-based virtual machine. Hence, split out the call to configure_icount into a new function that is called only for "-machine accel=qtest"; and disable those commands when running with an accelerator other than qtest. This also fixes an assertion failure with "qemu-system-x86_64 -machine accel=qtest" but no -qtest option. This is a valid case, albeit somewhat weird; nothing will happen in the VM but you'll still be able to interact with the monitor or the GUI. Now that qtest_init is not limited to an int(void) function, change global variables that are not used outside qtest_init to arguments. And finally, cleanup useless parts of include/sysemu/qtest.h. The file is not used at all for user-only emulation, and qtest is not available on Win32 due to its usage of sigwait. Reported-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Tested-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 83d08f2673504a299194dcac1657a13754b5932a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Oct 29 13:57:34 2013 +0100 pc: map PCI address space as catchall region for not mapped addresses With a help of negative memory region priority PCI address space is mapped underneath RAM regions effectively catching every access to addresses not mapped by any other region. It simplifies PCI address space mapping into system address space. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> commit e689f7c668cbd9d08f330e17c3dd3a059c9553d3 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Oct 30 13:56:39 2013 +0100 hw: Pass QEMUMachine to its init() method Put it in QEMUMachineInitArgs, so I don't have to touch every board. Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 306ec6c3cece7004429c79c1ac93d49919f1f1cc Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 03:50:44 2013 +0200 virtio: Convert exit to unrealize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0ba94b6f94a5b0bed9f125ce4c3348adc83db5de Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 04:05:02 2013 +0200 virtio: Complete converting VirtioDevice to QOM realize Drop VirtioDeviceClass::init. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 71a6520b83414b4ebe3ecfdee3dc3a70db98c91f Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 03:19:55 2013 +0200 virtio-scsi: Convert to QOM realize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit a8d57dfb28bd8fd8ebddf08d0cfafdcb61a764fb Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 02:57:37 2013 +0200 virtio-rng: Convert to QOM realize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 74def47c8c1453a48f9bd61633050cc681e67fba Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 02:51:37 2013 +0200 virtio-balloon: Convert to QOM realize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e6f746b380ad04246e5cce621f174355f39addcd Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 02:36:06 2013 +0200 virtio-net: Convert to QOM realize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 863462440d646098d2b83fb0ffa5f165e7f90511 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 02:24:34 2013 +0200 virtio-serial: Convert to QOM realize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 75884afd5c6c42e523b08565e289dbe319e17ad9 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 01:35:08 2013 +0200 virtio-blk: Convert to QOM realize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 59be75227d3985c9f0a9f5396fc64e357a54defb Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 01:04:01 2013 +0200 virtio-9p: Convert to QOM realize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 1d244b42d200c02ad60eb564c75d8adea9243366 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 00:50:27 2013 +0200 virtio: Start converting VirtioDevice to QOM realize Temporarily allow either VirtioDeviceClass::init or VirtioDeviceClass::realize. Introduce VirtioDeviceClass::unrealize for symmetry. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 7598f0f30e027146ba70517a2bda98d16bac1e24 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 05:41:42 2013 +0200 virtio-scsi: QOM realize preparations Rename qdev -> dev since that's what realize's argument is called by convention. No need to keep more "qdev" around than necessary. Avoid duplicate VIRTIO_DEVICE() cast. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit af7671fdc530dd597b1ddb4561f5ffc0d534c44c Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 05:12:47 2013 +0200 virtio-rng: QOM realize preparations Rename qdev -> dev because that's what realize's argument is called by convention. No need to keep more "qdev" around than necessary. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit a546fb174162b0186fe6c275476cb45e5cafa68c Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 05:33:58 2013 +0200 virtio-balloon: QOM realize preparations Rename qdev -> dev since that's what realize's argument is called by convention. No need to keep more "qdev" around than necessary. Avoid duplicate VIRTIO_DEVICE() cast. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 284a32f0b33dce4e77e896168387b8dca90c4bea Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 05:02:48 2013 +0200 virtio-net: QOM realize preparations Rename variable qdev -> dev since that's what realize's argument is called by convention. Avoid duplicate VIRTIO_DEVICE() cast. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit b1a20c3fcab96832c3813e9e7162748f325e0c82 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 05:30:09 2013 +0200 virtio-serial: QOM realize preparations Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 179b417e17ada41dce4e8112bea0a78a70b6162c Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 04:48:15 2013 +0200 virtio-blk: QOM realize preparations Rename variable qdev -> dev since that's what realize's argument is called by convention. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0f3657ec3664b340ae20b461a7e15dbdac129179 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Aug 1 00:32:45 2013 +0200 virtio-9p: QOM realize preparations Avoid unnecessary VIRTIO_DEVICE(). Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 3ffeeef735fdb52ffee2eed4fb398f3a1199728f Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Jun 7 16:18:50 2013 +0200 virtio-blk-dataplane: Improve error reporting Return an Error so that it can be propagated later. Tested-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Acked-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> [AF: Rebased] Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 06a1307379fcd6c551185ad87679cd7ed896b9ea Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 14:10:26 2013 +0200 virtio-pci: add device_unplugged callback This fixes a crash in hot-unplug of virtio-pci devices behind a PCIe switch. The crash happens because the ioeventfd is still set whent the child is destroyed (destruction happens in postorder). Then the proxy tries to unset to ioeventfd, but the virtqueue structure that holds the EventNotifier has been trashed in the meanwhile. kvm_set_ioeventfd_pio does not expect failure and aborts. The fix is simply to move parts of uninitialization to a new device_unplugged callback, which is called before the child is destroyed. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 7bb6edb0e3dd78d74e0ac980cf6c0a07307f61bf Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 14:06:08 2013 +0200 virtio-rng: switch exit callback to VirtioDeviceClass This ensures hot-unplug is handled properly by the proxy, and avoids leaking bus_name which is freed by virtio_device_exit. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit baa61b9870dd7e0bb07e0ae61c6ec805db13f699 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 14:06:08 2013 +0200 virtio-balloon: switch exit callback to VirtioDeviceClass This ensures hot-unplug is handled properly by the proxy, and avoids leaking bus_name which is freed by virtio_device_exit. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e3c9d76acc984218264bbc6435b0c09f959ed9b8 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 14:06:08 2013 +0200 virtio-scsi: switch exit callback to VirtioDeviceClass This ensures hot-unplug is handled properly by the proxy, and avoids leaking bus_name which is freed by virtio_device_exit. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 3786cff5eb384d058395a2729af627fa3253d056 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 14:06:08 2013 +0200 virtio-net: switch exit callback to VirtioDeviceClass This ensures hot-unplug is handled properly by the proxy, and avoids leaking bus_name which is freed by virtio_device_exit. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0e86c13fe2058adb8c792ebb7c51a6a7ca9d3d55 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 14:05:56 2013 +0200 virtio-serial: switch exit callback to VirtioDeviceClass This ensures hot-unplug is handled properly by the proxy, and avoids leaking bus_name which is freed by virtio_device_exit. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 40dfc16f5fe0afb66f9436718781264dfadb6c61 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 14:05:42 2013 +0200 virtio-blk: switch exit callback to VirtioDeviceClass This ensures hot-unplug is handled properly by the proxy, and avoids leaking bus_name which is freed by virtio_device_exit. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 5e96f5d2f8d2696ef7d2d8d7282c18fa6023470b Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 13:59:08 2013 +0200 virtio-bus: cleanup plug/unplug interface Right now we have these pairs: - virtio_bus_plug_device/virtio_bus_destroy_device. The first takes a VirtIODevice, the second takes a VirtioBusState - device_plugged/device_unplug callbacks in the VirtioBusClass (here it's just the naming that is inconsistent) - virtio_bus_destroy_device is not called by anyone (and since it calls qdev_free, it would be called by the proxies---but then the callback is useless since the proxies can do whatever they want before calling virtio_bus_destroy_device) And there is a k->init but no k->exit, hence virtio_device_exit is overwritten by subclasses (except virtio-9p). This cleans it up by: - renaming the device_unplug callback to device_unplugged - renaming virtio_bus_plug_device to virtio_bus_device_plugged, matching the callback name - renaming virtio_bus_destroy_device to virtio_bus_device_unplugged, removing the qdev_free, making it take a VirtIODevice and calling it from virtio_device_exit - adding a k->exit callback virtio_device_exit is still overwritten, the next patches will fix that. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit a3fc66d9fd37acbfcee013692246a8ae42bd93bb Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 13:36:40 2013 +0200 virtio-pci: remove vdev field The vdev field is complicated to synchronize. Just access the BusState's list of children. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit f24a684073bcdaf4e9d3c592345744ba3356d9e3 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 13:51:52 2013 +0200 virtio-ccw: remove vdev field The vdev field is complicated to synchronize. Just access the BusState's list of children. Cc: qemu-stable@xxxxxxxxxx Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 06d3dff0723c712a4b109ced4243edf49ef850af Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 13:31:39 2013 +0200 virtio-bus: remove vdev field The vdev field is complicated to synchronize. Just access the BusState's list of children. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0b81c1ef5c677c2a07be5f8bf0dfe2c62ef52115 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Oct 15 16:47:16 2013 +0200 virtio-ccw: move virtio_ccw_stop_ioeventfd to virtio_ccw_busdev_unplug Similar to the PCI bug that prompted these patches, virtio-ccw will segfault after the reworking of hotplug/hot-unplug. Prepare for this by moving virtio_ccw_stop_ioeventfd to before the freeing of the proxy device. A better place for this could be the device_unplugged callback for the virtio-ccw bus. However, we do not yet have a callback that works: this patch avoids the problem while leaving the tree bisectable. Cc: qemu-stable@xxxxxxxxxx Reported-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Suggested-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 8f84271da83c0e9f92aa7c1c2d0d3875bf0a5cb8 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 14:48:07 2013 +0100 target-mips: Use macro ARRAY_SIZE where possible This improves readability and simplifies the code. Cc: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 4d66261f71f2efa31e1052e4041c5ee505572fe5 Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Fri Nov 29 17:27:42 2013 +0100 target-mips: fix 64-bit FPU config for user-mode emulation FR bit should be initialized to 1 for MIPS64, under condition that this bit is writable and that CPU has an FPU unit. It should be initialized to zero for MIPS32. This fixes different MIPS32 issues with FPU instructions whose behaviour defaulted to 64-bit FPU mode. Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 21c046118e740704d0ba81f6281dc95905bc30a8 Author: Bobby Bingham <koorogi@xxxxxxxxxxxx> Date: Sun Nov 24 14:03:05 2013 -0600 target-sh4: move features flag after CPU_COMMON Everything before CPU_COMMON in the structure is cleared as part of a CPU reset. This included the features flag, which indicates whether SH4A instructions are supported or not. As a result, a CPU reset downgraded the CPU from an SH4A to an SH4. Signed-off-by: Bobby Bingham <koorogi@xxxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 2fe3798cd5fab65ee7c86758b1b7701d7fe3709f Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 6 16:08:05 2013 +0100 help: add id suboption to -iscsi Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 98e33f1b0eff84d9538cf957dde48c3f67f6f9d8 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Dec 9 13:40:15 2013 +0100 scsi-disk: fix WRITE SAME with large non-zero payload Due to a thinko in the patch that implemented WRITE SAME. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 02d38fcb2caa4454cf4ed728d5908c3cc9ba47be Author: Vlad Yasevich <vyasevic@xxxxxxxxxx> Date: Thu Nov 21 21:05:51 2013 -0500 net: Update netdev peer on link change When a link change occurs on a backend (like tap), we currently do not propage such change to the nic. As a result, when someone turns off a link on a tap device, for instance, then a guest doesn't see that change and continues to try to send traffic or run DHCP even though the lower-layer is disconnected. This is OK when the network is set up as a HUB since the the guest may be connected to other HUB ports too, but when it's set up as a netdev, it makes thinkgs worse. The patch addresses this by setting the peers link down only when the peer is not a HUBPORT device. With this patch, in the following config -netdev tap,id=net0 -device e1000,mac=XXXXX,netdev=net0 when net0 link is turned off, the guest e1000 shows lower-layer link down. This allows guests to boot much faster in such configurations. With windows guest, it also allows the network to recover properly since windows will not configure the link-local IPv4 address, and when the link is turned on, the proper address address is configured. Signed-off-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit cae2e5562cdaf3aafa1c4ec2d5f2b19af6c886dd Author: Amos Kong <akong@xxxxxxxxxx> Date: Mon Nov 11 11:48:36 2013 +0800 virtio-net: don't update mac_table in error state mac_table was always cleaned up first in handling VIRTIO_NET_CTRL_MAC_TABLE_SET command, and we din't recover mac_table content in error state, it's not correct. This patch makes all the changes in temporal variables, only update the real mac_table if everything is ok. We won't change mac_table in error state, so rxfilter notification isn't needed. This patch also fixed same problame in http://lists.nongnu.org/archive/html/qemu-devel/2013-11/msg01188.html (not merge) I will send patch for virtio spec to clarifying this change. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> Acked-by: Jason Wang <jasowang@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit aee09baf915491eabbf46f9cf55a445ec59b8269 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Wed Nov 6 18:34:55 2013 +0100 MAINTAINERS: Add netmap maintainers Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 58952137b0b3e1c9e3ce718ed952c1baf8832652 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Wed Nov 6 11:44:06 2013 +0100 net: Adding netmap network backend This patch adds support for a network backend based on netmap. netmap is a framework for high speed packet I/O. You can use it to build extremely fast traffic generators, monitors, software switches or network middleboxes. Its companion software switch VALE lets you interconnect virtual machines. netmap and VALE are implemented as a non-intrusive kernel module, support NICs from multiple vendors, are part of standard FreeBSD distributions and available in source format for Linux too. To compile QEMU with netmap support, use the following configure options: ./configure [...] --enable-netmap --extra-cflags=-I/path/to/netmap/sys where "/path/to/netmap" contains the netmap source code, available at http://info.iet.unipi.it/~luigi/netmap/ The same webpage contains more information about the netmap project (together with papers and presentations). Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 063c3378a9e3c25cc0afac3c72e4823d0621e352 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Dec 5 16:47:17 2013 +0100 block/iscsi: introduce bdrv_co_{readv, writev, flush_to_disk} this converts read, write and flush functions from aio to coroutines eliminating almost 200 lines of code. The requirement for libiscsi is bumped to version 1.4.0 which was released in may 2012. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit d97e7730816094a71cd1f19a56d7a73f77cdbf96 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Nov 28 11:18:56 2013 +0100 scsi-disk: fix VERIFY emulation VERIFY emulation was completely botched (and remained botched through all the refactorings). The command must be emulated both in check-medium mode (BYTCHK=00, which we implement by doing nothing) and in check-bytes mode (which we do not implement yet). Unlike WRITE AND VERIFY (which we treat simply as WRITE with FUA bit set), VERIFY cannot be handled like READ. In fact the device is _receiving_ data for VERIFY, not _sending_ it like READ. Cc: qemu-stable@xxxxxxxxxx Tested-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit d12ad44cc4cc9142179e64295608611f118b8ad8 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Nov 28 11:01:13 2013 +0100 scsi-bus: fix transfer length and direction for VERIFY command The amount of bytes to transfer depends on the BYTCHK field. If any data is transferred, it is sent to the device. Cc: qemu-stable@xxxxxxxxxx Tested-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 5ad04fb6f112cf2917909be4c22109dbb65fed18 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Dec 5 19:41:28 2013 +0100 libcacard: Fix compilation for older versions of glib (bug #1258168) See https://bugs.launchpad.net/bugs/1258168 libcacard/vscclient.c: In function 'do_socket_read': libcacard/vscclient.c:410: warning: implicit declaration of function 'g_warn_if_reached' libcacard/vscclient.c:410: warning: nested extern declaration of 'g_warn_if_reached' libcacard/vscclient.c: In function 'main': libcacard/vscclient.c:763: warning: implicit declaration of function 'g_byte_array_unref' libcacard/vscclient.c:763: warning: nested extern declaration of 'g_byte_array_unref' ... libcacard/vscclient.o: In function `do_socket_read': libcacard/vscclient.c:410: undefined reference to `g_warn_if_reached' libcacard/vscclient.o: In function `main': libcacard/vscclient.c:763: undefined reference to `g_byte_array_unref' g_warn_if_reached was added in glib 2.16, and g_byte_array_unref is supported since glib 2.22. QEMU requires glib 2.12, so both names must not be used. Instead of showing a warning for code which should not be reached, vscclient better stop running, so g_warn_if_reached is not useful for vscclient. In libcacard/vsclient.c, g_byte_array_unref can be replaced by g_byte_array_free. This is not generally true, so adding a compatibility layer in include/glib-compat.h is no option here. Reported-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Reported-by: Don Slutz <dslutz@xxxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit d58ce68a454e5ae9cbde0308def379e272f13b10 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Nov 29 14:25:33 2013 +0100 intel-hda: fix position buffer Fix position buffer updates to use the correct stream offset. Without this patch both IN (record) and OUT (playback) streams will update the IN buffer positions. The linux kernel notices and complains: hda-intel: Invalid position buffer, using LPIB read method instead. The bug may also lead to glitches when recording and playing at the same time: https://bugzilla.redhat.com/show_bug.cgi?id=947785 Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 7f0ba7bb4378f22b017e08947219a352d491bac4 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Dec 2 10:16:18 2013 +0100 adlib: fix patching of port I/O addresses Commit 2b21fb5 (adlib: sort offsets in portio registration, 2013-08-14) fixed the offsets in adlib_portio_list, but forgot the matching indices in adlib_realizefn. Reported at http://virtuallyfun.superglobalmegacorp.com/?p=3616 by "neozeed". Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 0e8ae611bda0dfb038da2d865801d8adbd692bad Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 2 10:49:13 2013 +0100 audio: adjust pulse to 100Hz wakeup rate Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 40a814b0b1789b94c483190b3208729b5182e5bd Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Wed Oct 9 21:38:32 2013 +0200 audio: Lower default wakeup rate to 100 times / second This is more then plenty to keep audio card fifos filles / emptied. This drops host cpu-load for audio playback inside a linux vm from 13% to 9%. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit a1d22a367d5780c9553b2cd5a24f665534ce6ed6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Dec 7 14:52:34 2013 +1300 target-cris: Use new qemu_ld/st opcodes Using the new opcodes we can reduce if/else trees to a single statement. Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Cc: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit b1829cdebe2c5cc0b445f2959dbdb63a48118b12 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 15:09:12 2013 +0100 qxl: Add missing trace.h (fix broken build) Commit ac86048bcd41129b18702ba63395f222871804de removed trace.h from console.h and ignored the fact that qxl-render.c needs this file (it includes qxl.h which includes console.h which included trace.h). Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit d2aa90cda81ae3f860dd047ce5e37e0473452d54 Merge: 9353137 3e40ba0 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sat Dec 7 07:47:24 2013 -0800 Merge remote-tracking branch 'awilliam/tags/vfio-pci-for-qemu-20131206.0' into staging vfio-pci updates include: - Update linux-headers to include KVM-VFIO device support - Enable QEMU support for KVM-VFIO device - Additional Nvidia x-vga quirk to ACK MSI interrupts - Debug options to disable MSI/X KVM acceleration - Fix to cleanup MSI-X vectors on shutdown and avoid IRQ route leaks The KVM-VFIO device support enables KVM to manage how it handles coherency instructions in the presence of non-coherent I/O. Dave Airlie had noted that the Nvidia MSI ACK support here may just be scratching the surface, but it's better than what we have now and it's only enabled via the x-vga option, so I'm willing to add since it does enable some users. # gpg: Signature made Fri 06 Dec 2013 12:28:19 PM PST using RSA key ID 3BB08B22 # gpg: Can't check signature: public key not found # By Alex Williamson # Via Alex Williamson * awilliam/tags/vfio-pci-for-qemu-20131206.0: vfio-pci: Release all MSI-X vectors when disabled vfio-pci: Add debug config options to disable MSI/X KVM support vfio-pci: Fix Nvidia MSI ACK through 0x88000 quirk vfio-pci: Make use of new KVM-VFIO device linux-headers: Update from v3.13-rc3 Message-id: 20131206204715.16731.12627.stgit@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 93531372f0f74bb4d886480c0c8aa0e4ca6f5423 Merge: 0c0cb6a ac9524d Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sat Dec 7 07:35:31 2013 -0800 Merge remote-tracking branch 'stefanha/block' into staging # By Paolo Bonzini (17) and others # Via Stefan Hajnoczi * stefanha/block: (48 commits) qemu-iotests: filter QEMU monitor \r\n aio: make aio_poll(ctx, true) block with no fds block: clean up bdrv_drain_all() throttling comments qcow2: use start_of_cluster() and offset_into_cluster() everywhere qemu-img: decrease progress update interval on convert qemu-img: round down request length to an aligned sector qemu-img: dynamically adjust iobuffer size during convert block/iscsi: set bs->bl.opt_transfer_length block: add opt_transfer_length to BlockLimits block/iscsi: set bdi->cluster_size qemu-img: fix usage instruction for qemu-img convert qemu-img: add support for skipping zeroes in input during convert qemu-nbd: add doc for option -f qemu-iotests: add test for snapshot in qemu-img convert qemu-img: add -l for snapshot in convert qemu-iotests: add 058 internal snapshot export with qemu-nbd case qemu-nbd: support internal snapshot export snapshot: distinguish id and name in load_tmp qemu-iotests: Split qcow2 only cases in 048 qemu-iotests: Clean up spaces in usage output ... Message-id: 1386347807-27359-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0c0cb6a2378f937410f5f55cbf3e3b2c20f293c6 Merge: 3c88da3 33f373d Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sat Dec 7 07:35:25 2013 -0800 Merge remote-tracking branch 'qemu-kvm/uq/master' into staging # By Alex Williamson (1) and others # Via Paolo Bonzini * qemu-kvm/uq/master: target-i386: fix cpuid leaf 0x0d qemu: mempath: prefault pages manually (v4) kvm: Query KVM for available memory slots Message-id: 1386345276-9803-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 3c88da3c243ff7b452026e207cbba853123250cc Merge: 2a576ee bcf2b7d Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sat Dec 7 07:35:16 2013 -0800 Merge remote-tracking branch 'kraxel/tags/pull-seabios-31b8b4e-1' into staging Update seabios to master snapshot (pre-1.7.4). Update vgabios, switch from lgplvgabios to seavgabios. Update build process to build both 128k and 256k bios versions. Use 256k bios for pc-*-2.0+ machine types. # gpg: Signature made Fri 06 Dec 2013 12:01:24 AM PST using RSA key ID D3E87138 # gpg: Can't check signature: public key not found # By Gerd Hoffmann # Via Gerd Hoffmann * kraxel/tags/pull-seabios-31b8b4e-1: pc: switch 2.0 machine types to large seabios binary roms: update vgabios binaries roms: update seabios binaries roms: enable seabios cross builds roms: build two seabios binaries roms: update seabios submodule to 31b8b4eea9d9ad58a73b22a6060d3ac1c419c26d add firmware to machine options add pc-{i440fx,q35}-2.0 machine types Message-id: 1386322527-23148-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 2a576ee6e36924bb3c3e6690e9ca35a9942e0634 Merge: 0a0ee0b e9eecb5 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sat Dec 7 07:35:01 2013 -0800 Merge remote-tracking branch 'otubo/seccomp' into staging # By Paul Moore # Via Eduardo Otubo * otubo/seccomp: seccomp: add kill() to the syscall whitelist Message-id: 1386075077-3240-1-git-send-email-otubo@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0a0ee0b93bdd6e1ef628283d00bb979e27655ebb Merge: 9ed5dac 981cbf5 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 6 12:59:58 2013 -0800 Merge remote-tracking branch 'kwolf/tags/for-anthony' into staging Block patches for 2.0 (flushing block-next) # gpg: Signature made Fri 29 Nov 2013 08:43:18 AM PST using RSA key ID C88F2FD6 # gpg: Can't check signature: public key not found # By Peter Lieven (17) and others # Via Kevin Wolf * kwolf/tags/for-anthony: (41 commits) qemu-iotests: Add sample image and test for VMDK version 3 vmdk: Allow read only open of VMDK version 3 qemu-iotests: Filter out 'qemu-io> ' prompt qemu-iotests: Filter qemu-io output in 025 block: Use BDRV_O_NO_BACKING where appropriate qemu-iotests: Test snapshot mode block: Enable BDRV_O_SNAPSHOT with driver-specific options qemu-iotests: Make test case 030, 040 and 055 deterministic qemu-iotest: Add pause_drive and resume_drive methods blkdebug: add "remove_break" command qemu-iotests: Drop local version of cancel_and_wait from 040 sheepdog: support user-defined redundancy option sheepdog: refactor do_sd_create() qdict: Optimise qdict_do_flatten() qdict: Fix memory leak in qdict_do_flatten() MAINTAINERS: add sheepdog development mailing list COW: Extend checking allocated bits to beyond one sector COW: Speed up writes qapi: Change BlockDirtyInfo to list block: per caller dirty bitmap ... Message-id: 1385743555-27888-1-git-send-email-kwolf@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 9ed5dacbfa0f3f74238854776385f150b68e78b9 Merge: cdac7a7 539891a Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 6 12:58:28 2013 -0800 Merge remote-tracking branch 'sstabellini/xen-2013-12-01' into staging # By Paul Durrant (1) and Wei Liu (1) # Via Stefano Stabellini * sstabellini/xen-2013-12-01: xen-pvdevice: make device-id property compulsory xen: fix two errors when debug is enabled Message-id: alpine.DEB.2.02.1312011829000.3198@xxxxxxxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit cdac7a7184065467ba45ec83a9abfeeae060ce4b Merge: a55d121 0b959cf Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 6 12:57:21 2013 -0800 Merge remote-tracking branch 'rth/auxv-2' into staging # By Richard Henderson # Via Richard Henderson * rth/auxv-2: linux-user: Use qemu_getauxval for AT_EXECFD util: Use qemu_getauxval in linux qemu_cache_utils_init tcg-s390: Use qemu_getauxval in query_facilities tcg-arm: Use qemu_getauxval tcg-ppc64: Use qemu_getauxval osdep: Create qemu_getauxval and qemu_init_auxval Message-id: 1385757754-10702-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit a55d121f4a932dcd19eb8164804cc98d5ea88e72 Merge: e679f05 a292678 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 6 12:56:51 2013 -0800 Merge remote-tracking branch 'riku/linux-user-for-upstream' into staging # By Erik de Castro Lopo (2) and others # Via Riku Voipio * riku/linux-user-for-upstream: linux-user: pass correct parameter to do_shmctl() linux-user: create target_structs header to place ipc_perm and shmid_ds flatload: fix non-GOT relocations linux-user: Implement handling of 5 POSIX timer syscalls. linux-user: Add target struct defs needed for POSIX timer syscalls. Message-id: cover.1385732338.git.riku.voipio@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit e679f05248e220b8ef587e8fd6c64ffe83b1e16f Merge: 783eb67 0b1fa34 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 6 12:54:35 2013 -0800 Merge remote-tracking branch 'kraxel/tags/pull-usb-1' into staging Improvements for usb3 bulk stream (usb core, xhci). Bugfixes for uas emulation. Add remote wakeup support for ehci. Add suspend support for xhci. Misc minor tweaks and fixes. # gpg: Signature made Thu 28 Nov 2013 11:44:49 PM PST using RSA key ID D3E87138 # gpg: Can't check signature: public key not found # By Hans de Goede (11) and others # Via Gerd Hoffmann * kraxel/tags/pull-usb-1: usb: move usb_{hi,lo} helpers to header file. usb: add vendor request defines trace-events: Clean up after removal of old usb-host code Revert "usb-tablet: Don't claim wakeup capability for USB-2 version" ehci: implement port wakeup xhci: Call usb_device_alloc/free_streams usb: Add usb_device_alloc/free_streams usb: Add max_streams attribute to endpoint info uas: s/ui/iu/ uas: Fix response iu struct definition uas: Bounds check tags when using streams uas: Streams are numbered 1-y, rather then 0-x uas: Fix / cleanup usb_uas_task error handling uas: Only use report iu-s for task_mgmt status reporting scsi: Add 2 new sense codes needed by uas xhci: add support for suspend/resume xhci: Add a few missing checks for disconnected devices Message-id: 1385712381-30918-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 783eb67e7a125eaf226e5ea4f5df97c1ea42311e Merge: 7dc65c0 6fedcaa Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 6 12:52:50 2013 -0800 Merge remote-tracking branch 'mjt/trivial-patches' into staging # By Stefan Weil (9) and others # Via Michael Tokarev * mjt/trivial-patches: eeprom93xx: fix coding style hw/ppc/mac.h: remove unused BIOS_FILENAME definition Don't crash on keyboard input with no handler libcacard/vcard_emul_nss: Remove unused statement (value stored is never read) libcacard/cac: Remove unused statement (value stored is never read) virtio-net: fix the indent misc: Replace 'struct QEMUTimer' by 'QEMUTimer' qobject: Fix compiler warning (missing gnu_printf format attribute) acpi-build: Fix compiler warning (missing gnu_printf format attribute) .gitignore: Ignore config.status gtk: Replace conditional debug messages by trace methods console: Replace conditional debug messages by trace methods trace: Remove trace.h from hw/usb/hcd-ehci.h (less dependencies) trace: Remove trace.h from console.h (less dependencies) Message-id: 1385408466-13183-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 6fedcaa1c5419fa89c31fd34dabbd71861c615d2 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Wed Dec 4 10:27:29 2013 +0400 eeprom93xx: fix coding style scripts/checkpatch.pl reports about some style problems, this commit fixes some of them: ERROR: space prohibited before open square bracket '[' + .fields = (VMStateField []) { ERROR: space prohibited after that '!' (ctx:BxW) + if (! eeprom->eecs && eecs) { ^ ERROR: space prohibited after that '!' (ctx:WxW) + } else if (eeprom->eecs && ! eecs) { ^ ERROR: space prohibited after that '!' (ctx:WxW) + } else if (eecs && ! eeprom->eesk && eesk) { ^ ERROR: switch and case should be at the same indent switch (address >> (eeprom->addrbits - 2)) { + case 0: [...] + case 1: [...] + case 2: [...] + case 3: ERROR: return is not a function, parentheses are not required + return (eeprom->eedo); ERROR: switch and case should be at the same indent switch (nwords) { + case 16: + case 64: [...] + case 128: + case 256: [...] + default: Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Cc: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Cc: qemu-trivial@xxxxxxxxxx Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 3e40ba0faf0822fa78336fe6cd9d677ea9b14f1b Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Dec 6 11:16:40 2013 -0700 vfio-pci: Release all MSI-X vectors when disabled We were relying on msix_unset_vector_notifiers() to release all the vectors when we disable MSI-X, but this only happens when MSI-X is still enabled on the device. Perform further cleanup by releasing any remaining vectors listed as in-use after this call. This caused a leak of IRQ routes on hotplug depending on how the guest OS prepared the device for removal. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx commit b3ebc10c373ed5922d4bdb5076fd0e9fd7ff8056 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Dec 6 11:16:29 2013 -0700 vfio-pci: Add debug config options to disable MSI/X KVM support It's sometimes useful to be able to verify interrupts are passing through correctly. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 96eeeba0db38b856eb2cae0e4a2a620d8d65771a Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Dec 6 11:16:23 2013 -0700 vfio-pci: Fix Nvidia MSI ACK through 0x88000 quirk When MSI is enabled on Nvidia GeForce cards the driver seems to acknowledge the interrupt by writing a 0xff byte to the MSI capability ID register using the PCI config space mirror at offset 0x88000 from BAR0. Without this, the device will only fire a single interrupt. VFIO handles the PCI capability ID/next registers as virtual w/o write support, so any write through config space is currently dropped. Add a check for this and allow the write through the BAR window. The registers are read-only anyway. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 5b49ab188ff0339aa3097ce7f5309f1306092f9e Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Dec 6 11:16:13 2013 -0700 vfio-pci: Make use of new KVM-VFIO device Add and remove groups from the KVM virtual VFIO device as we make use of them. This allows KVM to optimize for performance and correctness based on properties of the group. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit bf63839ffa2d0eebb1eb1706022f46e93b6fec08 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Dec 6 11:16:09 2013 -0700 linux-headers: Update from v3.13-rc3 Update to tag v3.13-rc3 (374b105797c3d4f29c685f3be535c35f5689b30e) Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit ac9524dc55dc32e492ac3e6fbc9785be7168f8a2 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Nov 14 15:24:58 2013 +0100 qemu-iotests: filter QEMU monitor \r\n SMTP does not preserve newlines. This is normally not a problem if the email body uses DOS or UNIX newlines consistently. In 051.out we mix UNIX newlines with DOS newlines (since QEMU monitor output uses \r\n). This patch filters the QEMU monitor output so the golden master file uses UNIX newlines exclusively. The result is that patches touching 051.out will apply cleanly without mangling newlines after this commit. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d3fa923044321b2ccc12bbdedd582d2c49d958aa Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Nov 26 16:18:01 2013 +0100 aio: make aio_poll(ctx, true) block with no fds This patch drops a special case where aio_poll(ctx, true) returns false instead of blocking if no file descriptors are waiting on I/O. Now it is possible to block in aio_poll() to wait for aio_notify(). This change eliminates busy waiting. bdrv_drain_all() used to rely on busy waiting to completed throttled I/O requests but this is no longer required so we can simplify aio_poll(). Note that aio_poll() still returns false when aio_notify() was used. In other words, stopping a blocking aio_poll() wait is not considered making progress. Adjust test-aio /aio/bh/callback-delete/one which assumed aio_poll(ctx, true) would immediately return false instead of blocking. Reviewed-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0b06ef3bdd17742ae50c0662d3fe8ed944648890 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Nov 26 16:18:00 2013 +0100 block: clean up bdrv_drain_all() throttling comments Since cc0681c45430a1f1a4c2d06e9499b7775afc9a18 ("block: Enable the new throttling code in the block layer.") bdrv_drain_all() no longer spins. The code used to look as follows: do { busy = qemu_aio_wait(); /* FIXME: We do not have timer support here, so this is effectively * a busy wait. */ QTAILQ_FOREACH(bs, &bdrv_states, list) { while (qemu_co_enter_next(&bs->throttled_reqs)) { busy = true; } } } while (busy); Note that throttle requests are kicked but I/O throttling limits are still in effect. The loop spins until the vm_clock time allows the request to make progress and complete. The new throttling code introduced bdrv_start_throttled_reqs(). This function not only kicks throttled requests but also temporarily disables throttling so requests can run. The outdated FIXME comment can be removed. Also drop the busy = true assignment since we overwrite it immediately afterwards. Reviewed-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ac95acdb8e0876fa489bd31a48e8ecd6ef901d67 Author: Hu Tao <hutao@xxxxxxxxxxxxxx> Date: Thu Dec 5 14:32:34 2013 +0800 qcow2: use start_of_cluster() and offset_into_cluster() everywhere Signed-off-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 405889820bcd5c2abf4eb70598e96f525f862c0f Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:09 2013 +0100 qemu-img: decrease progress update interval on convert when doing very large jobs updating the progress only every 2% is too rare. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 24f833cd43dbfb5f8ae99e8a6d3691671622d3ea Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:07 2013 +0100 qemu-img: round down request length to an aligned sector this patch shortens requests to end at an aligned sector so that the next request starts aligned. [Squashed Peter's fix for bdrv_get_info() failure discussed on the mailing list. --Stefan] Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bcf2b7d2af7c54bb42be1229df9e78ba7d08d2a7 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 2 12:52:04 2013 +0100 pc: switch 2.0 machine types to large seabios binary Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 6eefccc0bb9c34051b1e21880fc3a1c1c8686edd Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 2 13:01:20 2013 +0100 roms: update vgabios binaries This also switches from lgplvgabios to seavgabios. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 385724e7887670e17865d97cd8106a235f113faa Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 2 12:58:45 2013 +0100 roms: update seabios binaries Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 07403a5a0319d1c9783ea7da13782c8835a42cc9 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Oct 15 17:05:55 2013 +0200 roms: enable seabios cross builds Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 94e68caaa089f90f5210435c7e07e97701c98ee5 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Sep 30 11:37:12 2013 +0200 roms: build two seabios binaries Adding xhci support to seabios made it jump over the 128k line. Changing the bios size breaks migration, so we have to keep a 128k seabios binary for old machine types. New machine types can use a large 256k bios which should be big enougth for a while. This patch updates the seabios build process to build seabios twice, once full featured and once with xen and xhci turned off so the resulting binary is small enougth to fit into 128k. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 11938d7863203d5ca523865761cac6130783c858 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Oct 15 17:02:19 2013 +0200 roms: update seabios submodule to 31b8b4eea9d9ad58a73b22a6060d3ac1c419c26d Updates seabios to git master snapshot. seabios is in freeze now, update to final 1.7.4 will follow later this year. Summary of major changes: * Support for acpi table loading from qemu. * Support for the xhci host adapter. * Support for the pvscsi HBA. * Various minor bug fixes. * Lots of cleanups. Full shortlog since 1.7.3 (note that some of these changes have been cherry-picked into 1.7.3-stable): Evgeny Budilovsky (1): Add pvscsi boot support Gerd Hoffmann (27): coreboot: add cbmem console support Add CONFIG_DEBUG_COREBOOT config option apm: fix shutdown ahci: add missing check for allocation failure bochsvga: fallback to stdvga if dispi interface isn't present Add generic qemu detection Drop coreboot qemu detection Add qemu detection to csm uas: add (temporary) superspeed stopgap usb: add usb_update_pipe() usb: add xhci support fix buildversion.sh build: simplify cross builds build: create output dirs in do-kconfig build: explicitly set ROM size Add qemu_cfg_e820 function. Add support for etc/e820 fw_cfg file pci: don't reorder entries when moving to 64bit list pci: don't map usb host adapters above 4G pci: align 64bit pci regions to 1G pci: tweak + comment minimum allocations pci: log pci windows pci: map 64-bit BARs at location provided by emulator ahci: zap real mode macros ahci: remote some parentheses ahci: alloc structs in high memory add hw/serialio.c to SRC32SEG Jonathan A. Kollasch (1): vgahooks: add SM720 VGA BIOS hooks for WIN Enterprises MB-60470 Kevin O'Connor (80): Fix USB EHCI detection that was broken in hlist conversion of PCIDevices. Update README to include info on VARLOW variables. PIC code cleanups. Move internal timer code from clock.c to a new file timer.c. Don't pass khz to pmtimer_setup - it's always PM_TIMER_FREQUENCY. Add helper functions to convert timer irqs to milliseconds. Improve accuracy of internal timers. Rename cpu_khz to TimerKHz. Shift CPU TSC down to reduce need for 64bit variables. Rename check_timer() function (and similar) to irqtimer_check(). Rename check_tsc() (and similar) to timer_check() and use u32. Separate out timer setup code. Unify pmtimer_read() and pittimer_read() code. Default unused UMB areas to be read-only. Add missing mathcp_setup() call to CSM code. Fix bug in CBFS file walking with compressed files. Support custom boot menu prompt and custom boot menu key. Minor cleanups to smm assembler. Add config option to support memory allocations in 9-segment. Minor - no need to declare MaxCountCPUs as VARFSEG. Minor - simplify rom_reserve(). Rename tools/ directory to scripts/ directory. Update kconfig to latest version. build: Don't use vpath makefile directive. Move code centered around specific hardware devices to src/hw/ Move code cenetered around firmware initialization to src/fw/ build: Reorder makefile source list to group like files together. README: Update readme to note scripts/ directory rename and vgasrc/ directory. vgabios: Rename stdvga_bpp_factor to stdvga_vram_ratio. vgabios: Limit the range of the VBE number of "pages" parameter. readme: Minor - fix typo in readme. Split x86 specific functions out of util.c/h to new files x86.c/h. Move keyboard calling code from util.c to boot.c. Rename util.c to string.c and introduce string.h. build: Perform compile checking on vgasrc code. Move stacks.c definitions from util.h to new file stacks.h. Move romfile definitions from util.h to new file romfile.h. Move malloc code from pmm.c to new files malloc.c and malloc.h. Move function definitions for output.c from util.h to new file output.h. Move definition of struct segoff_s from farptr.h to types.h. build: Fix import of gcc dependency files. Move pirtable definitions from hw/pci.h to std/pirtable.h and util.h. Move optionroms.h to std/optionrom.h and util.h. Move vbe.h to std/vbe.h. Move fw/LegacyBios.h to std/LegacyBios.h and remove csm.h. Move fw/smbios.h to std/smbios.h. Move fw/mptable.h to std/mptable.h. Move fw/acpi.h to std/acpi.h. Move pnpbios definition to new file std/pnpbios.h. Move pmm definitions to new file std/pmm.h. Split disk.h into block.h and std/disk.h. Move standard bda type info from biosvar.h to std/bda.h. Merge bmp.h, boot.h, jpeg.h, and post.h into util.h. Sort the sections of util.h. Move PIT setup from clock.c to hw/timer.c. Rename hw/cmos.h to hw/rtc.h and copy RTC code from clock.c to hw/rtc.c. Move dma code to new file hw/dma.c. Remove ioport.h; disperse its contents to other header files. Minor - update file comments in src/malloc.c. Rename fields of 'struct chs_s' and use in floppy lba2chs(). Rearrange stack_hop_back() call in wait_irq, check_irqs, and _farcall16. Minor - move call16 assembler in romlayout.S. Make __call16 use C calling convention and support two passed parameters. Update _farcall16() to pass segment of callregs explicitly. Support call16() calls after entering 32bit mode from call32(). Run ahci code entirely in 32bit mode. Build different final files for QEMU, coreboot, and CSM. Convert op->drive_g from a 16bit pointer to a 32 bit "GLOBALFLAT" pointer. megasas: Don't attempt to access 'struct pci_device' at runtime. Minor - eliminate the SET_GLOBAL macro. Move low-level hardware writing from output.c to new file hw/serialio.c. vgabios: Load the DAC palette in "packed" modes on Cirrus and BochsVGA. vgabios: Support custom fonts in vga framebuffer text writing. vgabios: Add bochsvga "HDTV" resolutions. vgabios: Avoid possible divide by zero in bochsvga_set_displaystart. vgabios: Work around lack of support for "calll" in x86emu emulation. Minor - update file comment on bootsplash.c. vgabios: Support allocating an extra stack for vgabios calls and default on. vgabios: Move initialization code to new file vgainit.c. floppy: Minor - add warnings if timeouts occur. Michael S. Tsirkin (6): acpi: sync FADT flags from PIIX4 to Q35 acpi_extract.py: document DEVICE directives biostables: support looking up RSDP romfile_loader: utility to patch in-memory ROM files acpi: load and link tables through romfile loader acpi: strip compiler info in built-in DSDT if any Paul Menzel (2): ACPI DSDT: Make control method `IQCR` serialized hw/usb-xhci.c: Code refactoring to not override initializers in `speed_from_xhci[16]` Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 33f373d7c56350fd2ec3e31f4f2c46cb49464911 Author: Liu Jinsong <jinsong.liu@xxxxxxxxx> Date: Tue Dec 3 04:17:50 2013 +0800 target-i386: fix cpuid leaf 0x0d Fix cpuid leaf 0x0d which incorrectly parsed eax and ebx. However, before this patch the CPUID worked fine -- the .offset field contained the size _and_ was stored in the register that is supposed to hold the size (eax), and likewise the .size field contained the offset _and_ was stored in the register trhat is supposed to hold the offset (ebx). Signed-off-by: Liu Jinsong <jinsong.liu@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit f2521c9023067a007d18b844fe7639c1c5b6f2ac Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:06 2013 +0100 qemu-img: dynamically adjust iobuffer size during convert since the convert process is basically a sync operation it might be benificial in some case to change the hardcoded I/O buffer size to a greater value. This patch increases the I/O buffer size if the output driver advertises an optimal transfer length or discard alignment that is greater than the default buffer size of 2M. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7572ddc8db114d8c437a97ca3eaedab397f66cda Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:05 2013 +0100 block/iscsi: set bs->bl.opt_transfer_length Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7337acaf219fc988e7ba91780b11770ff95169b4 Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:04 2013 +0100 block: add opt_transfer_length to BlockLimits Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1c0704a556dbb004a3b82791779760f418053951 Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:03 2013 +0100 block/iscsi: set bdi->cluster_size this patch aims to set bdi->cluster_size to the internal page size of the iscsi target so that enabled callers can align requests properly. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 049b09825fe479f4caa013ccde0ff87fc9d82856 Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:02 2013 +0100 qemu-img: fix usage instruction for qemu-img convert Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 13c28af87a5541a9b09a59502b876a1725fb502d Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:01 2013 +0100 qemu-img: add support for skipping zeroes in input during convert we currently do not check if a sector is allocated during convert. This means if a sector is unallocated that we allocate a bounce buffer of zeroes, find out its zero later and do not write it in the best case. In the worst case this can lead to reading blocks from a raw device (like iSCSI) altough we could easily know via get_block_status that they are zero and simply skip them. This patch also fixes the progress output not being at 100% after a successful conversion. Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4323fdcf9451deaaf48468afa91b8bcaeac00cff Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 4 17:10:59 2013 +0800 qemu-nbd: add doc for option -f Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f33d287393d58f5513d25b097310ed4706fbf5b5 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 4 17:10:58 2013 +0800 qemu-iotests: add test for snapshot in qemu-img convert Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ef80654d0dc1edf2dd2a51feff8cc3e1102a6583 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 4 17:10:57 2013 +0800 qemu-img: add -l for snapshot in convert Now qemu-img convert have similar options as qemu-nbd for internal snapshot. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 9c468a013fd0b0eb6154f8c5cfd2b1d498a86113 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 4 17:10:56 2013 +0800 qemu-iotests: add 058 internal snapshot export with qemu-nbd case This case can't run when IMGPROTO=nbd, since it needs to create some internal snapshot which would fail for EOF write request, even when TEST_IMG is exported with "-f raw" in common.rc, so set _supported_proto to file. _require_command() is changed to tip what util is missing, instead of printing a blank. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8c116b0e4141400f8d43a7e6dac8ff3adcc8aadd Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 4 17:10:55 2013 +0800 qemu-nbd: support internal snapshot export Now it is possible to directly export an internal snapshot, which can be used to probe the snapshot's contents without qemu-img convert. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7b4c4781e390a041fa0ef70817678f1b97fc6db6 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 4 17:10:54 2013 +0800 snapshot: distinguish id and name in load_tmp Since later this function will be used so improve it. The only caller of it now is qemu-img, and it is not impacted by introduce function bdrv_snapshot_load_tmp_by_id_or_name() that call bdrv_snapshot_load_tmp() twice to keep old search logic. bdrv_snapshot_load_tmp_by_id_or_name() return int to let caller know the errno, and errno will be used later. Also fix a typo in comments of bdrv_snapshot_delete(). Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 34602dd6424c4f1cc414ba672f4f430182b5d9f2 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Dec 4 09:07:03 2013 +0800 qemu-iotests: Split qcow2 only cases in 048 Format "raw" doesn't always work on certain file systems (e.g. tmpfs). Use qcow2 to make the allocation status explicit and split into a new case. [Resolved merge conflict due to "qemu-io> " prompt filter, added 074 to group file, and fixed up s/048/074/ copy-paste mistake. --Stefan] Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 236c796432bed70e442aa617807a528c18b1ebd3 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Dec 4 09:07:02 2013 +0800 qemu-iotests: Clean up spaces in usage output Whitespace changes to align columns. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e14fb91312b27754aa30e78d4bb4ad5cb183b646 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Dec 4 09:07:01 2013 +0800 qemu-iotests: Change default cache mode to "writeback" So that the tests can run faster. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f210a83c1f809516acd9179d02d8c986c5db24cd Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Dec 4 09:07:00 2013 +0800 qemu-iotests: Add _default_cache_mode and _supported_cache_modes This replaces _unsupported_qemu_io_options and check for support of current cache mode, and allow to provide a default if user didn't specify. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 58cc2ae1e3f9f8cd6830a0af116c51c3355710d3 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Dec 4 09:06:59 2013 +0800 qemu-iotests: Honour cache mode in iotests.py This will allow overriding cache mode from the "-c mode" option. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3baa84491a43c6ba4909cbff69a9f045df9f4879 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Dec 4 09:06:58 2013 +0800 qemu-iotests: Add "-c <cache-mode>" option The option sets cache mode used in the tests. "-nocache" is changed to an alias to "-c none", and internally passes "-t none" to qemu-io. Python scripts will make use of option this in the next commit. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f8413b3c23b08a547ce18609acc6fae5fd04ed5c Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Dec 4 11:06:36 2013 +0100 qcow2: Zero-initialise first cluster for new images Strictly speaking, this is only required for has_zero_init() == false, but it's easy enough to just do a cluster-aligned write that is padded with zeros after the header. This fixes that after 'qemu-img create' header extensions are attempted to be parsed that are really just random leftover data. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 66f6b8143ba0fd873a0b4b4b3da41cf604bc5a11 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Dec 3 14:57:52 2013 +0100 block: Close backing file early in bdrv_img_create Leaving the backing file open although it is not needed anymore can cause problems if it is opened through a block driver which allows exclusive access only and if the create function of the block driver used for the top image (the one being created) tries to close and reopen the image file (which will include opening the backing file a second time). In particular, this will happen with a backing file opened through qemu-nbd and using qcow2 as the top image file format (which reopens the image to flush it to disk). In addition, the BlockDriverState in bdrv_img_create() is used for the backing file only; it should therefore be made local to the respective block. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 84f94a9a82487639bc87d5f09f938c9f6a61f79a Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:40:01 2013 +0100 scsi-disk: correctly implement WRITE SAME Fetch the data to be written from the input buffer. If it is all zeroes, we can use the write_zeroes call (possibly with the new MAY_UNMAP flag). Otherwise, do as many write cycles as needed, writing 512k at a time. Strictly speaking, this is still incorrect because a zero cluster should only be written if the MAY_UNMAP flag is set. But this is a bug in qcow2 and the other formats, not in the SCSI code. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 823bd7391c96ba675f20fd6d952d1cb6e1ffb851 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:40:00 2013 +0100 scsi-disk: reject ANCHOR=1 for UNMAP and WRITE SAME commands Since we report ANC_SUP==0 in VPD page B2h, we need to return an error (ILLEGAL REQUEST/INVALID FIELD IN CDB) for all WRITE SAME requests with ANCHOR==1. Inspired by a similar patch to the LIO in-kernel target. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c5fd1fb038405ed13496761970b3b531f747a892 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:59 2013 +0100 scsi-disk: catch write protection errors in UNMAP This is the same that is already done for WRITE SAME. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e18d90c15bab0d47d8f30696058abfb78396081f Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:58 2013 +0100 qemu-iotests: 033 is fast Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 97a2ae34537882df34810d538ab1f51085499d2c Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:57 2013 +0100 raw-posix: add support for write_zeroes on XFS and block devices The code is similar to the implementation of discard and write_zeroes with UNMAP. However, failure must be propagated up to block.c. The stale page cache problem can be reproduced as follows: # modprobe scsi-debug lbpws=1 lbprz=1 # ./qemu-io /dev/sdXX qemu-io> write -P 0xcc 0 2M qemu-io> write -z 0 1M qemu-io> read -P 0x00 0 512 Pattern verification failed at offset 0, 512 bytes qemu-io> read -v 0 512 00000000: cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc ................ ... # ./qemu-io --cache=none /dev/sdXX qemu-io> write -P 0xcc 0 2M qemu-io> write -z 0 1M qemu-io> read -P 0x00 0 512 qemu-io> read -v 0 512 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ ... And similarly with discard instead of "write -z". Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d0b4503ed2d8713791c38839341b023f78d1a3d9 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:56 2013 +0100 raw-posix: implement write_zeroes with MAY_UNMAP for block devices See the next commit for the description of the Linux kernel problem that is worked around in raw_open_common. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 260a82e524b7f86c12b8e39d4c3f208af95645f7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:55 2013 +0100 raw-posix: implement write_zeroes with MAY_UNMAP for files Writing zeroes to a file can be done by punching a hole if MAY_UNMAP is set. Note that in this case ENOTSUP is not ignored, but makes the block layer fall back to the generic implementation. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit fa6252b0565526ec2347e248172f91771e0d9f47 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:54 2013 +0100 block/iscsi: check WRITE SAME support differently depending on MAY_UNMAP The current check is right for MAY_UNMAP=1. For MAY_UNMAP=0, just try and fall back to regular writes as soon as a WRITE SAME command fails. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2af8a1a704a352bab2e9eaf803db0b3552e826d0 Author: Peter Lieven <pl@xxxxxxx> Date: Fri Nov 22 13:39:53 2013 +0100 block/iscsi: updated copyright added myself to reflect recent work on the iscsi block driver. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4b52498e62d02a30f780875f54431d1bad0bcabd Author: Peter Lieven <pl@xxxxxxx> Date: Fri Nov 22 13:39:52 2013 +0100 block/iscsi: remove .bdrv_has_zero_init since commit 3ac21627 the default value changed to 0. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit cffb1ec600de83f693a23578fc2f344c1af9b96f Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:51 2013 +0100 block drivers: expose requirement for write same alignment from formats This will let misaligned but large requests use zero clusters. This is important because the cluster size is not guest visible. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 95de6d7078b029b73708059a17cef20f332adcb7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:50 2013 +0100 block drivers: add discard/write_zeroes properties to bdrv_get_info implementation Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 97b00e285119e611f500686f32f9bccffbb9126a Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:49 2013 +0100 vpc, vhdx: add get_info Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b8d71c09f31a9cae248d167dddc75c66d5135ff2 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:48 2013 +0100 block: make bdrv_co_do_write_zeroes stricter in producing aligned requests Right now, bdrv_co_do_write_zeroes will only try to align the beginning of the request. However, it is simpler for many formats to expect the block layer to separate both the head *and* the tail. This makes sure that the format's bdrv_co_write_zeroes function will be called with aligned sector_num and nb_sectors for the bulk of the request. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7ce21016b69b512bf4777965a4292318f2bc7544 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:47 2013 +0100 block: handle ENOTSUP from discard in generic code Similar to write_zeroes, let the generic code receive a ENOTSUP for discard operations. Since bdrv_discard has advisory semantics, we can just swallow the error. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d5ef94d43da8c57a2d597efbdec3d9a54d97fdf7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:46 2013 +0100 block: add bdrv_aio_write_zeroes This will be used by the SCSI layer. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 94d6ff21f48c8c98e6e9eef58cc6f6346c9dd851 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:45 2013 +0100 block: add flags argument to bdrv_co_write_zeroes tracepoint Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d20d9b7c6723d0123b7d60dd5557aa0a6599f471 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:44 2013 +0100 block: add flags to BlockRequest This lets bdrv_co_do_rw receive flags, so that it can be used for zero writes. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d51e9fe505f7c7b97762100dd0e42cef43c90524 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:43 2013 +0100 block: generalize BlockLimits handling to cover bdrv_aio_discard too bdrv_co_discard is only covering drivers which have a .bdrv_co_discard() implementation, but not those with .bdrv_aio_discard(). Not very nice, and easy to avoid. Suggested-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e9eecb5bf82a71564bf018fcbbfc6cda19cab6c2 Author: Paul Moore <pmoore@xxxxxxxxxx> Date: Thu Nov 21 10:40:15 2013 -0500 seccomp: add kill() to the syscall whitelist The kill() syscall is triggered with the following command: # qemu -sandbox on -monitor stdio \ -device intel-hda -device hda-duplex -vnc :0 The resulting syslog/audit message: # ausearch -m SECCOMP ---- time->Wed Nov 20 09:52:08 2013 type=SECCOMP msg=audit(1384912328.482:6656): auid=0 uid=0 gid=0 ses=854 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 pid=12087 comm="qemu-kvm" sig=31 syscall=62 compat=0 ip=0x7f7a1d2abc67 code=0x0 # scmp_sys_resolver 62 kill Reported-by: CongLi <coli@xxxxxxxxxx> Tested-by: CongLi <coli@xxxxxxxxxx> Signed-off-by: Paul Moore <pmoore@xxxxxxxxxx> Acked-by: Eduardo Otubo <otubo@xxxxxxxxxxxxxxxxxx> commit af057fe74092df2e7a576448ddbdc0daac1370bf Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Dec 3 10:41:05 2013 +0800 vmdk: Fix creating big description file The buffer for description file was 4096 which only covers a few hundred of extents. This changes the buffer to dynamic allocated with g_strdup_printf in order to support bigger cases. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a6b6d08a3bf93c8cc6521336a89ac0467ab7edca Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Mon Dec 2 21:17:19 2013 +0400 hw/ppc/mac.h: remove unused BIOS_FILENAME definition This definition has been moved to prep.c. Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 4282c8277013dc5613b8f27845f6121b66b7cbff Author: Don Koch <dkoch@xxxxxxxxxxx> Date: Tue Nov 19 15:01:59 2013 -0500 Don't crash on keyboard input with no handler Prevent a call to put_kbd if null. On shutdown of some OSes, the keyboard handler goes away before the system is down. If a key is typed during this window, qemu crashes. Signed-off-by: Don Koch <dkoch@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit efbc42e5848bb8000bfa6927847f1870850942ba Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 17 22:12:18 2013 +0100 libcacard/vcard_emul_nss: Remove unused statement (value stored is never read) Warning from ccc-analyzer: libcacard/vcard_emul_nss.c:937:9: warning: Value stored to 'cert_count' is never read cert_count = options->vreader[i].cert_count; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 754e72e195faca8042072ada054bc3668aa1647d Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 17 22:11:23 2013 +0100 libcacard/cac: Remove unused statement (value stored is never read) Warning from ccc-analyzer: libcacard/cac.c:192:13: warning: Value stored to 'ret' is never read ret = VCARD_DONE; ^ ~~~~~~~~~~ Here 'ret' is assigned a value inside of a switch statement and also after that switch statement. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit cb77e358152afb348a513d8eb404cb7ff65cfad2 Author: Zhi Yong Wu <wuzhy@xxxxxxxxxxxxxxxxxx> Date: Wed Nov 27 15:35:26 2013 +0800 virtio-net: fix the indent Signed-off-by: Zhi Yong Wu <wuzhy@xxxxxxxxxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 1246b259f846136d58a89568fdc0421d02e4df65 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Dec 1 08:49:47 2013 +0100 misc: Replace 'struct QEMUTimer' by 'QEMUTimer' Most code already used QEMUTimer without the redundant 'struct' keyword. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 47908a0f66c5369a94e93d951a5d0c28d007ff80 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 17 19:00:42 2013 +0100 qobject: Fix compiler warning (missing gnu_printf format attribute) gcc 4.8.2 reports this warning when extra warnings are enabled (-Wextra): CC qobject/qerror.o qobject/qerror.c: In function â??qerror_from_infoâ??: qobject/qerror.c:53:5: error: function might be possible candidate for â??gnu_printfâ?? format attribute [-Werror=suggest-attribute=format] qerr->err_msg = g_strdup_vprintf(fmt, *va); ^ Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 867d898ccf50ef095b95c403d7dc809c188b14e2 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 17 19:00:22 2013 +0100 acpi-build: Fix compiler warning (missing gnu_printf format attribute) gcc 4.8.2 reports this warning when extra warnings are enabled (-Wextra): CC m68k-softmmu/hw/m68k/mcf5206.o hw/i386/acpi-build.c: In function â??build_append_namesegâ??: hw/i386/acpi-build.c:294:5: error: function might be possible candidate for â??gnu_printfâ?? format attribute [-Werror=suggest-attribute=format] g_string_vprintf(s, format, args); ^ When this warning is fixed, there is a new compiler warning: CC i386-softmmu/hw/i386/acpi-build.o hw/i386/acpi-build.c: In function â??build_append_notifyâ??: hw/i386/acpi-build.c:632:5: error: format not a string literal and no format arguments [-Werror=format-security] build_append_nameseg(method, name); ^ This is fixed here, too. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit b2e2395f1308f784acd2e0af0d6f2a6f5668aafb Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Nov 22 14:39:56 2013 +0800 .gitignore: Ignore config.status Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ef0dd982cb7dbff3ea234fe48187d556e69d6765 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 10 16:24:02 2013 +0100 gtk: Replace conditional debug messages by trace methods Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 5d28b0e960cd3a99f7e013900a0e12468720b402 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 10 16:04:16 2013 +0100 console: Replace conditional debug messages by trace methods Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 12269616227c2ee34f4c853cae676e18a5e01b18 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 10 14:20:17 2013 +0100 trace: Remove trace.h from hw/usb/hcd-ehci.h (less dependencies) This reduces the dependencies on trace.h. Only one source file which needs hcd-ehci.h also needs trace.h. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ac86048bcd41129b18702ba63395f222871804de Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 10 14:20:16 2013 +0100 trace: Remove trace.h from console.h (less dependencies) This reduces the dependencies on trace.h. Only two source files which need console.h also need trace.h. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 7b6b145dbc62162df818dc2c5153defd0417c688 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Sun Dec 1 22:23:47 2013 +0100 coroutine: remove unused CoQueue AioContext The AioContext ctx field is apparently unused in qemu codebase since 02ffb504485. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f287c41381efe172ff5dc62498e2afc83a9ab995 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Sun Dec 1 22:23:34 2013 +0100 coroutine: remove qemu_co_queue_wait_insert_head qemu_co_queue_wait_insert_head() is unused in qemu code base now. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1442d3e6912d7ec88480099503cfa0aeaedf5634 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Oct 15 16:57:45 2013 +0200 add firmware to machine options This patch adds firmware to the machine options. -bios <file> becomes a shortcut for -machine firmware=<file>. Advantage is that the firmware can be specified via config file as -machine is parsed using QemuOpts and it is also possible to use different defaults for different machine types (via QEMUMachine->default_machine_opts). Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit aeca6e8d8b7dba78c3d1622463e238b773d9df13 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 2 12:47:29 2013 +0100 add pc-{i440fx,q35}-2.0 machine types Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 539891a85d17bd8c23a2547e52e26993350d2c3a Author: Paul Durrant <paul.durrant@xxxxxxxxxx> Date: Wed Nov 13 15:25:07 2013 +0000 xen-pvdevice: make device-id property compulsory The intention of the Xen PV device is that it is used as a parent device for PV drivers in Xen HVM guests and the set of PV drivers that bind to the device is determined by its device ID (and possibly vendor ID and revision). As such, the device should not have a default device ID, it should always be supplied by the Xen toolstack. Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit d18e173a07a9c1e7f087384a8832d295043136bb Author: Wei Liu <wei.liu2@xxxxxxxxxx> Date: Mon Oct 14 13:53:53 2013 +0100 xen: fix two errors when debug is enabled This patch fixes: 1. build error in xen_pt.c when XEN_PT_LOGGING_ENABLED is defined 2. debug output format string error when DEBUG_XEN is defined In the second case I also have the output info in consistent with the output in mapping function - that is, print start_addr instead of phys_offset. Signed-off-by: Sander Eikelenboom <linux@xxxxxxxxxxxxxx> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 0b959cf5e4cce08ed96bd7832447e1543cd3622f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Oct 15 15:00:36 2013 -0700 linux-user: Use qemu_getauxval for AT_EXECFD Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 664d2c4458a268eb176a223c397453a72ed167f4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Jun 10 09:05:09 2013 -0700 util: Use qemu_getauxval in linux qemu_cache_utils_init With this we no longer pass down envp, and thus all systems can have the same void prototype. So also eliminate a useless thunk. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c9baa30f42a87f61627391698f63fa4d1566d9d8 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Jun 7 07:43:33 2013 -0700 tcg-s390: Use qemu_getauxval in query_facilities No need to set up a SIGILL signal handler for detection anymore. Remove a ton of sanity checks that must be true, given that we're requiring a 64-bit build (the note about 31-bit KVM is satisfied by configuring with TCI). Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 41d9ea80ac8455845494c889fe6ac447b39a7d64 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Jun 7 07:26:20 2013 -0700 tcg-arm: Use qemu_getauxval Allow host detection on linux systems without glibc 2.16 or later. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit cd629de1cf013e9654c6f0b92b2329f04dfaf880 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Jun 4 11:37:17 2013 -0700 tcg-ppc64: Use qemu_getauxval Allow host detection on linux systems without glibc 2.16 or later. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b6a3e690b4f396633c75e18a9c3e7b6771fb71ba Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Jun 4 11:24:49 2013 -0700 osdep: Create qemu_getauxval and qemu_init_auxval Abstract away dependence on a system implementation of getauxval. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 981cbf59b5360647e908186e7306ee9013a58c88 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Nov 28 09:48:04 2013 +0800 qemu-iotests: Add sample image and test for VMDK version 3 Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 509d39aa22909c0ed1aabf896865f19c81fb38a1 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Nov 28 09:48:03 2013 +0800 vmdk: Allow read only open of VMDK version 3 Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c34b8012e877f494c7be5abdfb67b51242a6935e Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Nov 18 15:13:01 2013 +0800 qemu-iotests: Filter out 'qemu-io> ' prompt This removes "qemu-io> " prompt from qemu-io output in _filter_qemu_io, and updates all the output files with the following command: cd tests/qemu-iotests && sed -i "s/qemu-io> //g" *.out Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 0d83c98bf15269e80e3558dc2c7b27e2f4386158 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Nov 18 15:10:58 2013 +0800 qemu-iotests: Filter qemu-io output in 025 Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c9fbb99d41b05acf0d7b93deb2fcdbf9047c238e Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Nov 28 11:58:02 2013 +0100 block: Use BDRV_O_NO_BACKING where appropriate If you open an image temporarily just because you want to check its size or get it flushed, there's no real reason to open the whole backing file chain. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit f32f988c7778d0f1ff9c7e8d7547a354a7fdd3f6 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Nov 15 17:00:41 2013 +0100 qemu-iotests: Test snapshot mode Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 9fd3171af9d7de2777bf38ce79c2fe3dd6f9a49e Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Nov 14 15:37:12 2013 +0100 block: Enable BDRV_O_SNAPSHOT with driver-specific options In the case of snapshot=on, don't rely on the backing file path in the temporary image any more, but override the backing file with the given set of options. This way, block drivers that don't use a file name can be accessed with snapshot=on, for example: -drive file.driver=nbd,file.host=localhost,snapshot=on Which becomes internally something like: file.filename=/tmp/vl.AWQZCu,backing.file.driver=nbd,backing.file.host=localhost Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b59b3d57737a0d40450f8232abd89e8986387402 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 20 10:01:56 2013 +0800 qemu-iotests: Make test case 030, 040 and 055 deterministic Pause the drive and start the block job, so we won't miss the block job. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3cf53c771406ad360117f30e61b24635df0e9b50 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 20 10:01:55 2013 +0800 qemu-iotest: Add pause_drive and resume_drive methods They wrap blkdebug "break" and "remove_break". Add optional argument "resume" to cancel_and_wait(). Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4cc70e933731ebf4309e1f1ce90973a0de04f28f Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 20 10:01:54 2013 +0800 blkdebug: add "remove_break" command This adds "remove_break" command which is the reverse of blkdebug command "break": it removes all breakpoints with given tag and resumes all the requests. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5b43dbb699599cdb9f75a624cb28d4f709ad2cdf Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 20 10:01:53 2013 +0800 qemu-iotests: Drop local version of cancel_and_wait from 040 iotests.py already has one. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b3af018f3babfe7a0328759a86c00a6a6b4f6443 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Thu Nov 7 22:56:38 2013 +0800 sheepdog: support user-defined redundancy option Sheepdog support two kinds of redundancy, full replication and erasure coding. # create a fully replicated vdi with x copies -o redundancy=x (1 <= x <= SD_MAX_COPIES) # create a erasure coded vdi with x data strips and y parity strips -o redundancy=x:y (x must be one of {2,4,8,16} and 1 <= y < SD_EC_MAX_STRIP) E.g, to convert a vdi into sheepdog vdi 'test' with 8:3 erasure coding scheme $ qemu-img convert -o redundancy=8:3 linux-0.2.img sheepdog:test Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c31d482f29ffe4ba54065acfb2f31c3f4ce586b7 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Thu Nov 7 22:56:37 2013 +0800 sheepdog: refactor do_sd_create() We can actually use BDRVSheepdogState *s to pass most of the parameters. Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4d5977eaecd3675c1176274a50f74ebc40dd13ec Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Nov 20 13:09:21 2013 +0100 qdict: Optimise qdict_do_flatten() Nested QDicts used to be both entered recursively in order to move their entries to the target QDict and also be moved themselves to the target QDict like all other objects. This is harmless because for the top level, qdict_do_flatten() will encounter the (now empty) QDict for a second time and then delete it, but at the same time it's obviously unnecessary overhead. Just delete nested QDicts directly after moving all of their entries. Reported-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6273d1136af913aaf4badc4545ccf942557c747b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Nov 20 13:09:20 2013 +0100 qdict: Fix memory leak in qdict_do_flatten() Reported-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit dce32b6c2bfd5132c433638352eea6f7707caf9c Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Wed Nov 20 15:51:59 2013 +0800 MAINTAINERS: add sheepdog development mailing list This will help people find mailing list relevant to sheepdog. Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 091b1108ca6d6e3bfaea5f095f219bf5ea8c316b Author: Charlie Shepherd <charlie@xxxxxxxxxxxxxx> Date: Fri Nov 15 19:47:02 2013 +0100 COW: Extend checking allocated bits to beyond one sector cow_co_is_allocated() only checks one sector's worth of allocated bits before returning. This is allowed but (slightly) inefficient, so extend it to check all of the file's metadata sectors. Signed-off-by: Charlie Shepherd <charlie@xxxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> [kwolf: silenced compiler warning (-Wmaybe-uninitialized for changed)] Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 14b98fdaf3422fef19718033be9eca7e0b776a26 Author: Charlie Shepherd <charlie@xxxxxxxxxxxxxx> Date: Fri Nov 15 19:47:01 2013 +0100 COW: Speed up writes Process a whole sector's worth of COW bits by reading a sector, setting the bits after skipping any already set bits, then writing it out again. Make sure we only flush once before writing metadata, and only if we need to write metadata. Signed-off-by: Charlie Shepherd <charlie@xxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 21b568350861a2c6eedfef95b70f88faf2fbd32a Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 13 18:29:44 2013 +0800 qapi: Change BlockDirtyInfo to list We have multiple dirty bitmaps in BDS now, switch QAPI to allow query it (BlockInfo.dirty_bitmaps), and also drop old BlockInfo.dirty. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e4654d2d9406016d6e4e296ba8db3d118caf9ff6 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 13 18:29:43 2013 +0800 block: per caller dirty bitmap Previously a BlockDriverState has only one dirty bitmap, so only one caller (e.g. a block job) can keep track of writing. This changes the dirty bitmap to a list and creates a BdrvDirtyBitmap for each caller, the lifecycle is managed with these new functions: bdrv_create_dirty_bitmap bdrv_release_dirty_bitmap Where BdrvDirtyBitmap is a linked list wrapper structure of HBitmap. In place of bdrv_set_dirty_tracking, a BdrvDirtyBitmap pointer argument is added to these functions, since each caller has its own dirty bitmap: bdrv_get_dirty bdrv_dirty_iter_init bdrv_get_dirty_count bdrv_set_dirty and bdrv_reset_dirty prototypes are unchanged but will internally walk the list of all dirty bitmaps and set them one by one. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a29267846a52b4ca294ba3a962b74b67df7ce6d2 Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Wed Oct 30 14:46:32 2013 +0100 linux-user: pass correct parameter to do_shmctl() Fix shmctl issue by passing correct parameter buf to do_shmctl(). Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 55a2b1631fb343edac4a2d4596c72e58ee1372b3 Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Wed Oct 30 14:46:31 2013 +0100 linux-user: create target_structs header to place ipc_perm and shmid_ds Creating target_structs header in linux-user/$arch/ and making target_ipc_perm and target_shmid_ds its first inhabitants. The struct defintions may/should be further fine-tuned by arch maintainers. Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 9721cf2cd6ecfc50d2ab1349e27b53c4bc36df54 Author: Corey J. Boyle <corey@xxxxxxxxxxxxx> Date: Sat Oct 5 07:46:31 2013 -0400 flatload: fix non-GOT relocations Use target address rather than host address when performing non-GOT relocations Signed-off-by: Corey J. Boyle <corey@xxxxxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit f4f1e10a58cb5ec7806d47d20671e668a52c3e70 Author: Erik de Castro Lopo <erikd@xxxxxxxxxxxxx> Date: Fri Nov 29 18:39:23 2013 +1100 linux-user: Implement handling of 5 POSIX timer syscalls. Implement timer_create, timer_settime, timer_gettime, timer_getoverrun and timer_delete. Signed-off-by: Erik de Castro Lopo <erikd@xxxxxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 905bba13ca292cb8c83fe5ccdf8a95bd04168bb1 Author: Erik de Castro Lopo <erikd@xxxxxxxxxxxxx> Date: Fri Nov 29 18:39:22 2013 +1100 linux-user: Add target struct defs needed for POSIX timer syscalls. Signed-off-by: Erik de Castro Lopo <erikd@xxxxxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 0b1fa34e1dd2764ee7ae2be849e1c5ba5e8724ca Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 20 07:33:28 2013 +0100 usb: move usb_{hi,lo} helpers to header file. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 2b81ba53887e6f3b5a79ecd2f446f849ed89561f Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Nov 19 12:37:58 2013 +0100 usb: add vendor request defines Add defines for vendor specific usb control requests. Group defines by Device / Interface / Endpoint while being at it. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 904c063039f5923a07ce35fc40ed78ec6f7dee1a Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Mon Nov 25 13:08:18 2013 +0100 trace-events: Clean up after removal of old usb-host code Commit b5613fd neglected to drop the trace events along with the code. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 690af06aebdfd043a6222de96a535dcba2144caf Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 20 14:32:27 2013 +0100 Revert "usb-tablet: Don't claim wakeup capability for USB-2 version" This reverts commit aa1c9e971e80d25b92908dce3dec7c38b49480ea. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e489df40caa96d895d9672d77f536f23c9e42f94 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 20 14:10:19 2013 +0100 ehci: implement port wakeup Update portsc register and raise irq in case a suspended port is woken up, so remote wakeup works on our ehci ports. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f4a193e717e6b5179a2e57423bfe110b724662d8 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Nov 13 20:37:58 2013 +0100 block/stream: Don't stream unbacked devices If a block device is unbacked, a streaming blockjob should immediately finish instead of beginning to try to stream, then noticing the backing file does not contain even the first sector (since it does not exist) and then finishing normally. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8582972227196c289bb3b28086b3b2d01071d958 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Wed Aug 7 16:59:53 2013 +0800 sheepdog: implement .bdrv_get_allocated_file_size With this patch, qemu-img info sheepdog:image will show disk size for sheepdog images. Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Cc: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f8d1daea6f3ccd7450c2177ffb8903f0202711ee Author: Charlie Shepherd <charlie@xxxxxxxxxxxxxx> Date: Thu Aug 8 03:23:14 2013 +0100 Test coroutine execution order This patch adds a test for coroutine execution order in test-coroutine - this catches a bug in the CPC coroutine implementation. Signed-off-by: Charlie Shepherd <charlie@xxxxxxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b276d2499428795629eee8ee93ba1ea100bb1bc9 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Nov 7 20:10:29 2013 +0100 util/error: Save errno from clobbering There may be calls to error_setg() and especially error_setg_errno() which blindly (and until now wrongly) assume these functions not to clobber errno (e.g., they pass errno to error_setg_errno() and return -errno afterwards). Instead of trying to find and fix all of these constructs, just make sure error_setg() and error_setg_errno() indeed do not clobber errno. Suggested-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5a37b60a61c4c334e3b194758871f41494317d42 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:07:06 2013 +0200 qemu-img: conditionally zero out target on convert If the target has_zero_init = 0, but supports efficiently writing zeroes by unmapping we call bdrv_make_zero to avoid fully allocating the target. This currently works only for iscsi. It can be extended to raw with BLKDISCARDZEROES for example. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 11b6699af59b8684128debacfc7c44cbaa6ac53b Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:07:05 2013 +0200 qemu-img: add support for fully allocated images Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c3d8688470a33feb0ea78c006b4399d50c13185e Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:07:04 2013 +0200 block/get_block_status: fix BDRV_BLOCK_ZERO for unallocated blocks this patch does 2 things: a) only do additional call outs if BDRV_BLOCK_ZERO is not already set. b) use the newly introduced bdrv_unallocated_blocks_are_zero() to return the zero state of an unallocated block. the used callout to bdrv_has_zero_init() is only valid right after bdrv_create. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d75cbb5e68f5a7d64248ba89399a7f2073231de5 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:07:03 2013 +0200 block: introduce bdrv_make_zero this patch adds a call to completely zero out a block device. the operation is sped up by checking the block status and only writing zeroes to the device if they currently do not return zeroes. optionally the zero writing can be sped up by setting the flag BDRV_REQ_MAY_UNMAP to emulate the zero write by unmapping if the driver supports it. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d4cd961507e6f013fd0f9b1dc609f15ed2aaa40d Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:07:02 2013 +0200 iscsi: add bdrv_co_write_zeroes Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 01a6a238a30b0381846e3e68ba06e232567a7026 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:07:01 2013 +0200 iscsi: simplify iscsi_co_discard now that bdrv_co_discard can handle limits we do not need the request split logic here anymore. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ba6c59191f245147e7ee0c2b9ecaf5fb116f7877 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:07:00 2013 +0200 iscsi: set limits in BlockDriverState Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6f14da5247076bde1e00444f6d5b2b7ca8075a09 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:59 2013 +0200 block: honour BlockLimits in bdrv_co_discard Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c31cb70728d2c0c8900b35a66784baa446fd5147 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:58 2013 +0200 block: honour BlockLimits in bdrv_co_do_write_zeroes Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 04f19e4d2da4325297c99e94f20b0aca52546209 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:57 2013 +0200 block/raw: copy BlockLimits on raw_open Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit fe81c2cca6dc69a5e423f6d8b235606b7f3ca7b7 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:56 2013 +0200 block: add BlockLimits structure to BlockDriverState this patch adds BlockLimits which introduces discard and write_zeroes limits and alignment information to the BlockDriverState. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 186d4f2b1deaae5c404798959bfbdb781e762045 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:55 2013 +0200 block/iscsi: add .bdrv_get_info Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4ce786914b745a144a9eda1ea33f3ff98328c527 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:54 2013 +0200 block: add wrappers for logical block provisioning information This adds 2 wrappers to read the unallocated_blocks_are_zero and can_write_zeroes_with_unmap info from the BDI. The wrappers are required to check for the existence of a backing_hd and if the devices are opened with the correct flags. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e1a5c4bed44bc23f69f53883c657e31e150cab30 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:53 2013 +0200 block: add logical block provisioning info to BlockDriverInfo Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d32f35cbc5a87af5e1100dd55074a79fc2cb5307 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:52 2013 +0200 block: introduce BDRV_REQ_MAY_UNMAP request flag Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit aa7bfbfff792538a9eeefe879fc4c629aa0b4203 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:51 2013 +0200 block: add flags to bdrv_*_write_zeroes Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6faac15fa80c4c1f813d96afc13bceaa3bc5ffe7 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:50 2013 +0200 block: make BdrvRequestFlags public Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7dc65c02fe3fb8f3146ce0b9ff5fec5945329f0e Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 27 14:02:45 2013 -0800 Open 2.0 development tree Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0e7b9f06a6cc032be6ca2ac55a27592abd374179 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 27 11:30:46 2013 -0800 Update version for 1.7.0 release Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 171d64319c9604228429b0580edf764a69b67c75 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Nov 25 20:28:56 2013 +0100 qemu-iotests: Fix test 041 Performing multiple drive-mirror blockjobs on the same qemu instance results in the image file used for the block device being replaced by the newly mirrored file, which is not what we want. Fix this by performing one dedicated test per sync mode. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Message-id: 1385407736-13941-3-git-send-email-mreitz@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 117e0c82881f05d88902d4059a3171bc6cd02df0 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Nov 25 20:28:55 2013 +0100 block/drive-mirror: Reuse backing HD for sync=none For "none" sync mode in "absolute-paths" mode, the current image should be used as the backing file for the newly created image. The current behavior is: a) If the image to be mirrored has a backing file, use that (which is wrong, since the operations recorded by "none" are applied to the image itself, not to its backing file). b) If the image to be mirrored lacks a backing file, the target doesn't have one either (which is not really wrong, but not really right, either; "none" records a set of operations executed on the image file, therefore having no backing file to apply these operations on seems rather pointless). For a, this is clearly a bugfix. For b, it is still a bugfix, although it might break existing API - but since that case crashed qemu just three weeks ago (before 1452686495922b81d6cf43edf025c1aef15965c0), we can safely assume there is no such API relying on that case yet. Suggested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Message-id: 1385407736-13941-2-git-send-email-mreitz@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 72391da50621c9f11bb8c57193ab2d1ad8bc5ad8 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Nov 19 14:36:58 2013 +0100 xhci: Call usb_device_alloc/free_streams Note this code is not as KISS as I would like, the reason for this is that the Linux kernel interface wants streams on eps belonging to one interface to be allocated in one call. Things will also work if we do this one ep at a time (as long as all eps support the same amount of streams), but lets stick to the kernel API. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 3b444eadf7726d976be4ac89e8e742cb7eb7a5ee Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Nov 19 14:36:57 2013 +0100 usb: Add usb_device_alloc/free_streams Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 04b300f85fafd2d6a92ec0a766f0035e9bc5835c Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Nov 19 14:36:56 2013 +0100 usb: Add max_streams attribute to endpoint info Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5007c940a9c96ad974573915192424ba00b49932 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Nov 19 14:37:04 2013 +0100 uas: s/ui/iu/ The various uas data structures are called IU-s, which is short for Information Unit, rather then UI-s. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 49cfa2fdc92be2cdd01b9fba846cd52aea1f7f63 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Thu Oct 31 10:35:31 2013 +0100 uas: Fix response iu struct definition This patch mirrors a patch to the Linux uas kernel driver which I've just submitted. It looks like the qemu uas struct definitions were taken from the Linux kernel driver, and have inherited the same mistake. Besides fixing the response iu struct, the patch also drops the add_info parameter from the usb_uas_queue_response() function, it is always 0 anyways, and expressing 3 zero-bytes as a function argument is a bit hard. Below is the long explanation for this change taken from the kernel commit: The response iu struct before this patch has a size of 7 bytes, which is weird since all other iu-s are explictly padded to a multiple of 4 bytes. Submitting a 7 byte bulk transfer to the status endpoint of a real uasp device when expecting a response iu results in an USB babble error, as the device actually sends 8 bytes. Up on closer reading of the UAS spec: http://www.t10.org/cgi-bin/ac.pl?t=f&f=uas2r00.pdf The reason for this becomes clear, the 2 entries in "Table 17 â?? RESPONSE IU" are numbered 4 and 6, looking at other iu definitions in the spec, esp. multi-byte fields, this indicates that the ADDITIONAL RESPONSE INFORMATION field is not a 2 byte field as one might assume at a first look, but is a multi-byte field containing 3 bytes. This also aligns with the SCSI Architecture Model 4 spec, which UAS is based on which states in paragraph "7.1 Task management function procedure calls" that the "Additional Response Information" output argument for a Task management function procedure call is 3 bytes. Last but not least I've verified this by sending a logical unit reset task management call with an invalid lun to an actual uasp device, and received back a response-iu with byte 6 being 0, and byte 7 being 9, which is the responce code for an invalid iu, which confirms that the response code is being reported in byte 7 of the response iu rather then in byte 6. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 3453f9a0dfa58578e6dadf0905ff4528b428ec73 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Thu Oct 24 18:15:53 2013 +0100 uas: Bounds check tags when using streams Disallow the guest to cause us to address the data3 and status3 arrays out of bounds. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 0478661ec5f949f16a70687b348c0fb2a56cc537 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Thu Oct 24 18:15:52 2013 +0100 uas: Streams are numbered 1-y, rather then 0-x It is easier to simply make the arrays one larger, rather then substracting one everywhere. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5eb6d9e3ef1fac096ab5b3f5c14e1f4079dd7367 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Thu Oct 24 18:15:51 2013 +0100 uas: Fix / cleanup usb_uas_task error handling -The correct error if we cannot find the dev is INCORRECT_LUN rather then INVALID_INFO_UNIT -Move the device not found check to the top so we only need to do it once -Remove the dev->lun != lun checks, dev is returned by scsi_device_find which searches by lun, so this will never trigger Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit d4bfc7b9f35da7dcc28ae87de503b28bd7ff56ee Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Thu Oct 24 18:15:50 2013 +0100 uas: Only use report iu-s for task_mgmt status reporting Regular scsi cmds should always report their status using a sense-iu, using the sense code to report any errors. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 9ec557bd53031fb50cc0cd426a2d529624d3d515 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Thu Oct 24 18:15:49 2013 +0100 scsi: Add 2 new sense codes needed by uas Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f1f8bc218a422081f36f0b325b3de5e6a5078b74 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Nov 8 11:43:20 2013 +0100 xhci: add support for suspend/resume The OS can ask the xhci controller to save and restore its internal state, which is used by the OS when the system is suspended and resumed. This patch handles writes to the save + restore bits in the command register. Only thing it does is updating the restore error bit in the status register to signal an error on restore. The guest OS should do a full reinitialization after resume then. This is the minimal patch which gets S3 going with xhci. Implementing full save/restore support is TBD. https://bugzilla.redhat.com/show_bug.cgi?id=1012365 Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit de9de157fbb9aa66380ab1973dd6ecf12fbd8b25 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Nov 19 14:36:59 2013 +0100 xhci: Add a few missing checks for disconnected devices One of the reworks of qemu's usb core made changes to usb-port's disconnect handling. Now ports with a device will always have a non 0 dev member, but if the device is not attached (which is possible with usb redirection), dev->attached will be 0. So supplement all checks for dev to also check dev->attached, and add an extra check in a path where a device check was completely missing. This fixes various crashes (asserts triggering) I've been seeing when xhci attached usb devices get disconnected at the wrong time. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 7457fe9541b5162f285454947448d553a5d5a531 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Nov 25 20:37:12 2013 -0800 Update version for v1.7.0-rc2 release commit 032ac6f8bfb68746cb0eea407b1cd2b22a78898f Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Nov 22 15:35:03 2013 +0100 curses: fixup SIGWINCH handler mess Don't run code in the signal handler, only set a flag. Use sigaction(2) to avoid non-portable signal(2) semantics. Make #ifdefs less messy. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Message-id: 1385130903-20531-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 16f4e8fa737b58b7b0461b33581e43ac06991110 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Mon Nov 25 20:54:17 2013 +0100 qga: Fix two format strings for MinGW Both code locations cause a compiler warning. Using "%s" instead of "%lu" would result in a program crash if the wrong code were executed. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Message-id: 1385409257-2522-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 84dc96e1e51c74ebf40b6c5e0c383769402e1a2d Author: Alexander Graf <agraf@xxxxxxx> Date: Mon Nov 25 22:46:55 2013 +0100 PPC: BookE: Make FIT/WDT timers at best millisecond grained The default granularity for the FIT timer on 440 is on every 0x1000th transition of TB from 0 to 1. Translated that means 48828 times a second. Since interrupts are quite expensive for 440 and we don't really care about the accuracy of the FIT to that significance, let's force FIT and WDT to at best millisecond granularity. This basically restores behavior as it was in QEMU 1.6, where timers could only deal with millisecond granularities at all. This patch greatly improves performance with the 440 target and restores roughly the same performance level that QEMU 1.6 had for me. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Message-id: 1385416015-22775-3-git-send-email-agraf@xxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 455df3f32341a3dff00f1726ff0749b3dd783bdf Author: Alexander Graf <agraf@xxxxxxx> Date: Mon Nov 25 22:46:54 2013 +0100 PPC: Make BookE FIT/WDT timers more lazy Today we fire FIT and WDT timer events every time the respective bit position in TB flips from 0 -> 1. However, there is no need to do this if the end result would be that we're changing a TSR bit that is set to 1 to 1 again. No guest visible change would have occured. So whenever we see that the TSR bit to our timer is already set, don't even bother to update the timer that would potentially fire it off. However, we do need to make sure that we update our timer that notifies us of the TB flip when the respective TSR bit gets unset. In that case we do care about the flip and need to notify the guest again. So add a callback into our timer handlers when TSR bits get unset. This improves performance for me when the guest is busy processing things. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Message-id: 1385416015-22775-2-git-send-email-agraf@xxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 134d42d614768b2803e551621f6654dab1fdc2d2 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Nov 26 00:00:39 2013 +0200 acpi-build: fix support for glib < 2.22 glib < 2.22 does not have g_array_get_element_size, limit it's use (to check all elements are 1 byte in size) to newer glib. This fixes build on RHEL 5.3. Reported-by: Richard Henderson <rth@xxxxxxxxxx> Reported-by: Erik Rull <erik.rull@xxxxxxxxxxxxx> Tested-by: Richard Henderson <rth@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 20131125220039.GA16386@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit c0caec178eadbbac4c672110c3914313091e0588 Merge: d916ada e007dbe Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Nov 25 09:49:42 2013 -0800 Merge remote-tracking branch 'mst/tags/for_anthony' into staging pc very last minute fixes for 1.7 This has a fix for a crasher bug with pci bridges, boot failure fix for s390 on 32 bit hosts, and fixes build for hosts with old glib. There's also a fix for --iasl configure flag - it can be used to work around broken iasl on some systems either by using a non-standard iasl or by disabling it. I've also reverted a e1000/rtl mac programming change that seems slightly wrong and too risky for 1.8. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Mon 25 Nov 2013 03:40:07 AM PST using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Michael S. Tsirkin (5) and Bandan Das (1) # Via Michael S. Tsirkin * mst/tags/for_anthony: configure: make --iasl option actually work Revert "e1000/rtl8139: update HMP NIC when every bit is written" acpi-build: fix build on glib < 2.14 acpi-build: fix build on glib < 2.22 pci: unregister vmstate_pcibus on unplug s390x: fix flat file load on 32 bit systems Message-id: 1385379990-32093-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit d916adaa606dd1b871316acb295d5979361133b7 Merge: 833637d d607a52 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Nov 25 09:41:24 2013 -0800 Merge remote-tracking branch 'bonzini/tags/for-anthony' into staging Here are a bunch of 1.7-tagged patches that I was afraid were getting forgotten or that did not have a clear maintainer responsible for making a pull request. # gpg: Signature made Thu 21 Nov 2013 08:40:59 AM PST using RSA key ID 9B4D86F2 # gpg: Can't check signature: public key not found # By Peter Maydell (3) and others # Via Paolo Bonzini * bonzini/tags/for-anthony: qga: Fix compiler warnings (missing format attribute, wrong format strings) mips jazz: do not raise data bus exception when accessing invalid addresses target-i386: yield to another VCPU on PAUSE rng-egd: offset the point when repeatedly read from the buffer rng-egd: remove redundant free target-i386: Fix build by providing stub kvm_arch_get_supported_cpuid() vfio-pci: Fix multifunction=on atomic.h: Fix build with clang pc: get rid of builtin pvpanic for "-M pc-1.5" configure: Explicitly set ARFLAGS so we can build with GNU Make 4.0 sun4m: Add FCode ROM for TCX framebuffer Message-id: 1385052578-32352-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 833637d46dd5a0859abdff085352ae7d48dc8189 Merge: 0ff1e1d bca4bf1 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Nov 25 09:37:44 2013 -0800 Merge remote-tracking branch 'mdroth/qga-pull-2013-11-22' into staging # By Tomoki Sekiyama # Via Michael Roth * mdroth/qga-pull-2013-11-22: qemu-ga: vss-win32: Install VSS provider COM+ application service Message-id: 1385154505-15145-1-git-send-email-mdroth@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0ff1e1dac4b6bccefc4b8a861ec2a643ecfb6e9d Merge: 607bb02 30c367e Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Nov 25 09:37:27 2013 -0800 Merge remote-tracking branch 'stefanha/net' into staging # By Vlad Yasevich # Via Stefan Hajnoczi * stefanha/net: qdev-properties-system.c: Allow vlan or netdev for -device, not both Message-id: 1385118544-28482-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit ef36fa1492e9105f3fa607b56edc63df513d7da1 Author: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Date: Mon Oct 28 18:51:46 2013 -0200 qemu: mempath: prefault pages manually (v4) v4: s/fail/failed/ (Peter Maydell) Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> commit fb541ca59c8b55911821c9f794c3dbe5de9ba9d8 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Nov 22 12:12:44 2013 -0700 kvm: Query KVM for available memory slots KVM reports the number of available memory slots (KVM_CAP_NR_MEMSLOTS) using the extension interface. Both x86 and s390 implement this, ARM and powerpc do not yet enable it. Convert the static slots array to be dynamically allocated, supporting more slots when available. Default to 32 when KVM_CAP_NR_MEMSLOTS is not implemented. The motivation for this change is to support more assigned devices, where memory mapped PCI MMIO BARs typically take one slot each. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Reviewed-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e007dbece5fc4e55e10116c6cb42753e35a945bf Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Nov 24 11:38:05 2013 +0200 configure: make --iasl option actually work --iasl option was added to CC option parsing section by mistake, it's not effective there and attempts to use cause an 'unknown option' error. Fix this up. Tested-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit bca4bf1028b332f55502bc7f50345fa5ea1c4f40 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Fri Nov 1 17:47:25 2013 -0400 qemu-ga: vss-win32: Install VSS provider COM+ application service Currently, qemu-ga for Windows fails to execute guset-fsfreeze-freeze when no user is logging in to Windows, with an error message: {"error":{"class":"GenericError", "desc":"failed to add C:\\ to snapshotset: (error: 8004230f)"}} To enable guest-fsfreeze-freeze/thaw without logging in users, this installs a service to execute qemu-ga VSS provider COM+ application that has full access privileges to the local system. The service will automatically be removed when the COM+ application is deregistered. This patch replaces ICOMAdminCatalog interface with ICOMAdminCatalog2 interface that contains CreateServiceForApplication() method in addition. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Gal Hammer <ghammer@xxxxxxxxxx> Reviewed-by: Yan Vugenfirer <yvugenfi@xxxxxxxxxx> Tested-by: Yan Vugenfirer <yvugenfi@xxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 30c367ed446b6ea53245589a5cf373578ac075d7 Author: Vlad Yasevich <vyasevic@xxxxxxxxxx> Date: Thu Nov 7 21:13:09 2013 -0500 qdev-properties-system.c: Allow vlan or netdev for -device, not both It is currently possible to specify things like: -device e1000,netdev=foo,vlan=1 With this usage, whichever argument was specified last (vlan or netdev) overwrites what was previousely set and results in a non-working configuration. Even worse, when used with multiqueue devices, it causes a segmentation fault on exit in qemu_free_net_client. That patch treates the above command line options as invalid and generates an error at start-up. Signed-off-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> Acked-by: Jason Wang <jasowang@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d607a52364e7bfc1cd6d3e425b898e86be4e525d Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 17 19:19:52 2013 +0100 qga: Fix compiler warnings (missing format attribute, wrong format strings) gcc 4.8.2 reports this warning when extra warnings are enabled (-Wextra): CC qga/commands.o qga/commands.c: In function â??slogâ??: qga/commands.c:28:5: error: function might be possible candidate for â??gnu_printfâ?? format attribute [-Werror=suggest-attribute=format] g_logv("syslog", G_LOG_LEVEL_INFO, fmt, ap); ^ gcc 4.8.2 reports this warning when slog is declared with the gnu_printf format attribute: qga/commands-posix.c: In function â??qmp_guest_file_openâ??: qga/commands-posix.c:404:5: warning: format â??%dâ?? expects argument of type â??intâ??, but argument 2 has type â??int64_tâ?? [-Wformat=] slog("guest-file-open, handle: %d", handle); ^ On 32 bit hosts there are three more warnings which are also fixed here. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit b6a06e72ef5e66e539012f63fca52c161c0d2496 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Mon Nov 4 23:26:17 2013 +0100 mips jazz: do not raise data bus exception when accessing invalid addresses MIPS Jazz chipset doesn't seem to raise data bus exceptions on invalid accesses. However, there is no easy way to prevent them. Creating a big memory region for the whole address space doesn't prevent memory core to directly call unassigned_mem_read/write which in turn call cpu->do_unassigned_access, which (for MIPS CPU) raise an data bus exception. This fixes a MIPS Jazz regression introduced in c658b94f6e8c206c59d02aa6fbac285b86b53d2c. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit b5fc314bcbb80f76b8deaf23a4c45767b87f750b Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Nov 20 12:54:02 2013 +0100 target-i386: yield to another VCPU on PAUSE After commit b1bbfe7 (aio / timers: On timer modification, qemu_notify or aio_notify, 2013-08-21) FreeBSD guests report a huge slowdown. The problem shows up as soon as FreeBSD turns out its periodic (~1 ms) tick, but the timers are only the trigger for a pre-existing problem. Before the offending patch, setting a timer did a timer_settime system call. After, setting the timer exits the event loop (which uses poll) and reenters it with a new deadline. This does not cause any slowdown; the difference is between one system call (timer_settime and a signal delivery (SIGALRM) before the patch, and two system calls afterwards (write to a pipe or eventfd + calling poll again when re-entering the event loop). Unfortunately, the exit/enter causes the main loop to grab the iothread lock, which in turns kicks the VCPU thread out of execution. This causes TCG to execute the next VCPU in its round-robin scheduling of VCPUS. When the second VCPU is mostly unused, FreeBSD runs a "pause" instruction in its idle loop which only burns cycles without any progress. As soon as the timer tick expires, the first VCPU runs the interrupt handler but very soon it sets it again---and QEMU then goes back doing nothing in the second VCPU. The fix is to make the pause instruction do "cpu_loop_exit". Reported-by: Luigi Rizzo <rizzo@xxxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit fbdcec5c487685b46e78f1e40a236ebf83f862fa Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Nov 21 16:42:51 2013 +0800 rng-egd: offset the point when repeatedly read from the buffer The buffer content might be read out more than once, currently we just repeatedly read the first data block, buffer offset is missing. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 60aad298cb6de52f2716b2e82e1353ea9de95fd6 Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Nov 21 16:42:50 2013 +0800 rng-egd: remove redundant free We didn't set default chr_name, the free is redundant. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 2140cfa51d59177815f5b82e94ac48fb24909aba Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Nov 13 23:09:07 2013 +0000 target-i386: Fix build by providing stub kvm_arch_get_supported_cpuid() Fix build failures with clang when KVM is not enabled by providing a stub version of kvm_arch_get_supported_cpuid(). We retain the compile time check that this function isn't called when CONFIG_KVM is not set by guarding the stub with ifndef __OPTIMIZE__ (we assume that an optimizing build will do sufficient constant folding and dead code elimination to remove the calls before linking). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 8d07d6c46597a885eb38d99cc6fff399ce69cd21 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Tue Nov 12 11:53:24 2013 -0700 vfio-pci: Fix multifunction=on When an assigned device is initialized it copies the device config space into the emulated config space. Unfortunately multifunction is setup prior to the device initfn and gets clobbered. We need to restore it just like pci-assign does. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 392a4d5b9a1860aae82429d09321dac302d70396 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Oct 22 10:58:41 2013 +0100 atomic.h: Fix build with clang clang defines __ATOMIC_SEQ_CST but its implementation of the __atomic_exchange() builtin differs from that of gcc. Move the __clang__ branch of the ifdef ladder to the top and fix its implementation (there is no such builtin as __sync_exchange), so we can compile with clang again. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 7839ff593be03a7de3c6760e0b50c565ea751d36 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Nov 4 14:30:48 2013 +0100 pc: get rid of builtin pvpanic for "-M pc-1.5" This causes two slight backwards-incompatibilities between "-M pc-1.5" and 1.5's "-M pc": (1) a fw_cfg file is removed with this patch. This is only a problem if migration stops the virtual machine exactly during fw_cfg enumeration. (2) after migration, a VM created without an explicit "-device pvpanic" will stop reporting panics to management. The first problem only occurs if migration is done at a very, very early point (and I'm not sure it can happen in practice for reasonable-size VMs, since it will likely take more time to send the RAM to destination, than it will take for BIOS to scan fw_cfg). The second problem only occurs if the guest panics _and_ has a guest driver _and_ management knows to look at the crash event, so it is mostly theoretical at this point in time. Thus keep the code simple, and pretend it was never broken. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 45d285abd7028ac72418c1a22f9298bb898fbfb8 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Oct 21 21:03:06 2013 +0100 configure: Explicitly set ARFLAGS so we can build with GNU Make 4.0 Our rules.mak adds '-rR' to MAKEFLAGS to indicate that we will be explicitly specifying everything and not relying on any default variables or rules. However we were accidentally relying on the default ARFLAGS ("rv"). This went unnoticed because of a bug in GNU Make 3.82 and earlier which meant that adding -rR to MAKEFLAGS only affected submakes, not the currently running instance. Explicitly set ARFLAGS in config-host.mak, in the same way we handle CFLAGS and LDFLAGS; this will allow us to work with Make 4.0. Thanks to Paul Smith for analyzing this bug for us. Cc: qemu-stable@xxxxxxxxxx Reported-by: Ken Moffat <zarniwhoop@xxxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit da87dd7bd70f71ceaf9ff40d7cdb8394a7dc4bf5 Author: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Date: Sat Nov 2 16:03:50 2013 +0000 sun4m: Add FCode ROM for TCX framebuffer Upstream OpenBIOS now implements SBus probing in order to determine the contents of a physical bus slot, which is required to allow OpenBIOS to identify the framebuffer without help from the fw_cfg interface. SBus probing works by detecting the presence of an FCode program (effectively tokenised Forth) at the base address of each slot, and if present executes it so that it creates its own device node in the OpenBIOS device tree. The FCode ROM is generated as part of the OpenBIOS build and should generally be updated at the same time. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> CC: Blue Swirl <blauwirbel@xxxxxxxxx> CC: Bob Breuer <breuerr@xxxxxx> CC: Artyom Tarasenko <atar4qemu@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 607bb022f2a44797cbf40e85e84da4134e2f0e01 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Nov 21 08:11:47 2013 -0800 Update version for 1.7.0-rc1 release Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 187d62327aca39afbb038d13d7cd6bf2d11640d3 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Tue Nov 12 11:53:24 2013 -0700 vfio-pci: Fix multifunction=on When an assigned device is initialized it copies the device config space into the emulated config space. Unfortunately multifunction is setup prior to the device initfn and gets clobbered. We need to restore it just like pci-assign does. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Reviewed-by: Bandan Das <bsd@xxxxxxxxxx> Message-id: 20131112185059.7262.33780.stgit@xxxxxxxxxx Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 7865eec4f5fb10224a2cd391a8476044cbe5a1f7 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 12 11:16:56 2013 +1000 target-i386: Fix addr32 prefix in gen_lea_modrm Fix the following run-test-x86_64 testsuite failures: -lea (%%eax) = 0000000000000001 -lea (%%ebx) = 0000000000000002 -lea (%%ecx) = 0000000000000004 -lea (%%edx) = 0000000000000008 -lea (%%esi) = 0000000000000010 -lea (%%edi) = 0000000000000020 +lea (%%eax) = 0000abcc00000001 +lea (%%ebx) = 0000abcf00000002 +lea (%%ecx) = 0000abc900000004 +lea (%%edx) = 0000abc500000008 +lea (%%esi) = 0000abdd00000010 +lea (%%edi) = 0000abed00000020 In addition, reduce ifdeffery and minimize the number of TCG ops produced during address computation. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1384219016-5170-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 33effd3aab4a268fb573fd8d7e0fe0baed0cd61a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Oct 22 10:58:41 2013 +0100 atomic.h: Fix build with clang clang defines __ATOMIC_SEQ_CST but its implementation of the __atomic_exchange() builtin differs from that of gcc. Move the __clang__ branch of the ifdef ladder to the top and fix its implementation (there is no such builtin as __sync_exchange), so we can compile with clang again. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Message-id: 1382435921-18438-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 76c2975a6feb5c232698e982b7f798431457822f Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Nov 19 17:49:46 2013 +0100 target-i386: do not override nr_cores for -cpu host Commit 787aaf5 (target-i386: forward CPUID cache leaves when -cpu host is used, 2013-09-02) brings bits 31..26 of CPUID leaf 04h out of sync with the APIC IDs that QEMU reserves for each package. This number must come from "-smp" options rather than from the host CPUID. It also turns out that this unsyncing makes Windows Server 2012R2 fail to boot. Tested-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Message-id: 1384879786-6721-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 54e755588cf1e90f0b1460c4e8e6b6a54b6d3a32 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Mon Nov 4 23:26:17 2013 +0100 mips jazz: do not raise data bus exception when accessing invalid addresses MIPS Jazz chipset doesn't seem to raise data bus exceptions on invalid accesses. However, there is no easy way to prevent them. Creating a big memory region for the whole address space doesn't prevent memory core to directly call unassigned_mem_read/write which in turn call cpu->do_unassigned_access, which (for MIPS CPU) raise an data bus exception. This fixes a MIPS Jazz regression introduced in c658b94f6e8c206c59d02aa6fbac285b86b53d2c. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Message-id: 1383603977-7003-1-git-send-email-hpoussin@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 81f3053b77f7d3a4d9100c425cd8cec99ee7a3d4 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Nov 20 12:54:02 2013 +0100 target-i386: yield to another VCPU on PAUSE After commit b1bbfe7 (aio / timers: On timer modification, qemu_notify or aio_notify, 2013-08-21) FreeBSD guests report a huge slowdown. The problem shows up as soon as FreeBSD turns out its periodic (~1 ms) tick, but the timers are only the trigger for a pre-existing problem. Before the offending patch, setting a timer did a timer_settime system call. After, setting the timer exits the event loop (which uses poll) and reenters it with a new deadline. This does not cause any slowdown; the difference is between one system call (timer_settime and a signal delivery (SIGALRM) before the patch, and two system calls afterwards (write to a pipe or eventfd + calling poll again when re-entering the event loop). Unfortunately, the exit/enter causes the main loop to grab the iothread lock, which in turns kicks the VCPU thread out of execution. This causes TCG to execute the next VCPU in its round-robin scheduling of VCPUS. When the second VCPU is mostly unused, FreeBSD runs a "pause" instruction in its idle loop which only burns cycles without any progress. As soon as the timer tick expires, the first VCPU runs the interrupt handler but very soon it sets it again---and QEMU then goes back doing nothing in the second VCPU. The fix is to make the pause instruction do "cpu_loop_exit". Cc: Richard Henderson <rth@xxxxxxxxxxx> Reported-by: Luigi Rizzo <rizzo@xxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1384948442-24217-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 1eb1bd9eafa890f1f4d16ef5cb8b9239a86874d9 Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Nov 21 16:42:51 2013 +0800 rng-egd: offset the point when repeatedly read from the buffer The buffer content might be read out more than once, currently we just repeatedly read the first data block, buffer offset is missing. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Message-id: 1385023371-8198-3-git-send-email-akong@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 5e490b6a504912225dff0e520e1c6af68295d238 Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Nov 21 16:42:50 2013 +0800 rng-egd: remove redundant free We didn't set default chr_name, the free is redundant. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Message-id: 1385023371-8198-2-git-send-email-akong@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit d44bb8604e87ecd3823f12f0c92d5e56d613de0d Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Nov 21 18:53:23 2013 +0800 virtio-rng: add check of period If period is assigned to 0, limit timer will expire immediately. It causes a qemu warning: "main-loop: WARNING: I/O thread spun for 1000 iterations" This limit is meaningless. This patch forbids to assign 0 to period. Reviewed-by: Amit Shah <amit.shah@xxxxxxxxxx> Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Message-id: 1385031203-23790-1-git-send-email-akong@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 376827d48922941d16ef9949672e86f820005d0a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 21 15:34:26 2013 +0200 s390x: fix flat file load on 32 bit systems pc-bios/s390-zipl.rom is a flat image so it's expected that loading it as elf will fail. It should fall back on loading a flat file, but doesn't on 32 bit systems, instead it fails printing: qemu: hardware error: could not load bootloader 's390-zipl.rom' The result is boot failure. The reason is that a 64 bit unsigned interger which is set to -1 on error is compared to -1UL which on a 32 bit system with gcc is a 32 bit unsigned interger. Since both are unsigned, no sign extension takes place and comparison evaluates to non-equal. There's no reason to do clever tricks: all functions we call actually return int so just use int. And then we can use == -1 everywhere, consistently. Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 20131121133426.GA30827@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit b15654c21acef4d2bc17e6ac528c6c93abbb7e1e Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 21 14:17:54 2013 +0200 acpi-build: fix build on glib < 2.14 g_array_get_element_size was only added in glib 2.14. Fortunately we don't use it for any arrays where element size is > 1, so just add an assert. Reported-by: Richard Henderson <rth@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Message-id: 1385036128-8753-2-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 542da88f0013ebb2b2d8ca10becbfebd9948abba Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 21 14:17:51 2013 +0200 acpi-build: fix build on glib < 2.22 g_string_vprintf was only introduced in 2.24 so switch to vsnprintf instead. A bit uglier but name size is fixed at 4 bytes here so it's easy. Reported-by: Richard Henderson <rth@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Message-id: 1385036128-8753-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0a3c738507cef91bd751d8507676109bc7985e1a Merge: ffb62da ef4cbe1 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Nov 21 07:09:52 2013 -0800 Merge remote-tracking branch 'qemu-kvm/uq/master' into staging # By Jan Kiszka (1) and others # Via Gleb Natapov * qemu-kvm/uq/master: kvm: Fix uninitialized cpuid_data pci-assign: Remove dead code for direct I/O region access from userspace KVM: x86: fix typo in KVM_GET_XCRS Message-id: cover.1385040432.git.gleb@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit ffb62da7a23b1d13a3582bee6b2df599baa6ecfb Merge: 425ff51 14a650e Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Nov 21 07:08:47 2013 -0800 Merge remote-tracking branch 'jliu/or32' into staging # By Sebastian Macke # Via Jia Liu * jliu/or32: target-openrisc: Correct carry flag check of l.addc and l.addic test cases target-openrisc: Correct memory bounds checking for the tlb buffers openrisc-timer: Reduce overhead, Separate clock update functions target-openrisc: Correct wrong epcr register in interrupt handler target-openrisc: Remove executable flag for every page target-openrisc: Remove unnecessary code generated by jump instructions target-openrisc: Speed up move instruction Message-id: 1384958318-9145-1-git-send-email-proljc@xxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 425ff5102f8668d5c921e2a1d77ee9173742bfdf Merge: 394cfa3 8e86729 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Nov 21 07:08:31 2013 -0800 Merge remote-tracking branch 'quintela/migration.next' into staging # By Wangting (Kathy) # Via Juan Quintela * quintela/migration.next: The calculation of bytes_xfer in qemu_put_buffer() is wrong Message-id: 1384946787-8190-1-git-send-email-quintela@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 90d131fb6504ed12a37dc8433375cc683c30e9da Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Nov 18 21:41:44 2013 +0200 Revert "e1000/rtl8139: update HMP NIC when every bit is written" This reverts commit cd5be5829c1ce87aa6b3a7806524fac07ac9a757. Digging into hardware specs shows this does not actually make QEMU behave more like hardware: There are valid arguments backed by the spec to indicate why the version of e1000 prior to cd5be582 was more correct: the high byte actually includes a valid bit, this is why all guests write it last. For rtl8139 there's actually a separate undocumented valid bit, but we don't implement it yet. To summarize all the drivers we know about behave in one way that allows us to make an assumption about write order and avoid spurious, incorrect mac address updates to the monitor. Let's stick to the tried heuristic for 1.7 and possibly revisit for 1.8. Reported-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> Reviewed-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> Cc: Amos Kong <akong@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit fd8f5e37557596e14a859d8edf3dc24523bd4400 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 21 11:22:51 2013 +0200 acpi-build: fix build on glib < 2.14 g_array_get_element_size was only added in glib 2.14, there's no way to find element size in with an older glib. Fortunately we only use a single table (linker) where element size > 1. Switch element size to 1 everywhere, then we can just look at len field to get table size in bytes. Add an assert to make sure we catch any violations of this rule. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reported-by: Richard Henderson <rth@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8b9c3b897c682cd9739c6aef73b3220c7204c243 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 21 11:19:58 2013 +0200 acpi-build: fix build on glib < 2.22 g_string_vprintf was only introduced in 2.24 so switch to vsnprintf instead. A bit uglier but name size is fixed at 4 bytes here so it's easy. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reported-by: Richard Henderson <rth@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 5c397242d5d53c1adecce31817bb439383cf8228 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Wed Nov 6 17:52:17 2013 -0500 pci: unregister vmstate_pcibus on unplug PCIBus registers a vmstate during init. Unregister it upon removal/unplug. Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit decbc880289526d94495bcbe6e1ba2a11b92e7a8 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 21 13:59:15 2013 +0200 s390x: fix flat file load on 32 bit systems pc-bios/s390-zipl.rom is a flat image so it's expected that loading it as elf will fail. It should fall back on loading a flat file, but doesn't on 32 bit systems, instead it fails printing: qemu: hardware error: could not load bootloader 's390-zipl.rom' The result is boot failure. The reason is that a 64 bit unsigned interger which is set to -1 on error is compared to -1UL which on a 32 bit system with gcc is a 32 bit unsigned interger. Since both are unsigned, no sign extension takes place and comparison evaluates to non-equal. There's no reason to do clever tricks: all functions we call actually return int so just use int. And then we can use == -1 everywhere, consistently. Reviewed-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 14a650ec25ca93a626397783d6c6e840ec2502c6 Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Tue Oct 22 02:12:45 2013 +0200 target-openrisc: Correct carry flag check of l.addc and l.addic test cases The test cases did not correctly test for the carry flag. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit 93147a180c10b97bf9575a87e01c9a1c93e6c9ce Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Tue Oct 22 02:12:42 2013 +0200 target-openrisc: Correct memory bounds checking for the tlb buffers The mtspr and mfspr routines didn't check for the correct memory boundaries. This fixes a segmentation fault while booting Linux. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit d51552176a2ab5e80a211514aa1339fe2575ec2a Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Tue Oct 22 02:12:41 2013 +0200 openrisc-timer: Reduce overhead, Separate clock update functions The clock value is only evaluated when really necessary reducing the overhead of the timer handling. This also solves a problem in the way the Linux kernel handles the timer and the expected accuracy. The old version could lead to inaccurate timings. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit ae52bd96ceaea36c486d8ffeb798e160f31d3be8 Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Tue Oct 22 02:12:40 2013 +0200 target-openrisc: Correct wrong epcr register in interrupt handler This patch corrects several misbehaviors during an interrupt process. Most of the time the pc is already correct and therefore no special treatment of the exceptions is necessary. Tested by checking crashing programs which otherwise work in or1ksim. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit 04359e6bb7f2841031aae645a770583f9c5df3cd Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Tue Oct 22 02:12:39 2013 +0200 target-openrisc: Remove executable flag for every page Pages should be flagged executable only if the tlb executable flag is set or the mmu is off. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit da1d77597b29f45bfd290d251ee459a2794112c6 Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Tue Oct 22 02:12:38 2013 +0200 target-openrisc: Remove unnecessary code generated by jump instructions The sr_f variable is only used for the l.bf and l.bnf instructions. For clarity the code is also rewritten using a switch statement instead of if chaining. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit 352367e8bb53bd4e16abaecbcb9fc0bcadf5881b Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Tue Oct 22 02:12:37 2013 +0200 target-openrisc: Speed up move instruction The OpenRISC architecture does not have its own move register instruction. Instead it uses either "l.addi rd, r0, x" or "l.ori rd, rs, 0" or "l.or rd, rx, r0" The l.ori instruction is automatically optimized but not the l.addi instruction. This patch optimizes for this special case. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit 8e86729a0e83b557c22808a2337252c969ca3986 Author: Wangting (Kathy) <kathy.wangting@xxxxxxxxxx> Date: Tue Nov 19 05:53:45 2013 +0000 The calculation of bytes_xfer in qemu_put_buffer() is wrong In qemu_put_buffer(), bytes_xfer += size is wrong, it will be more than expected, and should be bytes_xfer += l. Signed-off-by: zhangmin <zhangmin6@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 394cfa39ba24dd838ace1308ae24961243947fb8 Merge: 4ed3479 fc1c4a5 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 13:03:06 2013 -0800 Merge remote-tracking branch 'quintela/migration.next' into staging # By Peter Lieven # Via Juan Quintela * quintela/migration.next: migration: drop MADVISE_DONT_NEED for incoming zero pages Message-id: 1384878412-23521-1-git-send-email-quintela@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 4ed34791696523522fa7e6a00301e0bf3a09ea29 Merge: 1c46e59 2ad645d Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 13:00:52 2013 -0800 Merge remote-tracking branch 'stefanha/block' into staging # By Andreas Färber # Via Stefan Hajnoczi * stefanha/block: qtest: Use -display none by default commit 1c46e594dc3eb0df4bdc1ea31b61c19ee0eed753 Merge: dc6dc0a 2d3aa28 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 13:00:09 2013 -0800 Merge remote-tracking branch 'afaerber/tags/qom-devices-for-anthony' into staging QOM infrastructure fixes for 1.7 * QOM memory leak fix # gpg: Signature made Tue 19 Nov 2013 01:58:58 AM PST using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Vlad Yasevich # Via Andreas Färber * afaerber/tags/qom-devices-for-anthony: qom: Fix memory leak in object_property_set_link() commit dc6dc0a9879738236b4da03d34d3c72eedfd25bb Merge: 4be6693 463230d Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 13:00:02 2013 -0800 Merge remote-tracking branch 'rth/tcg-ia64-17' into staging # By Richard Henderson # Via Richard Henderson * rth/tcg-ia64-17: tcg-ia64: Introduce tcg_opc_bswap64_i tcg-ia64: Introduce tcg_opc_ext_i tcg-ia64: Introduce tcg_opc_movi_a tcg-ia64: Introduce tcg_opc_mov_a tcg-ia64: Use A3 form of logical operations tcg-ia64: Use SUB_A3 and ADDS_A4 for subtraction tcg-ia64: Use ADDS for small addition tcg-ia64: Avoid unnecessary stop bit in tcg_out_alu tcg-ia64: Move AREG0 to R32 tcg-ia64: Simplify brcond tcg-ia64: Handle constant calls tcg-ia64: Use shortcuts for nop insns tcg-ia64: Use TCGMemOp within qemu_ldst routines Message-id: 1384811395-7097-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 4be6693a8842023542d1ae1c6e4e2a3fd9988ebe Merge: 38dc749 420508f Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 12:59:48 2013 -0800 Merge remote-tracking branch 'mst/tags/for_anthony' into staging pc last minute fixes for 1.8 This has a patch that drops an unused FW CFG entry. I think it's best to include it before 1.7 to avoid the need to maintain it in compat machine types. There's also a doc bugfix by Amos: I'm guessing doc fixes are still fair game even at this late stage. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Mon 18 Nov 2013 03:48:14 AM PST using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Amos Kong (1) and Igor Mammedov (1) # Via Michael S. Tsirkin * mst/tags/for_anthony: doc: fix hardcoded helper path pc: disable pci-info Message-id: 1384775449-6693-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 38dc74907e2b2ce2249b8b84eae1a1664b122835 Merge: 7af3151 0478f37 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 12:59:26 2013 -0800 Merge remote-tracking branch 'mjt/trivial-patches' into staging # By Jan Krupa (4) and others # Via Michael Tokarev * mjt/trivial-patches: hw/i386/Makefile.obj: use $(PYTHON) to run .py scripts consistently configure: Use -B switch only for Python versions which support it qga: Fix shutdown command of guest agent to work with SysV console: Remove unused debug code qga: Fix compilation for old versions of MinGW .travis.yml: basic compile and check recipes pci-assign: Fix error_report of pci-stub message qapi: Fix comment for create-type to match code. vl: fix build when configured with no graphic support usb: drop unused USBNetState.inpkt field qemu-char: add missing characters used in keymaps qemu-char: add support for U-prefixed symbols qemu-char: add Czech keymap file qemu-char: add Czech characters to VNC keysyms Message-id: 1384684850-6777-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 7af31519e220efc0572cacec5ac65dc54e73985d Merge: 88a47b9 06d22aa Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 12:59:09 2013 -0800 Merge remote-tracking branch 'kwolf/tags/for-anthony' into staging Block fixes for 1.7.0 # gpg: Signature made Fri 15 Nov 2013 09:51:25 AM PST using RSA key ID C88F2FD6 # gpg: Can't check signature: public key not found # By Max Reitz (3) and others # Via Kevin Wolf * kwolf/tags/for-anthony: block: Fail if requested driver is not available MAINTAINERS: add block driver sub-maintainers qemu-img: Fix overwriting 'ret' before using qemu-iotests: Test qcow2 count_contiguous_clusters() qcow2: fix possible corruption when reading multiple clusters qmp: access the local QemuOptsLists for drive option MAINTAINERS: add block tree repo URLs qemu-iotests: Extend 041 for unbacked mirroring block/drive-mirror: Check for NULL backing_hd qapi-schema: Update description for NewImageMode block: Print its file name if backing file opening failed Message-id: 1384537999-5972-1-git-send-email-kwolf@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 88a47b9de2c01121e153b1feb24cdb2e033b2f04 Merge: 8c630d5 96e3504 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 12:58:32 2013 -0800 Merge remote-tracking branch 'stefanha/net' into staging # By Amos Kong (1) and Sebastian Huber (1) # Via Stefan Hajnoczi * stefanha/net: virtio-net: fix the memory leak in rxfilter_notify() smc91c111: Fix receive starvation Message-id: 1384532032-19057-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 8c630d5150ddedea231a39727e43787e5a3b6690 Merge: 5c5432e 9d0e1da Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 12:57:16 2013 -0800 Merge remote-tracking branch 'agraf/tags/signed-ppc-for-upstream-1.7' into staging Patch queue for ppc - 2013-11-08 These are two patches that will hopefully make it into 1.7. The SLOF update fixes -append kernel command line argument passing into the guest kernel. The other patch makes VIO devices appear when using -device '?'. # gpg: Signature made Thu 07 Nov 2013 07:34:54 PM PST using RSA key ID 03FEDC60 # gpg: Can't check signature: public key not found # By Alexey Kardashevskiy # Via Alexander Graf * agraf/tags/signed-ppc-for-upstream-1.7: pseries: Update SLOF firmware image spapr: add vio-bus devices to categories Message-id: 1383881766-13958-1-git-send-email-agraf@xxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit fc1c4a5d32e15a4c40c47945da85ef9c1e0c1b54 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 09:21:29 2013 +0200 migration: drop MADVISE_DONT_NEED for incoming zero pages The madvise for zeroed out pages was introduced when every transferred zero page was memset to zero and thus allocated. Since commit 211ea740 we check for zeroness of a target page before we memset it to zero. Additionally we memmap target memory so it is essentially zero initialized (except for e.g. option roms and bios which are loaded into target memory although they shouldn't). It was reported recently that this madvise causes a performance degradation in some situations. As the madvise should only be called rarely and if it's called it is likely on a busy page (it was non-zero and changed to zero during migration) drop it completely. Reported-By: Zhang Haoyu <haoyu.zhang@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 2d3aa28cc2cf382aa04cd577e0be542175eea9bd Author: Vlad Yasevich <vyasevic@xxxxxxxxxx> Date: Fri Nov 15 12:09:47 2013 -0500 qom: Fix memory leak in object_property_set_link() Save the result of the call to object_get_canonical_path() so we can free it. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> Reviewed-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 2ad645d2854746b55ddfd1d8e951f689cca5d78f Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Nov 18 17:36:34 2013 +0100 qtest: Use -display none by default This avoids each test needing to add it to suppress windows popping up. [Commit 7ceeedd016facf8d58e14a0d1417fa7225d71072 ("blockdev-test: add test case for drive_add duplicate IDs") and commit 43cd209803d6cffb1e1a028c9ff2fd0ff4fce954 ("qdev-monitor-test: add device_add leak test cases") added qtest tests without specifying -display none. As a result, "make check" now tries to use graphics (GTK or SDL). Since graphics are not used by the test and inappropriate for headless "make check" runs, add the missing -display none. This fixes "make check" in the QEMU buildbot. -- Stefan] Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 96e35046e4a97df5b4e1e24e217eb1e1701c7c71 Author: Amos Kong <akong@xxxxxxxxxx> Date: Mon Nov 18 23:32:17 2013 +0800 virtio-net: fix the memory leak in rxfilter_notify() object_get_canonical_path() returns a gchar*, it should be freed by the caller. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 420508fbba2a6e8eaff008715b5f7eff83f8e865 Author: Amos Kong <akong@xxxxxxxxxx> Date: Wed Oct 23 04:49:28 2013 +0800 doc: fix hardcoded helper path The install directory of qemu-bridge-helper is configurable, but we use a fixed path in the documentation. DEFAULT_BRIDGE_HELPER macro isn't available in texi mode, we should always use "/path/to/" prefix for dynamic paths (e.g.: /path/to/image, /path/to/linux, etc). Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 463230d85e1e0898b1a94092af65026e615e6ec6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 19:20:40 2013 -0400 tcg-ia64: Introduce tcg_opc_bswap64_i Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit db008a8de2c5ea1325d6db455fa5a0a4bca66735 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 19:13:41 2013 -0400 tcg-ia64: Introduce tcg_opc_ext_i Being able to "extend" from 64-bits (with a mov) simplifies a few places where the conditional breaks the train of thought. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit fa0cdb6c2a574774376b33c5fb0907e93403c188 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 18:56:39 2013 -0400 tcg-ia64: Introduce tcg_opc_movi_a Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3b9ccdcc74e06a3e7e10d012679583c2ee30d7fa Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 18:48:42 2013 -0400 tcg-ia64: Introduce tcg_opc_mov_a Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 25c9c73bdc9029407da3b286ab0d1d694c851b3e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 17:13:43 2013 -0400 tcg-ia64: Use A3 form of logical operations We can and/or/xor/andcm small constants, saving one cycle. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f940fb086c607fcb9c98d5ce67619fc5255f6abb Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 16:44:18 2013 -0400 tcg-ia64: Use SUB_A3 and ADDS_A4 for subtraction We can subtract from more small constants that just 0 with one insn, and we can add the negative for most small constants. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8642088a3d73a599b31c6fdd1d2aa2c945d95ced Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 16:15:13 2013 -0400 tcg-ia64: Use ADDS for small addition Avoids a wasted cycle loading up small constants. Simplify the code assuming the tcg optimizer is going to work and don't expect the first operand of the add to be constant. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3c289cba9b82ff55f52287a642332d4c2ca62b95 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 15:56:44 2013 -0400 tcg-ia64: Avoid unnecessary stop bit in tcg_out_alu When performing an operation with two input registers, we'd leave the stop bit (and thus an extra cycle) that's only needed when one or the other input is a constant. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d15de15ca01fa990544b015fb972f2d04ab4d2d0 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 14:45:54 2013 -0400 tcg-ia64: Move AREG0 to R32 Since the move away from the global areg0, we're no longer globally reserving areg0. Which means our use of R7 clobbers a call-saved register. Shift areg0 into the windowed registers. Indeed, choose the incoming parameter register that it comes to us by. This requires moving the register holding the return address elsewhere. Choose R33 for tidiness. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6d264b38fcc267b68df2890b22d27bc404878c8c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 12:47:41 2013 -0400 tcg-ia64: Simplify brcond There was a misconception that a stop bit is required between a compare and the branch that uses the predicate set by the compare. This lead to the usage of an extra bundle in which to perform the compare. The extra bundle left room for constants to be loaded for use with the compare insn. If we pack the compare and the branch together in the same bundle, then there's no longer any room for non-zero constants. At which point we can eliminate half the function by not handling them. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6f65c780b952485d7d1edbb72bf199e9803995e2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 12:11:27 2013 -0400 tcg-ia64: Handle constant calls Using only indirect calls results in 3 bundles (one to load the descriptor address), and 4 stop bits. By looking through the descriptor to the constants, we can perform the call with 2 bundles and only 1 stop bit. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5f7b16877a431c477d8dac92d0bb553d05c6402e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 4 19:00:52 2013 -0400 tcg-ia64: Use shortcuts for nop insns There's no need to go through the full opcode-to-insn function call to generate nops. This makes the source a bit more readable. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e3afa1c4ad3162792421fb64bce937242bc7e0d8 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 4 17:24:38 2013 -0400 tcg-ia64: Use TCGMemOp within qemu_ldst routines Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0478f37ce258438d74164dd182b0ae125f174ec6 Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Sat Nov 16 14:09:14 2013 +0400 hw/i386/Makefile.obj: use $(PYTHON) to run .py scripts consistently $(PYTHON) is a Make variable which is set by configure. In all other places over the tree, .py files are run from Makefiles using this variable, except of a single leftover in hw/i386/Makefile.obj (and a nearby place in there uses $(PYTHON) correctly). Fix this leftover too. Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> Cc: Luigi Rizzo <rizzo@xxxxxxxxxxxx> Reviewed-by:: Stefan Weil <sw@xxxxxxxxxxx> commit 52510f8b2c0486e6c2743b1d069b3584ef4524da Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Nov 14 19:07:03 2013 +0100 configure: Use -B switch only for Python versions which support it Commit 1d984a67a95d88f3e708b077dab8adeb47c38c93 added the -B switch unconditionally. This breaks Python versions before 2.6 which don't support that switch. Now configure adds -B only if it is accepted by the Python interpreter. This modification introduces a small incompatibility because -B might now also be added when configure was called with --python=PYTHON_INTERPRETER. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 485e741cd15655b4032b07b8a912aa5c7a4f2028 Author: whitearchey <whitearchey@xxxxxxxxx> Date: Wed Nov 6 10:54:04 2013 +0900 qga: Fix shutdown command of guest agent to work with SysV For now guest agent uses following command to shutdown system: shutdown -P +0 "blabla" but this syntax works only with shutdown command from systemd or upstart, because SysV shutdown requires -h switch. Following patch changes the command so it works with systemd, upstart and SysV With upstart/systemd qga use one of thee commands, depending on 'mode' parameter: shutdown -P +0 "..." shutdown -H +0 "..." shutdown -r +0 "..." SysV equivalents for these are: shutdown -h -P +0 "..." shutdown -h -H +0 "..." shutdown -h -r +0 "..." and these retain their meaning with upstart/systemd. According to FreeBSD manpages, shutdown does not accept -P and -H options. Commands should be: shutdown -p +0 "..." shutdown -h +0 "..." shutdown -r +0 "..." shutdown in Solaris does not accept any of -hHpPr and does not accept time in "+0" format Signed-off-by: Michael Avdienko <whitearchey@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 06d22aa36706a3d6051b74c8a183ab554a0cb808 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Aug 8 17:44:52 2013 +0200 block: Fail if requested driver is not available If an explicit driver option is present, but doesn't specify a valid driver, then bdrv_open() should fail instead of probing the format. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f05b328c9d85e57ab871ca73a36220493327a649 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Nov 13 10:33:10 2013 +0100 MAINTAINERS: add block driver sub-maintainers There are a number of contributors who maintain block drivers (image formats and protocols). They should be listed in the MAINTAINERS file so that get_maintainer.pl lists them. Note that commits are still merged through Kevin or Stefan's block tree but the block driver sub-maintainers are usually the ones to review patches. Acked-by: Kevin Wolf <kwolf@xxxxxxxxxx> Acked-by: Richard W.M. Jones <rjones@xxxxxxxxxx> Acked-by: Stefan Weil <sw@xxxxxxxxxxx> Acked-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Acked-by: Jeff Cody <jcody@xxxxxxxxxx> Acked-by: Anthony Liguori <aliguori@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 36452f12f877c60f004b34641287d74b14c96208 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 13 20:26:49 2013 +0800 qemu-img: Fix overwriting 'ret' before using This patch moves ret assignment after reporting original error. We were lucky to pass qemu-iotests 048 (qemu-img compare case) but when I tried to run with TEST_DIR=/tmp (tmpfs), it fails with a "wrong" mismatch offset. This fixes two bugs. In the first if branch, setting ret to 1 before using it makes dead code in the next line: pnum is never added to mismatch offset even if ret was 0. In the other if branch, currently the output error is always -4: strerror(-4) -> Unknown error -4 Added regression test in case 048. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> commit a1144c0dbfa3f820916a135d2d3d6db5635adcc2 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Nov 13 12:00:10 2013 +0100 qemu-iotests: Test qcow2 count_contiguous_clusters() Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8b7acc79b9adb4dda6cc867b90e3a1e873f4f7e8 Author: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Date: Thu Nov 14 14:53:46 2013 +0100 smc91c111: Fix receive starvation In case the smc91c111 interface signals that it cannot receive more packets the packets are queued and further reception will be disabled. In case the interface is again ready to receive packets notify the upper layer. Signed-off-by: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 78a52ad5acca7053b774fcc80290e7b7e224c80a Author: Peter Lieven <pl@xxxxxxx> Date: Tue Nov 12 13:48:07 2013 +0100 qcow2: fix possible corruption when reading multiple clusters if multiple sectors spanning multiple clusters are read the function count_contiguous_clusters should ensure that the cluster type should not change between the clusters. Especially the for-loop should break when we have one or more normal clusters followed by a compressed cluster. Unfortunately the wrong macro was used in the mask to compare the flags. This was discovered while debugging a data corruption issue when converting a compressed qcow2 image to raw. qemu-img reads 2MB chunks which span multiple clusters. CC: qemu-stable@xxxxxxxxxx Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 968854c8a106243eae7a68394ce1cb85dc138837 Author: Amos Kong <akong@xxxxxxxxxx> Date: Sat Nov 9 12:15:47 2013 +0800 qmp: access the local QemuOptsLists for drive option Currently we have three QemuOptsList (qemu_common_drive_opts, qemu_legacy_drive_opts, and qemu_drive_opts), only qemu_drive_opts is added to vm_config_groups[]. This patch changes query-command-line-options to access three local QemuOptsLists for drive option, and merge the description items together. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d48adddac7d1839c8d734506aba6fd39fb9c3834 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Nov 6 16:06:25 2013 +0100 MAINTAINERS: add block tree repo URLs Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c15badee200f9e743e3639cc5e3e7dd62c69332f Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Nov 6 19:50:45 2013 +0100 qemu-iotests: Extend 041 for unbacked mirroring Add a new test case in file 041 for mirroring unbacked images in "absolute-paths" mode. This should work, if possible, but most importantly, qemu should never crash. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1452686495922b81d6cf43edf025c1aef15965c0 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Nov 6 19:50:44 2013 +0100 block/drive-mirror: Check for NULL backing_hd It should be possible to execute the QMP "drive-mirror" command in "none" sync mode and "absolute-paths" mode even for block devices lacking a backing file. "absolute-paths" does in fact not require a backing file to be present, as can be seen from the "top" sync mode code path. "top" basically states that the device should indeed have a backing file - however, the current code catches the case if it doesn't and then simply treats it as "full" sync mode, creating a target image without a backing file (in "absolute-paths" mode). Thus, "absolute-paths" does not imply the target file must indeed have a backing file. Therefore, the target file may be left unbacked in case of "none" sync mode as well, if the specified device is not backed either. Currently, qemu will crash trying to dereference the backing file pointer since it assumes that it will always be non-NULL in that case ("none" with "absolute-paths"). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1296c2f0bc8283164c925bf587e497511de7f569 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Nov 7 19:47:48 2013 +0100 qapi-schema: Update description for NewImageMode If the NewImageMode is "absolute-paths" but no backing file is available (e.g., when mirroring a device with an unbacked image), the target image will not be backed either. This patch updates the documentation in qapi-schema.json accordingly. 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 b04b6b6ec3a1e0ba90c2f58617286d9fc35fa372 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Nov 8 11:26:49 2013 +0800 block: Print its file name if backing file opening failed If backing file doesn't exist, the error message is confusing and misleading: $ qemu /tmp/a.qcow2 qemu: could not open disk image /tmp/a.qcow2: Could not open file: No such file or directory But... $ ls /tmp/a.qcow2 /tmp/a.qcow2 $ qemu-img info /tmp/a.qcow2 image: /tmp/a.qcow2 file format: qcow2 virtual size: 8.0G (8589934592 bytes) disk size: 196K cluster_size: 65536 backing file: /tmp/b.qcow2 Because... $ ls /tmp/b.qcow2 ls: cannot access /tmp/b.qcow2: No such file or directory This is not intuitive. It's better to have the missing file's name in the error message. With this patch: $ qemu-io -c 'read 0 512' /tmp/a.qcow2 qemu-io: can't open device /tmp/a.qcow2: Could not open backing file: Could not open '/stor/vm/arch.raw': No such file or directory no file open, try 'help open' Which is a little bit better. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7f1bb742be39184b469d53c0901240b12bb85589 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Nov 6 13:48:40 2013 +0100 pc: disable pci-info The BIOS that we ship in 1.7 does not use pci info from host and so far isn't going to use it. Taking in account problems it caused see 9604f70fdf and to avoid future incompatibility issues, it's safest to disable that interface by default for all machine types including 1.7 as it was never exposed/used by guest. And properly remove/cleanup it during 1.8 development cycle. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 5c5432e7d630592ddcc1876ac8a1505f8f14ef15 Merge: 29c5b77 dce07e0 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 13 11:49:27 2013 -0800 Merge remote-tracking branch 'luiz/queue/qmp' into staging # By Luiz Capitulino (1) and Richard Henderson (1) # Via Luiz Capitulino * luiz/queue/qmp: MAINTAINERS: add git tree info for HMP, QMP and QAPI Adjust qapi-visit for python-2.4.3 Message-id: 1384281985-11100-1-git-send-email-lcapitulino@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 29c5b77d3dd7e970c7bd57cd1d73734ae01e29d2 Merge: b873a55 ef9e455 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 13 11:48:35 2013 -0800 Merge remote-tracking branch 'mst/tags/for_anthony' into staging pci, pc, virtio bug fixes This reverts PCI master abort support - we'll want it eventually but it exposes too many core bugs to be safe for 1.7. This also reverts a recent exec.c change that was an attempt to work-around some of these core bugs. Also included are small fixes in pc and virtio, and a core loader fix for PPC bamboo. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Sun 10 Nov 2013 05:13:22 AM PST using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Michael S. Tsirkin (3) and others # Via Michael S. Tsirkin * mst/tags/for_anthony: Revert "exec: limit system memory size" Revert "hw/pci: partially handle pci master abort" loader: drop return value for rom_add_blob_fixed acpi-build: disable with -no-acpi virtio-net: only delete bh that existed Fix pc migration from qemu <= 1.5 Message-id: 1384159176-31662-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit b873a55cf45f1fbff7026de885848d52939d18e1 Merge: deb0f50 cc386e9 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 13 11:48:02 2013 -0800 Merge remote-tracking branch 'stefanha/net' into staging # By Dmitry Fleytman (1) and others # Via Stefan Hajnoczi * stefanha/net: virtio-net: broken RX filtering logic fixed net: fix qemu_flush_queued_packets() in presence of a hub net: disallow to specify multicast MAC address Message-id: 1383928804-28866-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit deb0f500651317863922964c87b4fa64eecdbd73 Merge: 70c4c5b 7e38200 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 13 11:47:44 2013 -0800 Merge remote-tracking branch 'stefanha/block' into staging # By Jeff Cody (26) and others # Via Stefan Hajnoczi * stefanha/block: (37 commits) block: Round up total_sectors block: vhdx qemu-iotest - log replay of data sector block: qemu-iotests for vhdx, add write test support block: vhdx - update _make_test_img() to filter out vhdx options block: vhdx - add .bdrv_create() support block: vhdx - fix comment typos in header, fix incorrect struct fields block: vhdx - break out code operations to functions block: vhdx - move more endian translations to vhdx-endian.c block: vhdx - remove BAT file offset bit shifting block: vhdx write support block: vhdx - add log write support block: vhdx - add region overlap detection for image files block: vhdx - log parsing, replay, and flush support block: vhdx code movement - move vhdx_close() above vhdx_open() block: vhdx - update log guid in header, and first write tracker block: vhdx - break endian translation functions out block: vhdx - log support struct and defines block: vhdx code movement - VHDXMetadataEntries and BDRVVHDXState to header. block: vhdx - add header update capability. block: vhdx - minor comments and typo correction. ... Message-id: 1383905551-16411-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 70c4c5b5621f6d954843547bcab9db857d882e99 Merge: 9f43a3f ebbfd5a Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 13 11:47:06 2013 -0800 Merge remote-tracking branch 'filippov/tags/20131108-xtensa' into staging Two small fixes for 1.7: - add missing debug feature to dc233c xtensa core; - fix qemu abort caused by gdb attempt to invalidate a breakpoint by virtual address for which there's no mapping. # gpg: Signature made Thu 07 Nov 2013 09:32:19 PM PST using RSA key ID F83FA044 # gpg: Can't check signature: public key not found # By Max Filippov # Via Max Filippov * filippov/tags/20131108-xtensa: target-xtensa: add missing DEBUG section to dc233c config exec: fix breakpoint_invalidate when pc may not be translated Message-id: 1383889643-21621-1-git-send-email-jcmvbkbc@xxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 9f43a3f541019a5836247c8cfdfc5fef89cf077d Merge: 6bddfae 73204cf Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 13 11:46:23 2013 -0800 Merge remote-tracking branch 'kraxel/audio.3' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * kraxel/audio.3: ossaudio: check for oss support in oss_audio_init Revert "ossaudio: do not enable by default" Message-id: 1383823947-5132-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 6bddfae306001c6e474ff97ef59c518568ea5af4 Merge: 964668b 20d155b Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 13 11:45:58 2013 -0800 Merge remote-tracking branch 'sweil/mingw' into staging # By Stefan Weil # Via Stefan Weil * sweil/mingw: linux-user: Fix stat64 syscall for SPARC64 configure: Add config.status to recreate the current configuration nsis: Improved support for parallel installation of 32 and 64 bit code Message-id: 1383804909-376-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 3325a83627de3e3bd9a97548f13bbb53b354d970 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 10 15:58:19 2013 +0100 console: Remove unused debug code The local function console_print_text_attributes is no longer used since commit 7d6ba01c3741bc32ae252bf64a5fd3f930c2df4f. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ba1c29310904b34265203e86e133fe177e9f6511 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 10 18:49:11 2013 +0100 qga: Fix compilation for old versions of MinGW While MinGW-w64 can compile the qga code, MinGW from Debian lenny (gcc-mingw32 4.4.2-3) shows these errors: In file included from qga/vss-win32.c:17: qga/vss-win32/requester.h:31: error: expected »=«, »,«, »;«, »asm« or »__attribute__« before »requester_init« qga/vss-win32/requester.h:32: error: expected »=«, »,«, »;«, »asm« or »__attribute__« before »requester_deinit« The macro STDAPI is unknown, so add the missing include file which defines it. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit fe863ab9855478e693d63f306141eb242217b424 Author: Alex Bennée <alex@xxxxxxxxxx> Date: Wed Nov 6 10:43:37 2013 +0000 .travis.yml: basic compile and check recipes This adds a build matrix definition for travis-ci.org continuous integration service. It is usable on any public repository hosted on GitHub. Once you have created an account signed into Travis you can enable it on selected projects via travis-ci.org/profile. Alternatively you can configure the service hooks on GitHub via the repository Settings tab,then Service Hooks and selecting Travis. Once setup Travis will automatically test every push as well as any pull requests submitted to that repository. The build matrix is currently split by target architecture (see TARGETS environment variable) because a full build of QEMU can take some time. This way you get quick feedback for any obvious errors. The additional environment variables exist to allow additional builds to tweak the environment. These are: EXTRA_CONFIG - extra terms passed to configure EXTRA_PKGS - extra dev packages to install TEST_CMD - default "make check", can be overridden I've confined the additional stuff to x86/x86_64 for convenience. As Travis supports clang the main builds are done twice (once for gcc and once for clang). However clang is disabled for the debug/trace builds for the purposes of brevity. Other wrinkles: * The lttng user-space tracing back-end is disabled (it is currently horribly broken) * The ftrace back-end doesn't run "make check" (it requires a mounted debugfs to work) * There are two debug enabled build (with and without TCG interpreter) Signed-off-by: Alex Bennée <alex@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 25a666d2ec0ab6e84489d50495b4c3e250531426 Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Fri Oct 11 11:52:30 2013 -0400 pci-assign: Fix error_report of pci-stub message Using multiple calls to error_report here means every line is prefaced with the (potentially long) pci-assign command line arguments. Use a single error_printf to preserve the intended formatting. Since this code path is always preceded by an error_report call, we don't lose the command line reporting. Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 669aa3f6bdf49663cb5cbceac605c020750263d6 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Nov 1 17:35:29 2013 +0800 qapi: Fix comment for create-type to match code. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 8111d0287821a9b2a2faefbf0be1f345dbe93222 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Oct 29 08:36:31 2013 +0400 vl: fix build when configured with no graphic support The following error occurs when building with no graphic output support: vl.c: In function â??mainâ??: vl.c:2829:19: error: variable â??dsâ?? set but not used [-Werror=unused-but-set-variable] DisplayState *ds; ^ cc1: all warnings being treated as errors To reproduce this issue, just run: $ ./configure \ --disable-curses \ --disable-sdl \ --disable-cocoa \ --disable-gtk \ --disable-vnc \ --enable-werror $ make vl.o Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit d9570cadd54115dd1b2bdff7d43c0d4f840e65e5 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Oct 29 15:44:31 2013 +0100 usb: drop unused USBNetState.inpkt field Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 4c6968c7a03d5e4805dad09aba0491e12b16a596 Author: Jan Krupa <JKrupa@xxxxxxxx> Date: Wed Oct 16 14:40:06 2013 +0200 qemu-char: add missing characters used in keymaps This patch adds all missing characters used in regional keymap files which already exist in QEMU. I checked for the missing characters by going through all of the keymaps and matching that with records in vnc_keysym.h. If the key wasn't found I looked it up in libxkbcommon library [1]. If I understood it correctly this is also the same place where most of the keymaps were exported from according to the comment on the first line in those files. I was able to find all symbols except "quotebl" used in Netherland keymap. I tested this update with Czech keyboard by myself. I also asked Matej Serc to test Slovenian keyboard layout - he reported problems with it few days ago on this mailing list. Both layouts seems to work fine. I wasn't able to test the remaining layouts but since this change doesn't modify any existing symbols, just adds new ones, I don't expect any sideeffects. [1] http://cgit.freedesktop.org/xorg/lib/libxkbcommon Signed-off-by: Jan Krupa <jkrupa@xxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 828071592470d0703a283433ea195295dab0ad7d Author: Jan Krupa <JKrupa@xxxxxxxx> Date: Wed Oct 16 14:40:05 2013 +0200 qemu-char: add support for U-prefixed symbols This patch adds support for Unicode symbols in keymap files. This feature was already used in some keyboard layouts in QEMU generated from XKB (e.g. Arabic) but it wasn't implemented in QEMU source code. There is no need for check of validity of the hex string after U character because strtol returns 0 in case the conversion was unsuccessful. Signed-off-by: Jan Krupa <jkrupa@xxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 3751e72246b3efd9902bddc7fbd20df8f86bab21 Author: Jan Krupa <JKrupa@xxxxxxxx> Date: Wed Oct 16 14:40:04 2013 +0200 qemu-char: add Czech keymap file This patch adds Czech keyboard layout to available keymap files and Makefile. Signed-off-by: Jan Krupa <jkrupa@xxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 018715f96cc1315df355743a1f807e1b95d2a10f Author: Jan Krupa <JKrupa@xxxxxxxx> Date: Wed Oct 16 14:40:03 2013 +0200 qemu-char: add Czech characters to VNC keysyms This patch adds missing Czech characters to the VNC keysym table. Signed-off-by: Jan Krupa <jkrupa@xxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit dce07e0b2b172ccce43955fdee2149ab2413251b Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Tue Nov 5 16:09:37 2013 -0500 MAINTAINERS: add git tree info for HMP, QMP and QAPI Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 7b75d9d61bf9b7b43f6df2fb2fbfc38c4eb9d2e9 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Oct 31 13:26:01 2013 -0700 Adjust qapi-visit for python-2.4.3 We say we support python 2.4, but python 2.4.3 does not support the "expr if test else expr" syntax used here. This allows QEMU to compile on RHEL 5.3, the last release for ia64. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit ef9e455d645bed6d2360cd658dc00ca11a849877 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Nov 10 11:54:33 2013 +0200 Revert "exec: limit system memory size" This reverts commit 818f86b88394b7b2b59d313e51043fe15a8004db. This was a work-around for bugs elsewhere in the system, exposed by commit a53ae8e934cd54686875b5bcfc2f434244ee55d6: "hw/pci: partially handle pci master abort" since that's reverted now, the work-around is not required for 1.7 anymore. The proper fix is supporting full 64 bit addresses in the radix tree. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Tested-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> commit 0fbf50b6ec126600dca115adb1563c657cc27695 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Sun Nov 10 11:49:57 2013 +0200 Revert "hw/pci: partially handle pci master abort" This reverts commit a53ae8e934cd54686875b5bcfc2f434244ee55d6. The patch being reverted introduced a low-priority memory region covering all 64 bit pci address space. This exposed the following bugs elsewhere in the code: 1. Some memory regions have INT64_MAX size, where the intent was all 64 bit address space. This results in a sub-page region, should be UINT64_MAX. 2. page table rendering in exec.c ignores physical address bits above TARGET_PHYS_ADDR_SPACE_BITS. Access outside this range (e.g. from device DMA, or gdb stub) ends up with a wrong region. Registering a region outside this range leads to page table corruption. 3. Some regions overlap PCI hole and have same priority. This only works as long as no device uses the overlapping address. It doesn't look like we can resolve all issues in time for 1.7. Let's fix the bugs first and apply afterwards for 1.8. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit fe1479aa251971abd3842dee4a783d4ebace8fb8 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Nov 10 11:53:30 2013 +0200 loader: drop return value for rom_add_blob_fixed rom_add_blob never fails, and neither does rom_add_blob_fixed, so there's no need to return value from it. In fact, rom_add_blob_fixed was erroneously returning -1 unconditionally which made the only system that checked the return value -M bamboo fail to start. Drop the return value and drop checks from ppc440_bamboo to fix this failure. Reported-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 81adc5131534ca7554cebe64cd8f86bac28dbd1b Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 7 14:12:05 2013 +0200 acpi-build: disable with -no-acpi QEMU will currently crash if started with -no-acpi flag since acpi build code probes the PM device which isn't present in this configuration. To fix, don't expose ACPI tables to guest when acpi has been disabled from command line. Fixes LP# 1248854 https://bugs.launchpad.net/qemu/+bug/1248854 Reported-by: chao zhou <chao.zhou@xxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 6b9b8758c15f3bc2875dbd6e2d03c5362b8d6902 Author: Jason Wang <jasowang@xxxxxxxxxx> Date: Wed Nov 6 16:58:08 2013 +0800 virtio-net: only delete bh that existed We delete without check whether it existed during exit. This will lead NULL pointer deference since it was created conditionally depends on guest driver status and features. So add a check of existence before trying to delete it. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 04c7d8b8dea724f1007f0f6e76047ff03b4cb24f Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Tue Nov 5 18:46:27 2013 -0500 Fix pc migration from qemu <= 1.5 The following commit introduced a migration incompatibility: commit 568f0690fd9aa4d39d84b04c1a5dbb53a915c3fe Author: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Date: Thu Jun 6 18:48:49 2013 +1000 pci: Replace pci_find_domain() with more general pci_root_bus_path() The issue is that i440fx savevm idstr went from 0000:00:00.0/I440FX to 0000:00.0/I440FX. Unfortunately we are stuck with the breakage for 1.6 machine types. Add a compat property to maintain the busted idstr for the 1.6 machine types, but revert to the old style format for 1.7+, and <= 1.5. Tested with migration from qemu 1.5, qemu 1.6, and qemu.git. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit cc386e96727442f5b67052d4e0a602f6f652ffe6 Author: Dmitry Fleytman <dfleytma@xxxxxxxxxx> Date: Sun Sep 22 18:09:13 2013 +0300 virtio-net: broken RX filtering logic fixed Upon processing of VIRTIO_NET_CTRL_MAC_TABLE_SET command multicast list overwrites unicast list in mac_table. This leads to broken logic for both unicast and multicast RX filtering. Signed-off-by: Dmitry Fleytman <dfleytma@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1597591cca8a8fa20b8872937b859ec2aaccba6c Author: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Date: Tue Nov 5 10:54:29 2013 +0400 net: fix qemu_flush_queued_packets() in presence of a hub Do not return after net_hub_flush(). Always flush callee network client incoming queue. Signed-off-by: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d60b20cf2ae6644b05159b9361cba83fb6c0cb84 Author: Dmitry Krivenok <krivenok.dmitry@xxxxxxxxx> Date: Mon Oct 21 12:08:44 2013 +0400 net: disallow to specify multicast MAC address [Assigning a multicast MAC address to a NIC leads to confusing behavior. Reject multicast MAC addresses so users are alerted to their error straight away. The "net/eth.h" in6_addr rename prevents a name collision with <netinet/in.h> on Linux. -- Stefan] Signed-off-by: Dmitry V. Krivenok <krivenok.dmitry@xxxxxxxxx> Reviewed-by: Amos Kong <kongjianjun@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7e382003f1bd9d8a441ecc5ac8a74bad3564d943 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 6 19:48:06 2013 +0800 block: Round up total_sectors Since b94a2610, bdrv_getlength() is omitted when probing image. VMDK monolithicFlat is broken by that because a file < 512 bytes can't be read with its total_sectors truncated to 0. This patch round up the size to BDRV_SECTOR_SIZE, when a image size is not sector aligned. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ebbfd5a094ead6f28d45718f97b4837bd3e7f916 Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Sun Oct 20 04:15:23 2013 +0400 target-xtensa: add missing DEBUG section to dc233c config This fixes missing debug feature opcodes of dc233c core variant. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> commit e8262a1b5b7cfbcbc80c46e4ce6ff7c517b7b2f6 Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Fri Sep 27 22:29:17 2013 +0400 exec: fix breakpoint_invalidate when pc may not be translated This fixes qemu abort with the following message: include/qemu/int128.h:22: int128_get64: Assertion `!a.hi' failed. which happens due to attempt to invalidate breakpoint by virtual address for which get_phys_page_debug couldn't find mapping. For more details see http://lists.nongnu.org/archive/html/qemu-devel/2013-09/msg04582.html Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 9d0e1dac108ce90cbe62c89af57a7ace006f5152 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Oct 15 16:00:33 2013 +1100 pseries: Update SLOF firmware image SLOF git commit is e2e8ac901e617573ea383f9cffd136146d0675a4 The main changes are: * fixed bug with not passing arguments from -append * client-architecture-support hypercall * netboot * USB stack fixes The full list of changes: > client-architecture-support: fix wrong version read > client-architecture-support: fix redundant stack drop > Update device tree returned by CAS hypercall > fdt: introduce fdt-init > Add ibm,client-architecture-support method > Kernel parameter passed from qemu commandline ignored > Allow more than one client to open net devices simultaneously > ci: add missing close in else condition > Add GPT support > pci: fix interrupt-map for bridges > usb-ohci: preserve the toggleCarry bit in ED > usb-ohci: done_head processing fixes > usb-ohci: update init and rationalize timings > usb-msc: handle stall and other fixes > scsi: make probe more error resilient > usb-core: Add CLEAR FEATURE api > Implement range allocator > Remove bcm57xx network driver as module > Remove e1000 network driver as module > Remove virtio-net network driver as module > Remove veth network driver as module > Add missing close-dev in ping > Remove lodable network driver modules and related functions > Add bcm57xx network driver in libbcm > Add e1000 network driver in libe1k > Add virtio-net driver in libvirtio > Add veth driver in libveth > Get MAC address for client interface module > Add SLOF usleep wrapper > Add SLOF pci wrapper functions > Fix 'canon' client interface Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 29fdedfed54db4b04fe391ce8a4d9bf5ff86218e Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Oct 11 14:08:20 2013 +1100 spapr: add vio-bus devices to categories In order to get devices appear in output of "./qemu-system-ppc64 -device ?", they must be assigned to one of DEVICE_CATEGORY_XXXX. This puts VIO devices classes to corresponding categories. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit e78835b722eb26f5a56370166e99b69e9751ea2a Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:56 2013 -0400 block: vhdx qemu-iotest - log replay of data sector This tests the replay of a data sector in a VHDX image file. The image file is a 10G dynamic image, with 4MB block size. The image was created with qemu-img, and the log left unplayed by modification of the vhdx image format driver. It was verified under both QEMU and Hyper-V that the image file, post log replay, matched. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 751aec24cdcd4359b5927df5cebfe6b8d3e74515 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:55 2013 -0400 block: qemu-iotests for vhdx, add write test support This removes the IMGFMT_GENERIC blocker for read-only, so existing iotests run read/write tests for vhdx images created by qemu-img (e.g. tests 001, 002, 003). In addition, this updates the sample image test for the Hyper-V created image, to verify we can write it as well. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 228b234dd73383408743d749d29a6c37e9d99981 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:54 2013 -0400 block: vhdx - update _make_test_img() to filter out vhdx options The non-global option output is suppresed in _make_test_img() for output verification in the 0?? tests. This adds suppression for the vhdx-unique options as well. This allows check -vhdx to run successfully. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3412f7b1bd8f250c34c9f933767d06b9444bb821 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:53 2013 -0400 block: vhdx - add .bdrv_create() support This adds support for VHDX image creation, for images of type "Fixed" and "Dynamic". "Differencing" types (i.e., VHDX images with backing files) are currently not supported. Options for image creation include: * log size: The size of the journaling log for VHDX. Minimum is 1MB, and it must be a multiple of 1MB. Invalid log sizes will be silently fixed by rounding up to the nearest MB. Default is 1MB. * block size: This is the size of a payload block. The range is 1MB to 256MB, inclusive, and must be a multiple of 1MB as well. Invalid sizes and multiples will be silently fixed. If '0' is passed, then a sane size is chosen (depending on virtual image size). Default is 0 (Auto-select). * subformat: - "dynamic" An image without data pre-allocated. - "fixed" An image with data pre-allocated. Default is "dynamic" When creating the image file, the lettered sections are created: -----------------------------------------------------------------. | (A) | (B) | (C) | (D) | (E) | File ID | Header1 | Header 2 | Region Tbl 1 | Region Tbl 2 | | | | | .-----------------------------------------------------------------. 0 64KB 128KB 192KB 256KB 320KB .---- ~ ----------- ~ ------------ ~ ---------------- ~ -----------. | (F) | (G) | (H) | | Journal Log | BAT / Bitmap | Metadata | .... data ...... | | | | .---- ~ ----------- ~ ------------ ~ ---------------- ~ -----------. 1MB (var.) (var.) (var.) Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 61c02e5687dcc581c9d3413b61040b023adeaa9c Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:52 2013 -0400 block: vhdx - fix comment typos in header, fix incorrect struct fields VHDXPage83Data and VHDXParentLocatorHeader both incorrectly had their MSGUID fields set as arrays of 16. This is incorrect (it stems from an early version where those fields were uint_8 arrays). Those fields were, up to this patch, unused. Also, there were a couple of typos and incorrect wording in comments, and those have been fixed up as well. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1e74a971cb3229813112c74dca81e599812b66f3 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:51 2013 -0400 block: vhdx - break out code operations to functions This is preperation for vhdx_create(). The ability to write headers, and calculate the number of BAT entries will be needed within the create() functions, so move this relevant code into helper functions. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c325ee1de84dde5b2a90c30e1b788defa31c5d53 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:50 2013 -0400 block: vhdx - move more endian translations to vhdx-endian.c In preparation for vhdx_create(), move more endian translation functions out to vhdx-endian.c. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0b7da092b40734538631c3ad461c1753a87535fc Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:49 2013 -0400 block: vhdx - remove BAT file offset bit shifting Bit shifting can be fun, but in this case it was unnecessary. The upper 44 bits of the 64-bit BAT entry is specifies the File Offset, so we shifted the bits to get access to the value. However, per the spec the value is in MB. So we dutifully shifted back to the left by 20 bits, to convert to a true uint64_t file offset. This replaces those steps with just a bit mask, to get rid of the lower 20 bits instead. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d92aa8833c051b53d3bf2614ff885df0037f10bb Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:48 2013 -0400 block: vhdx write support This adds support for writing to VHDX image files, using coroutines. Writes into the BAT table goes through the VHDX log. Currently, BAT table writes occur when expanding a dynamic VHDX file, and allocating a new BAT entry. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8adc52336d9c44ab4c7b9358a7be22ac0ef962bf Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:47 2013 -0400 block: vhdx - add log write support This adds support for writing to the VHDX log. For spec details, see VHDX Specification Format v1.00: https://www.microsoft.com/en-us/download/details.aspx?id=34750 There are a few limitations to this log support: 1.) There is no caching yet 2.) The log is flushed after each entry The primary write interface, vhdx_log_write_and_flush(), performs a log write followed by an immediate flush of the log. As each log entry sector is a minimum of 4KB, partial sector writes are filled in with data from the disk write destination. If the current file log GUID is 0, a new GUID is generated and updated in the header. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1a848fd4517820981b542e0d10e64c0426414229 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:46 2013 -0400 block: vhdx - add region overlap detection for image files Regions in the image file cannot overlap - the log, region tables, and metdata must all be unique and non-overlapping. This adds region checking by means of a QLIST; there can be a variable number of regions and metadata (there may be metadata or region tables that we do not recognize / know about, but are not required). This adds the capability to register a region for later checking, and to check against registered regions for any overlap. Also, if neither the BAT or Metadata region tables are found, return error. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0a43a1b5d7c33208120eeb2d98ebb9ab15dc2c87 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:45 2013 -0400 block: vhdx - log parsing, replay, and flush support This adds support for VHDX v0 logs, as specified in Microsoft's VHDX Specification Format v1.00: https://www.microsoft.com/en-us/download/details.aspx?id=34750 The following support is added: * Log parsing, and validation - validate that an existing log is correct. * Log search - search through an existing log, to find any valid sequence of entries. * Log replay and flush - replay an existing log, and flush/clear the log when complete. The VHDX log is a circular buffer, with elements (sectors) of 4KB. A log entry is a variably-length number of sectors, that is comprised of a header and 'descriptors', that describe each sector. A log may contain multiple entries, know as a log sequence. In a log sequence, each log entry immediately follows the previous entry, with an incrementing sequence number. There can only ever be one active and valid sequence in the log. Each log entry must match the file log GUID in order to be valid (along with other criteria). Once we have flushed all valid log entries, we marked the file log GUID to be zero, which indicates a buffer with no valid entries. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c46415afc2c99ea052f52f9d68ed9a78799f2c10 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:44 2013 -0400 block: vhdx code movement - move vhdx_close() above vhdx_open() Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c3906c5e8281b37a526c706596af8575d6ac00d3 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:43 2013 -0400 block: vhdx - update log guid in header, and first write tracker Allow tracking of first file write in the VHDX image, as well as the ability to update the GUID in the header. This is in preparation for log support. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0f48e8f0978afe0bd44c63749e7df6411da6c437 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:42 2013 -0400 block: vhdx - break endian translation functions out This moves the endian translation functions out from the vhdx.c source, into a separate source file. In addition to the previously defined endian functions, new endian translation functions for log support are added as well. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 625565d27e8d7c7f7238ccd118a2cd49c1c52963 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:41 2013 -0400 block: vhdx - log support struct and defines This adds some magic number defines, and internal structure definitions for VHDX log replay support. The struct VHDXLogEntries does not reflect an on-disk data structure, and thus does not need to be packed. Some minor code style fixes are applied as well. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 28541d46280733b9afe7b106a3a6665275a45e5f Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:40 2013 -0400 block: vhdx code movement - VHDXMetadataEntries and BDRVVHDXState to header. In preparation for VHDX log support, move these structures to the header. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4f18b7824ab5eda9fe051f5b24e90e5f34d08a23 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:39 2013 -0400 block: vhdx - add header update capability. This adds the ability to update the headers in a VHDX image, including generating a new MS-compatible GUID. As VHDX depends on uuid.h, VHDX is now a configurable build option. If VHDX support is enabled, that will also enable uuid as well. The default is to have VHDX enabled. To enable/disable VHDX: --enable-vhdx, --disable-vhdx Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6e9d290bf62406098ca3d7bf3796463681ed3c39 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:38 2013 -0400 block: vhdx - minor comments and typo correction. Just a couple of minor comments to help note where allocated buffers are freed, and a typo fix. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0173e7bbf3c892abd4e35507ddeb2f23c1a44829 Author: Peter Lieven <pl@xxxxxxx> Date: Mon Oct 21 16:00:18 2013 +0200 block/vpc: fix virtual size for images created with disk2vhd Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 17826bc159893300a05551d8a830275c5ecf0092 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Nov 5 20:03:33 2013 +0100 block: Save errno before error_setg_errno error_setg_errno() may overwrite errno; therefore, its value should be read before calling that function and not afterwards. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 43cd209803d6cffb1e1a028c9ff2fd0ff4fce954 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Oct 30 14:54:35 2013 +0100 qdev-monitor-test: add device_add leak test cases Ensure that the device_add error code path deletes device objects. Failure to do so not only leaks the objects but can also keep other objects (like drive or netdev) alive due to qdev properties holding references. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 7ceeedd016facf8d58e14a0d1417fa7225d71072 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Oct 30 14:54:34 2013 +0100 blockdev-test: add test case for drive_add duplicate IDs The following should work: (qemu) drive_add if=none,id=drive0 (qemu) drive_del drive0 (qemu) drive_add if=none,id=drive0 Previous versions of QEMU produced a duplicate ID error because drive_add leaked the options. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 0c460dac03e7919079525d8e24ef2c4c607c219d Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Oct 30 14:54:33 2013 +0100 libqtest: add qmp(fmt, ...) -> QDict* function Add a qtest qmp() function that returns the response object. This allows test cases to verify the result or to check for error responses. It also allows waiting for QMP events. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> commit 0d1aa05e9eba2437fdcdfbaa846c850c986bf7c6 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Oct 30 14:54:32 2013 +0100 libqtest: rename qmp() to qmp_discard_response() Existing qmp() callers do not expect a response object. In order to implement real QMP test cases it will be necessary to inspect the response object. Rename qmp() to qmp_discard_response(). Later patches will introduce a qmp() function that returns the response object and tests that use it. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> commit ec9c10d29c6bb5613a680af62f5825d3bb2d31d4 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Oct 30 14:54:30 2013 +0100 blockdev: fix drive_init() opts and bs_opts leaks These memory leaks also make drive_add if=none,id=drive0 without a file= option leak the options list. This keeps ID "drive0" around forever. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit db5dc557288fb1b7a17ffabe3b92f299fc2dc187 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Oct 31 11:57:42 2013 -0400 block: qemu-iotests, add quotes to $TEST_IMG usage in 061 When creating images with backing files in the test, the backing file argument was not quoted properly. This caused the test to fail when run from a pathname with a space. Pass the backing argument in with the -b option to _make_test_img, so it can be properly quoted. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1ab391938d29ebc3956d07b622c987c350434eaf Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Oct 31 11:57:41 2013 -0400 block: qemu-iotests, add quotes to $TEST_IMG usage for 051 There were still a couple of instances of unquoted usage of $TEST_IMG and $TEST_IMG.orig. Quoted these so they will not fail on pathnames with spaces in them. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f897e3939cbbcec26e99415a499654ae7ae09b64 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Oct 31 11:57:40 2013 -0400 block: qemu-iotests, removes duplicate double quotes in 039 Test 039 had $TEST_IMG with duplicate double quotes - remove duplicate. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3cbe3e8d25529ecb4e1838d1c6856e199b3a66d4 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Oct 31 11:57:39 2013 -0400 block: qemu-iotests, add quotes to $TEST_IMG usage in 019 There were still instances of $TEST_IMG not being properly quoted. This was in the usage of a string built up for a 'for' loop; modify the loop so we can quote $TEST_IMG properly. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 02cde1688131090d3abb2f210e30a44d96804167 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Oct 31 11:57:38 2013 -0400 block: qemu-iotests, add quotes to $TEST_IMG.base usage in 017 $TEST_IMG.base is used unquoted. Add quotes so that pathnames with spaces are supported. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0018c03f5d37f3a7df23eef0e9f1e6e6189ed634 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Oct 31 11:57:37 2013 -0400 block: qemu-iotests, fix _make_test_img() to work with spaced pathnames _make_test_img() currently works with spaced pathnames only when not specifying a backing file. This fixes it so that the backing file argument is properly quoted. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0084043888f6773d905c1b5d644b89c79d1c7714 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Oct 31 11:57:36 2013 -0400 block: qemu-iotests, add quotes to $TEST_IMG usage io pattern tests The usage of $TEST_IMG was not properly quoted everywhere in common.pattern. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 511018e4b49a5f0f1c7b051bb79fe8eccbb590fe Author: Andreas Tobler <andreast@xxxxxxxxxxx> Date: Thu Oct 31 22:41:46 2013 +0100 block/raw-posix: fix FreeBSD compilation The below patch is needed to compile qemu trunk on FreeBSD with gcc48, clang will fail.... ;). Host x84_64-freebsd. Signed-off-by: Andreas Tobler <andreast@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 64815e2a966f0a3f18818b9d542f1ef02dc992a2 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Sat Nov 2 14:52:11 2013 +0100 qemu-iotests: Filter out actual image size in 067 The actual size of the image file may differ depending on the Linux kernel currently running on the host. Filtering out this value makes this test pass in such cases. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a9a443c874cf92b583852cf8ea5b75df8580df32 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Nov 1 17:35:29 2013 +0800 qapi: Fix comment for create-type to match code. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 73204cffe55ce65b3a344afc3da637d67beb8c32 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Nov 7 12:24:41 2013 +0100 ossaudio: check for oss support in oss_audio_init Check whenever the device path (/dev/dsp by default) exists and qemu is allowed to access it. Return NULL if it isn't, so ossaudio will not be used on systems wihtout oss support (increasinly common on modern linux systems). Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 926de75432d57cade393750da8102f3ba1eeb4a0 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Nov 7 12:25:02 2013 +0100 Revert "ossaudio: do not enable by default" This reverts commit c905c5012ac0c6fde3b8094d2206a3139deddba2. There is a better fix for the issue at hand. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit ef4cbe14342c1f63b3c754e306218f004f4e26c4 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Nov 6 22:35:27 2013 +0100 kvm: Fix uninitialized cpuid_data This error was reported by valgrind when running qemu-system-x86_64 with kvm: ==975== Conditional jump or move depends on uninitialised value(s) ==975== at 0x521C38: cpuid_find_entry (kvm.c:176) ==975== by 0x5235BA: kvm_arch_init_vcpu (kvm.c:686) ==975== by 0x4D5175: kvm_init_vcpu (kvm-all.c:267) ==975== by 0x45035B: qemu_kvm_cpu_thread_fn (cpus.c:858) ==975== by 0xD361E0D: start_thread (pthread_create.c:311) ==975== by 0xD65E9EC: clone (clone.S:113) ==975== Uninitialised value was created by a stack allocation ==975== at 0x5226E4: kvm_arch_init_vcpu (kvm.c:446) Instead of adding more memset calls for parts of cpuid_data, the existing calls were removed and cpuid_data is now initialized completely in one call. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit 3a902babf1d7b5ef1ffa8bc95be271fe1270c2f6 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Mon Nov 4 14:42:55 2013 +0100 pci-assign: Remove dead code for direct I/O region access from userspace This feature was already deprecated back then in qemu-kvm, ie. before pci-assign went upstream. assigned_dev_ioport_rw will never be invoked with resource_fd < 0. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Acked-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit 20d155bc902f41c5b354937e730ad85b43614ae9 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Oct 30 22:52:24 2013 +0100 linux-user: Fix stat64 syscall for SPARC64 Some targets use a stat64 structure for the stat64 syscall while others use a stat structure. SPARC64 used the wrong kind. Instead of extending the conditional compilation in syscall.c, now a macro TARGET_HAS_STRUCT_STAT64 is defined whenever a target has a target_stat64. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Erik de Castro Lopo <erikd@xxxxxxxxxxxxx> commit bdf523e6923f1e667055e947e71fc600549cefae Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Oct 20 18:39:21 2013 +0200 configure: Add config.status to recreate the current configuration The latest configure invocation was saved in config-host.mak and could be extracted from that file to recreate the configuration. Now it is saved in a new file config.status which can be directly executed to recreate the configuration. The file name and the comments were copied from GNU autoconf. Makefile now uses config.status, but also includes transitional code for the old mechanism. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> commit 40b9cc5e40ca69c15a2243852fa20fd1a35a0ea6 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Sep 28 10:34:30 2013 +0200 nsis: Improved support for parallel installation of 32 and 64 bit code 32 and 64 bit variants of QEMU already had different default installation directories, but used a common registry key for saving the choosen directory. This is confusing for users who want to install both variants, so fix it by using different registry keys. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 964668b03d26f0b5baa5e5aff0c966f4fcb76e9e Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 6 21:49:39 2013 -0800 Update version for 1.7.0-rc0 release Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 898ae2846de4dcb19da0b80f99ef2215dd137e56 Author: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 4 17:07:16 2013 +0800 sdl: Reverse support for video mode setting Currently, If the setting of video mode failed, qemu will exit. It should go back to the previous setting if the new screen resolution failed. This patch fixes LP#1216368, add support to revert to existing surface for the failure of video mode setting. Reported-by: Sascha Krissler <sascha@xxxxxxxxx> Signed-off-by: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Message-id: 1378285636-7091-1-git-send-email-lilei@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 5f3e31012e334f3410e04abae7f88565df17c91a Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Oct 28 17:32:18 2013 +0100 timers: fix stop/cont with -icount Stop/cont commands are broken with -icount due to a deadlock. The real problem is that the computation of timers_state.cpu_ticks_offset makes no sense with -icount enabled: we set it to an icount clock value in cpu_disable_ticks, and subtract a TSC (or similar, whatever cpu_get_real_ticks happens to return) value in cpu_enable_ticks. The fix is simple. timers_state.cpu_ticks_offset is only used together with cpu_get_real_ticks, so we can use cpu_get_real_ticks in cpu_disable_ticks. There is no need to update cpu_ticks_prev at the time cpu_disable_ticks is called; instead, we can do it the next time cpu_get_ticks is called. The change to cpu_disable_ticks is the important part of the patch. The rest modifies the code to always check timers_state.cpu_ticks_prev, even when the ticks are not advancing (i.e. the VM is stopped). It also makes a similar change to cpu_get_clock_locked, so that the code remains similar for cpu_get_ticks and cpu_get_clock_locked. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Message-id: 1382977938-13844-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit cd5be5829c1ce87aa6b3a7806524fac07ac9a757 Author: Amos Kong <akong@xxxxxxxxxx> Date: Tue Nov 5 19:17:18 2013 +0800 e1000/rtl8139: update HMP NIC when every bit is written We currently just update the HMP NIC info when the last bit of macaddr is written. This assumes that guest driver will write all the macaddr from bit 0 to bit 5 when it changes the macaddr, this is the current behavior of linux driver (e1000/rtl8139cp), but we can't do this assumption. The macaddr that is used for rx-filter will be updated when every bit is changed. This patch updates the e1000/rtl8139 nic to update HMP NIC info when every bit is changed. It will be same as virtio-net. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Message-id: 1383650238-16015-1-git-send-email-akong@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit fe2dafa02de4f80ab36f6e0f4ddfcd6418c03c49 Author: Jason Wang <jasowang@xxxxxxxxxx> Date: Wed Nov 6 16:58:08 2013 +0800 virtio-net: only delete bh that existed We delete without check whether it existed during exit. This will lead NULL pointer deference since it was created conditionally depends on guest driver status and features. So add a check of existence before trying to delete it. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383728288-28469-1-git-send-email-jasowang@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit c2d30667760e3d7b81290d801e567d4f758825ca Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Wed Aug 14 13:29:43 2013 +0200 rtc: remove dead SQW IRQ code This was once introduced by commit 100d9891d6 but was never used in-tree and then got broken by commit 32e0c8260d. Time to clean up. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Message-id: 520B6A27.4040207@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 2c8ebac7ccf51a8e683de593c4240d2ed7d592ec Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Tue Nov 5 16:15:54 2013 +0100 vga: fix invalid read after free After calling dpy_gfx_replace_surface(s->con, surface), the outer surface is invalid. ==5370== Invalid read of size 4 ==5370== at 0x460229: surface_bits_per_pixel (console.h:250) ==5370== by 0x466A81: get_depth_index (vga.c:1173) ==5370== by 0x467EC2: vga_draw_graphic (vga.c:1718) ==5370== by 0x4687A5: vga_update_display (vga.c:1914) ==5370== by 0x2A782E: qxl_hw_update (qxl.c:1766) ==5370== by 0x3EB83B: graphic_hw_update (console.c:254) ==5370== by 0x3FBE31: qemu_spice_display_refresh (spice-display.c:418) ==5370== by 0x2A7D01: display_refresh (qxl.c:1886) ==5370== by 0x3EEE1C: dpy_refresh (console.c:1436) ==5370== by 0x3EB543: gui_update (console.c:192) ==5370== by 0x3C43B3: timerlist_run_timers (qemu-timer.c:488) ==5370== by 0x3C4416: qemu_clock_run_timers (qemu-timer.c:499) ==5370== Address 0x22ffb1e0 is 0 bytes inside a block of size 56 free'd ==5370== at 0x4A074C4: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5370== by 0x4245FC: free_and_trace (vl.c:2771) ==5370== by 0x50899AE: g_free (gmem.c:252) ==5370== by 0x3EE8D3: qemu_free_displaysurface (console.c:1332) ==5370== by 0x3EEDB7: dpy_gfx_replace_surface (console.c:1427) ==5370== by 0x467EB6: vga_draw_graphic (vga.c:1714) ==5370== by 0x4687A5: vga_update_display (vga.c:1914) ==5370== by 0x2A782E: qxl_hw_update (qxl.c:1766) ==5370== by 0x3EB83B: graphic_hw_update (console.c:254) ==5370== by 0x3FBE31: qemu_spice_display_refresh (spice-display.c:418) ==5370== by 0x2A7D01: display_refresh (qxl.c:1886) ==5370== by 0x3EEE1C: dpy_refresh (console.c:1436) Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Message-id: 1383664554-15248-1-git-send-email-marcandre.lureau@xxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 5cb6be2ca3094f4b6b6fd4c44eabec0098acd3e3 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Nov 5 17:42:48 2013 +0100 tests: fix 64-bit int literals for 32-bit hosts On 32-bit hosts: CC tests/test-opts-visitor.o tests/test-opts-visitor.c: In function 'test_value': tests/test-opts-visitor.c:128: warning: integer constant is too large for 'long' type CC tests/test-bitops.o tests/test-bitops.c:34: warning: integer constant is too large for 'long' type tests/test-bitops.c:35: warning: integer constant is too large for 'long' type tests/test-bitops.c:35: warning: integer constant is too large for 'long' type CC tests/endianness-test.o tests/endianness-test.c:47: warning: integer constant is too large for 'long' type Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Message-id: 1383669768-23926-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 6f1ce94a2935dab5d0aa3bd13ecc33e352213dc7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Oct 15 15:42:34 2013 +0100 docs/memory.txt: Clarify and expand priority/overlap documentation The documentation of how overlapping memory regions behave and how the priority system works was rather brief, and confusion about priorities seems to be quite common for developers trying to understand how the memory region system works, so expand and clarify it. This includes a worked example with overlaps, documentation of the behaviour when an overlapped container has "holes", and mention that it's valid for a region to have both MMIO callbacks and subregions (and how this interacts with priorities when it does). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1381848154-31602-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 61cc919f73ea7ca134c0ac41b748981ad63a253b Author: Mike Frysinger <vapier@xxxxxxxxxx> Date: Sun Jun 30 23:30:18 2013 -0400 configure: detect endian via compile test This avoids needing to execute a program and keeping an (incomplete) list when cross-compiling. Signed-off-by: Mike Frysinger <vapier@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Tested-by: James Hogan <james.hogan@xxxxxxxxxx> [mips] Message-id: 1372649418-4987-1-git-send-email-vapier@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 8aa15b6e527f234e491a6d354bed4d10da3a01a7 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Nov 6 02:35:51 2013 +0800 tests: fix memleak in error path test for input visitor Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Message-id: 1383676551-18806-3-git-send-email-xiawenc@xxxxxxxxxxxxxxxxxx Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 3dce9cad5a6c0b0dbe0830973b270c9466c8ab4b Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Nov 6 02:35:50 2013 +0800 qapi: fix memleak by adding implict struct functions in dealloc visitor Otherwise member "base" is leaked in a qapi_free_STRUCTURE() call. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Message-id: 1383676551-18806-2-git-send-email-xiawenc@xxxxxxxxxxxxxxxxxx Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 7d579514a5a7b308b52d4e8567aa9bd1f7aa761b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:37 2013 +0000 bswap.h: Remove cpu_to_32wu() Replace the legacy cpu_to_32wu() with stl_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-10-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit e4ef9f465cf7cbc66b85e9df4eebe13086b46f11 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:36 2013 +0000 bswap.h: Remove cpu_to_be64wu() Replace the legacy cpu_to_be64wu() with stq_be_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-9-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 6bd194ab9957361f83fdbfb22d452d97b4af28e2 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:35 2013 +0000 bswap.h: Remove cpu_to_be32wu() Replace the legacy cpu_to_be32wu() with stl_be_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-8-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit d8ee2591e495d5feb0e0250866222dedc805c8d8 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:34 2013 +0000 bswap.h: Remove cpu_to_be16wu() Replace the legacy cpu_to_be16wu() with stw_be_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-7-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 09fa8439730c707b34af6ab055fc353f6cadc57d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:33 2013 +0000 bswap.h: Remove be32_to_cpupu() Replace the legacy be32_to_cpupu() with ldl_be_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-6-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit f567656a67e3859a8be2371c45ff66e90321a2c1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:32 2013 +0000 bswap.h: Remove le32_to_cpupu() Replace the legacy le32_to_cpupu() with ldl_le_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-5-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit c65e5de94dbe667743d1523d6b4ac301cd76b0fe Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:31 2013 +0000 bswap.h: Remove le16_to_cpupu() Replace the legacy le16_to_cpupu() with lduw_le_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-4-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 6e931878c1bde26ff594f284a6857e0d786674bc Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:30 2013 +0000 bswap.h: Remove cpu_to_le32wu() Replace the legacy cpu_to_le32wu() with stl_le_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-3-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 587ae227607d86d07b0a0fb30fff55604ff9ee80 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:29 2013 +0000 bswap.h: Remove cpu_to_le16wu() Replace the legacy cpu_to_le16wu() with stw_le_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-2-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit a30b377e0a921bf93349dc4adb94580a3bec7ea4 Merge: c905c50 80bbaee Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 5 10:33:32 2013 -0800 Merge remote-tracking branch 'afaerber/tags/qom-devices-for-anthony' into staging QOM device refactorings * QTest coverage for all machines * QOM realize for Milkymist UART * QOM realize for ARM MPCore * device_add bug fixes and cleanups * QOM for PCMCIA/MicroDrive (last legacy IDE device) # gpg: Signature made Tue 05 Nov 2013 09:07:03 AM PST using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Andreas Färber (49) and others # Via Andreas Färber * afaerber/tags/qom-devices-for-anthony: (54 commits) pcmcia/pxa2xx: QOM'ify PXA2xxPCMCIAState ide: Drop ide_init2_with_non_qdev_drives() microdrive: Coding Style cleanups pcmcia: QOM'ify PCMCIACardState and MicroDriveState pxa: Fix typo "dettach" qom: Fix pointer to int property helpers' documentation qdev-monitor: Inline qdev_init() for device_add qdev-monitor: Avoid qdev as variable name qdev: Drop misleading qdev_free() function qdev-monitor: Unref device when device_add fails qdev-monitor: Fix crash when device_add is called with abstract driver qdev-monitor: Clean up qdev_device_add() variable naming arm11mpcore: Split off RealView MPCore arm11mpcore: Prepare for QOM embedding arm11mpcore: Convert mpcore_rirq_state to QOM realize realview_gic: Prepare for QOM embedding realview_gic: Convert to QOM realize arm11mpcore: Convert ARM11MPCorePriveState to QOM realize arm11mpcore: Split off SCU device arm11mpcore: Create container MemoryRegion in instance_init ... commit 80bbaee66ac38bcb5fe5a6f285e20457afcc8bec Author: Andreas Färber <afaerber@xxxxxxx> Date: Sat Aug 3 12:23:05 2013 +0200 pcmcia/pxa2xx: QOM'ify PXA2xxPCMCIAState Turn it into a SysBusDevice and use a container MemoryRegion. Add a link<pcmcia-card> property to the PCMCIACardState. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit e3d4d36d1bff6b1a0b68b794c33bbe8666afc840 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sat Aug 3 11:30:50 2013 +0200 ide: Drop ide_init2_with_non_qdev_drives() All its users have finally been converted. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a6cb20fcba97bffd893e532f8cc70442200d3e15 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sat Aug 3 10:32:49 2013 +0200 microdrive: Coding Style cleanups Add missing braces. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d1f2c96a81a4d18b99b7f471bf58e65c9afab33f Author: Andreas Färber <afaerber@xxxxxxx> Date: Wed Jul 17 19:46:16 2013 +0200 pcmcia: QOM'ify PCMCIACardState and MicroDriveState Turn PCMCIACardState into a device. Move callbacks to new PCMCIACardClass. Derive TYPE_MICRODRIVE from TYPE_PCMCIA_CARD. Replace ide_init2_with_non_qdev_drives(). Signed-off-by: Othmar Pasteka <pasteka@xxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 853ca11dafb625e36db036b8e83d6e2168703e1f Author: Andreas Färber <afaerber@xxxxxxx> Date: Wed Jul 17 19:06:47 2013 +0200 pxa: Fix typo "dettach" Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a25ebcacdda4dd6e68ac62acb4c72f3f868b938d Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Oct 7 12:35:01 2013 +0300 qom: Fix pointer to int property helpers' documentation Relocate to alongside the other object_property_add_* helpers while at it. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 852e2c5008563692a8868260480e76b95bb9018c Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Oct 7 16:42:34 2013 +0200 qdev-monitor: Inline qdev_init() for device_add For historic reasons, qdev_init() unparents the device on failure. Inline this to make the error paths clearer and consistent. Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 2bcb0c62f620a7033e9e25c5b645d50bf9e6a8f2 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Oct 7 16:17:54 2013 +0200 qdev-monitor: Avoid qdev as variable name Prepares for bringing error cleanup code into canonical QOM form. Includes a whitespace removal after curly brace by Stefan. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 02a5c4c97422b40034f31265e0f139f7846172a8 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Sep 11 14:54:09 2013 +0200 qdev: Drop misleading qdev_free() function The qdev_free() function name is misleading since all the function does is unlink the device from its parent. The device is not necessarily freed. The device will be freed when its QObject refcount reaches zero. It is usual for the parent (bus) to hold the final reference but there are cases where something else holds a reference so "free" is a misleading name. Call object_unparent(obj) directly instead of having a qdev wrapper function. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ee6abeb6ec08473713848ce9028110f1684853b7 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Sep 10 18:21:08 2013 +0200 qdev-monitor: Unref device when device_add fails qdev_device_add() leaks the created device upon failure. I suspect this problem crept in because qdev_free() unparents the device but does not drop a reference - confusing name. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 2fa4e56d88aa0039062bbc7f9a88e9f90c77ed94 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Tue Sep 17 15:32:32 2013 +0200 qdev-monitor: Fix crash when device_add is called with abstract driver User is able to crash running QEMU when following monitor command is called: device_add intel-hda-generic Crash is caused by assertion in object_initialize_with_type() when type is abstract. Checking if type is abstract before instance is created in qdev_device_add() allows to prevent crash on incorrect user input. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f4d85795605c7dc594c013221a4b6d62967bd8ab Author: Andreas Färber <afaerber@xxxxxxx> Date: Sat Aug 24 01:21:22 2013 +0200 qdev-monitor: Clean up qdev_device_add() variable naming Avoid confusion between object (obj) and object class (oc). Tidy DeviceClass variable while at it (k -> dc). Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 9c219b7be6eeaf31dccaf9b74d738e0ce2ea813b Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 19 01:33:59 2013 +0200 arm11mpcore: Split off RealView MPCore Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 7b960dc37df088f9ca71bdc2a611864eae38c5c4 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 19 01:27:19 2013 +0200 arm11mpcore: Prepare for QOM embedding Move state struct, type constant and cast macro to a new header. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 306476eaec483afbbf7f31abeae97874e6d3d29c Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 18 23:38:15 2013 +0200 arm11mpcore: Convert mpcore_rirq_state to QOM realize Embed ARM11MPCorePriveState and RealViewGICState and replace SysBus initfn with realizefn. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ce31825de64c305cbf0def5657edac21aab7368b Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 19 00:48:55 2013 +0200 realview_gic: Prepare for QOM embedding Move state struct, type constant and cast macro to a new header. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 612daf06283e2cf6b3aa6178826516512d219de0 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 19 00:37:07 2013 +0200 realview_gic: Convert to QOM realize Embed GICState and replace SysBus initfn with realizefn. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 08602ac5bf4f024d7e979de3a4e5df87db01b0ae Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 18 22:04:31 2013 +0200 arm11mpcore: Convert ARM11MPCorePriveState to QOM realize Embed child devices and replace SysBus initfn with realizefn. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 53cb9a1c2ffa78f5b5f6e4084dc03b98558cea4f Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 18 20:07:36 2013 +0200 arm11mpcore: Split off SCU device Inspired by a9scu. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 2c42c3a063c2a8dda74b613bfab021b86ebc7ee5 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 18 20:48:33 2013 +0200 arm11mpcore: Create container MemoryRegion in instance_init This allows to map the region directly after object initialization. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 21ebaf1d812471e3379c85ffb8b0cc2311d5bff0 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 18 22:08:59 2013 +0200 arm11mpcore: Drop unused fields Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 4c14253c9e889ab1cbd6126eed883682c1cd2718 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 18 20:36:33 2013 +0200 arm11mpcore: Fix typo in MemoryRegion name "mpcode" -> "mpcore" Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit b4a37f17fef343f6400f0ccc1d1e037c6c430807 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 18 21:00:29 2013 +0200 a9scu: Build only once It does not have a target or ARMCPU dependency. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 43482f72dbe48448442c3b27f0a26b16d49e8f97 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 21:31:01 2013 +0200 a15mpcore: Prepare for QOM embedding Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 7c76a48db48accca337e1e99b9085646b696a895 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 21:22:54 2013 +0200 a15mpcore: Convert to QOM realize Turn SysBusDevice initfn into a QOM realizefn. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 524a2d8e2628b3241f0dcaa6a96d57e8120cc439 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 21:20:26 2013 +0200 a15mpcore: Embed GICState This covers both emulated and KVM GIC. Prepares for QOM realize. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit b9ed148d243839aba3864b4419114396f6fda2fc Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 21:07:31 2013 +0200 a15mpcore: Split off instance_init Prepares for QOM realize. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit de4c2dcf7fedf5fa727113e1dec0d0e5dd0462a0 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 20:44:23 2013 +0200 a9mpcore: Prepare for QOM embedding Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 837cf1013e6e1aa821ce13d7f63bb3dc0a92a1ab Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 20:36:15 2013 +0200 a9mpcore: Convert to QOM realize Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit eb110bd843d3ef70850a7cf44d05056b8a3e81aa Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 20:30:27 2013 +0200 a9mpcore: Embed ARMMPTimerState Prepares for QOM realize. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 0aadb4909c330bbde8542fcafc465817530cb835 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 19:42:55 2013 +0200 arm_mptimer: Convert to QOM realize Split the SysBusDevice initfn into instance_init and realizefn. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit fc719d77412513a07b718e1f083b64dbcac62524 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 19:29:36 2013 +0200 a9mpcore: Embed A9SCUState Prepares for QOM realize. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 9eb39db520cea30620b24098b6d731f78cc819a0 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 19:22:12 2013 +0200 a9scu: QOM cleanups Rename A9SCUState::busdev field to parent_obj and turn realizefn into an instance_init function to allow early MMIO mapping. Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 9b5f952bb8015b079783a9197f3331085075fbc4 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 19:01:18 2013 +0200 a9mpcore: Embed GICState Prepares for conversion to QOM realize. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 83728796ad3f2ce7d6162c1cb894528b12915646 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 23 03:37:49 2013 +0200 arm_gic: Extract headers hw/intc/arm_gic{,_common}.h Rename NCPU to GIC_NCPU and move GICState away from gic_internal.h. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 753bc6e981101b2a1d8bd4cb68f54dcdf82e9b63 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 19:52:31 2013 +0200 a9mpcore: Split off instance_init Prepares for QOM realize. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit c77dd5f6140acd62ba73fbb8b8144c42c003b995 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Sat Aug 31 21:22:40 2013 +0400 milkymist-uart: Use Device::realize instead of SysBusDevice::init Use of SysBusDevice::init is deprecated. Use Device::realize instead. Also introduce TypeInfo::instance_init milkymist_uart_init(). Reported-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 7c41f2177e280dec1f1d4c5cd72333c5c55943af Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 05:44:47 2013 +0200 qtest: Prepare QOM machine tests Instantiate all [*] machines per target, so that they get a bit of test coverage at all. This has proven helpful during QOM refactorings. [*] ppcemb target contains some non-working non-embedded machines, and ppc405 CPUs are not available there either. i386 and x86_64 do not cover pc*-x.y or xenfv. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 7761254120905cb2c5c435246f97e51968ddddec Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 4 17:58:58 2013 +0200 leon3: Don't enforce use of -bios with qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d32f7d2506f1dab996e977e478f19baff5d47b51 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 4 17:51:15 2013 +0200 shix: Don't require firmware presence for qtest Adopt error_report() while at it. Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit b6e770ee505771a6f3c3ffbf05719c149e069e3d Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 4 17:53:24 2013 +0200 shix: Drop debug output Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c00eb5cee145ec7ff030a6bfcb98afd7285868c2 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 4 16:49:28 2013 +0200 milkymist: Suppress -kernel/-bios/-drive error for qtest Acked-by: Michael Walle <michael@xxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 19c82aac7540acdd4645b033bb99ceff960f9570 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:48:58 2013 +0200 an5206: Don't enforce use of kernel for qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5c12762c2d9cfc7ff9744e4af14ef35190c5369b Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:47:21 2013 +0200 mcf5208: Don't enforce use of kernel for qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5efe843a9a0e049d3d2a13411b7df7d3a430540c Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:40:20 2013 +0200 axis_dev88: Don't enforce use of kernel for qtest Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5633b90ad44f08a57c44bb602cb0ae6668420ac9 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:36:59 2013 +0200 armv7m: Don't enforce use of kernel for qtest Adopt error_report(). Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 4bd2f93ff9dcf5fbbdb55affc55b7f1a568e43cf Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:29:54 2013 +0200 exynos4_boards: Silence lack of -smp 2 warning for qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit db3fd06902c96644cb4d4a76f54924c754faf13c Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:27:58 2013 +0200 omap_sx1: Don't enforce use of kernel or flash for qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 1ca8334e42d84cf246db88502cebf11042df2c51 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:24:47 2013 +0200 palm: Don't enforce loading ROM or kernel for qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit e25ac5f66275b3f9615a6c24d7ef5625f1b49ef4 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 17:15:55 2013 +0200 z2: Don't enforce use of -pflash for qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit bdf921d65f83c1958e00c347816c0f754f9bc6dc Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 17:15:01 2013 +0200 gumstix: Don't enforce use of -pflash for qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d2f7c496c32476bb5eff616f6fda293393d70740 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 17:12:41 2013 +0200 mainstone: Don't enforce use of -pflash for qtest Simply skip flash setup for now. Also drop useless debug output. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f741a26c126448adebee7b85fc87b72176c3dfa5 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:43:57 2013 +0200 puv3: Turn puv3_load_kernel() into a no-op for qtest without -kernel Replacing the assert() with more user-friendly error handling is left for a follow-up. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 22d5523d3fbb95264055e11eb47738a7442a4ecb Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 17:01:37 2013 +0200 mips_mipssim: Silence BIOS loading warning for qtest Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 6d0a37354259ec446bace1a671685ba27f1fe1d6 Merge: a126050 df39076 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Nov 5 17:46:04 2013 +0100 Merge tag 'for_anthony' of git://git.kernel.org/pub/scm/virt/kvm/mst/qemu pci, pc, pvpanic bug fixes This fixes strange pvpanic behaviour: you had to pause to let VM continue (and potentially reboot on panic if enabled). This also fixes two bugs reported by Andreas. One is a long-standing bug exposed by recent pci changes, the other affects old piix machine types and was caused by recent acpi changes. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c905c5012ac0c6fde3b8094d2206a3139deddba2 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Sun Nov 3 08:45:54 2013 -0800 ossaudio: do not enable by default Modern Linux's no longer support /dev/dsp so enabling it by default causes audio failures on newer Linux distros. Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> Tested-by: Andreas Färber <afaerber@xxxxxxx> Message-id: 1383497154-9271-1-git-send-email-aliguori@xxxxxxxxxx commit 29f8f3835f63fb7c55c7bb56d26165ade793fc49 Merge: f772a83 4a46c99 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 5 08:39:49 2013 -0800 Merge remote-tracking branch 'spice/spice.v76' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * spice/spice.v76: qxl: replace pipe signaling with bottom half Message-id: 1383656322-24150-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit f772a83113a9b692b94dc48b4f282224a2c6ccf2 Merge: 0d6e9a2 df39076 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 5 08:29:56 2013 -0800 Merge remote-tracking branch 'mst/tags/for_anthony' into staging pci, pc, pvpanic bug fixes This fixes strange pvpanic behaviour: you had to pause to let VM continue (and potentially reboot on panic if enabled). This also fixes two bugs reported by Andreas. One is a long-standing bug exposed by recent pci changes, the other affects old piix machine types and was caused by recent acpi changes. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Mon 04 Nov 2013 05:42:46 AM PST using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Michael S. Tsirkin (2) and Paolo Bonzini (1) # Via Michael S. Tsirkin * mst/tags/for_anthony: vl: allow "cont" from panicked state exec: limit system memory size pc: disable acpi info for isapc and old pc machine Message-id: 1383572851-28326-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0d6e9a23ae6a839f4fa6e3e2816367e0ffa09869 Merge: a126050 7db16f2 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 5 08:26:57 2013 -0800 Merge remote-tracking branch 'kraxel/e820.1' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * kraxel/e820.1: pc: register e820 entries for ram pc: add etc/e820 fw_cfg file Message-id: 1383567431-13540-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0fd53fec92c5b636ef4774fe130f6029fde9fc3c Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Oct 17 16:47:52 2013 +0200 KVM: x86: fix typo in KVM_GET_XCRS Only the first item of the array was ever looked at. No practical effect, but still worth fixing. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit df39076850958b842ac9e414dc3ab2895f1877bf Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Nov 4 14:30:47 2013 +0100 vl: allow "cont" from panicked state After reporting the GUEST_PANICKED monitor event, QEMU stops the VM. The reason for this is that events are edge-triggered, and can be lost if management dies at the wrong time. Stopping a panicked VM lets management know of a panic even if it has crashed; management can learn about the panic when it restarts and queries running QEMU processes. The downside is of course that the VM will be paused while management is not running, but that is acceptable if it only happens with explicit "-device pvpanic". Upon learning of a panic, management (if configured to do so) can pick a variety of behaviors: leave the VM paused, reset it, destroy it. In addition to all of these behaviors, it is possible to dump the VM core from the host. However, right now, the panicked state is irreversible, and can only be exited by resetting the machine. This means that any policy decision is entirely in the hands of the host. In particular there is no way to use the "reboot on panic" option together with pvpanic. This patch makes the panicked state reversible (and removes various workarounds that were there because of the state being irreversible). With this change, management has a wider set of possible policies: it can just log the crash and leave policy to the guest, it can leave the VM paused. In particular, the "log the crash and continue" is implemented simply by sending a "cont" as soon as management learns about the panic. Management could also implement the "irreversible paused state" itself. And again, all such actions can be coupled with dumping the VM core. Unfortunately we cannot change the behavior of 1.6.0. Thus, even if it uses "-device pvpanic", management should check for "cont" failures. If "cont" fails, management can then log that the VM remained paused and urge the administrator to update QEMU. Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 818f86b88394b7b2b59d313e51043fe15a8004db Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Nov 4 08:06:08 2013 +0200 exec: limit system memory size The page table logic in exec.c assumes that memory addresses are at most TARGET_PHYS_ADDR_SPACE_BITS. But pci addresses are full 64 bit so if we try to render them ignoring the extra bits, we get strange effects with sections overlapping each other. To fix, simply limit the system memory size to 1 << TARGET_PHYS_ADDR_SPACE_BITS, pci addresses will be rendered within that. Cc: qemu-stable@xxxxxxxxxx Reported-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 98af2ac93fa6bd83e19f7cff1cc9513fa7c4d58d Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Nov 4 12:42:46 2013 +0200 pc: disable acpi info for isapc and old pc machine Disable acpi build for isapc and no_kvmclock machine types (used by xen), since acpi build currently expects pci. Reported-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 4a46c99c8118586f19894fe66fc6e353f159d4d9 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Oct 29 13:29:43 2013 +0100 qxl: replace pipe signaling with bottom half qxl creates a pipe, then writes something to it to wake up the iothread from the spice server thread to raise an irq. These days qemu bottom halves can be scheduled from threads and signals, so there is no reason to do this any more. Time to clean it up. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 7db16f2480db5e246d34d0c453cff4f58549df0e Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Oct 10 10:30:27 2013 +0200 pc: register e820 entries for ram So RAM shows up in the new etc/e820 fw_cfg file. Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 7d67110f2d9a6a2d6b5215a948abc95d07258735 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Oct 18 11:31:54 2013 +0200 pc: add etc/e820 fw_cfg file Unlike the existing FW_CFG_E820_TABLE entry which carries reservations only the new etc/e820 file also has entries for RAM. Format is simliar to the FW_CFG_E820_TABLE, it is a simple list of e820_entry structs. Unlike FW_CFG_E820_TABLE it has no count though as the number of entries can be figured from the file size. Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit a126050a103c924b03388a9a64ce9af8c96b0969 Merge: ef5cfe5 f4c129a Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 17:02:26 2013 +0100 Merge remote-tracking branch 'kwolf/tags/for-anthony' into staging Block patches for 1.7.0-rc0 (v2) # gpg: Signature made Thu 31 Oct 2013 04:44:39 PM CET using RSA key ID C88F2FD6 # gpg: Can't check signature: public key not found * kwolf/tags/for-anthony: (30 commits) vmdk: Implment bdrv_get_specific_info qapi: Add optional field 'compressed' to ImageInfo qemu-iotests: prefill some data to test image sheepdog: check simultaneous create in resend_aioreq sheepdog: cancel aio requests if possible sheepdog: make add_aio_request and send_aioreq void functions sheepdog: try to reconnect to sheepdog after network error coroutine: add co_aio_sleep_ns() to allow sleep in block drivers sheepdog: reload inode outside of resend_aioreq sheepdog: handle vdi objects in resend_aio_req sheepdog: check return values of qemu_co_recv/send correctly qemu-iotests: Test case for backing file deletion qemu-iotests: drop duplicated "create_image" qemu-iotests: Fix 051 reference output block: Avoid unecessary drv->bdrv_getlength() calls block: Disable BDRV_O_COPY_ON_READ for the backing file ahci: fix win7 hang on boot sheepdog: pass copy_policy in the request sheepdog: explicitly set copies as type uint8_t block: Don't copy backing file name on error ... Message-id: 1383064269-27720-1-git-send-email-kwolf@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit ef5cfe5bbd8bb05a51afaf7ab313769eb9ef44b6 Merge: 1ba1905 203cea2 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 17:01:43 2013 +0100 Merge remote-tracking branch 'mjt/trivial-patches' into staging * mjt/trivial-patches: audio/mixeng_template.h: fix inline declaration misc: Spelling and grammar fixes in comments docs/ccid.txt: fix the typo qapi: fix documentation example .gitignore: ignore qmp-commands.txt misc: New spelling fixes in comments configure: create fsdev/ directory Message-id: 1382779887-15971-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 1ba1905abd72f34836b153f3348d618da6148f87 Merge: e2cb290 3bbf37f Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 17:01:12 2013 +0100 Merge remote-tracking branch 'agraf/ppc-for-upstream' into staging * agraf/ppc-for-upstream: (29 commits) spapr: Use DeviceClass::fw_name for device tree CPU node target-ppc: Fill in OpenFirmware names for some PowerPCCPU families target-ppc: dump-guest-memory support dump-guest-memory: Check for the correct return value target-ppc: Use #define for max slb entries target-ppc: Check for error on address translation in memsave command target-ppc: Update slb array with correct index values. spapr-pci: enable irqfd for INTx xics-kvm: enable irqfd for MSI xics: Implement H_XIRR_X xics: Implement H_IPOLL xics-kvm: Support for in-kernel XICS interrupt controller xics: add cpu_setup callback xics: split to xics and xics-common xics: add missing const specifiers to TypeInfo xics: convert init() to realize() xics: add pre_save/post_load dispatchers xics: replace fprintf with error_report spapr: move cpu_setup after kvmppc_set_papr xics: move reset and cpu_setup ... Message-id: 1382736474-32128-1-git-send-email-agraf@xxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit e2cb2902bacb0efaa4adf680719aa77758dd33cd Merge: cb95ec1 b4350de Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 17:00:55 2013 +0100 Merge remote-tracking branch 'kraxel/audio.2' into staging * kraxel/audio.2: audio: honor QEMU_AUDIO_TIMER_PERIOD instead of waking up every *nano* second Message-id: 1382622110-19460-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit cb95ec1b83ae3972a976e5331f9e772cde1ebd1c Merge: 3fa4270 c90daa1 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 17:00:25 2013 +0100 Merge remote-tracking branch 'kraxel/usb.91' into staging * kraxel/usb.91: usb-hcd-xhci: Update endpoint context dequeue pointer for streams too usb-hcd-xhci: Report completion of active transfer with CC_STOPPED on ep stop usb-hcd-xhci: Remove unused cancelled member from XHCITransfer usb-hcd-xhci: Remove unused sstreamsm member from XHCIStreamContext usb-host-libusb: Detach kernel drivers earlier usb-host-libusb: Configuration 0 may be a valid configuration usb-host-libusb: Fix reset handling Message-id: 1382620267-18065-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 3fa4270a651503ac1a6aec5154ef17171ddae4e9 Merge: a9c78bb c20b7fa Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 17:00:07 2013 +0100 Merge remote-tracking branch 'luiz/queue/qmp' into staging * luiz/queue/qmp: monitor: eliminate monitor_event_state_lock Message-id: 1382121003-5211-1-git-send-email-lcapitulino@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit a9c78bb82efd825256c496e69aa884b1da7edea3 Merge: b0eb759 0624c7f Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 16:58:58 2013 +0100 Merge remote-tracking branch 'kraxel/e820.1' into staging * kraxel/e820.1: e820: pass high memory too. Message-id: 1382008179-5968-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit b0eb759fb244c023bc4cee60cb4336eadda3da1a Merge: b861605 742f5d2 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 16:58:32 2013 +0100 Merge remote-tracking branch 'mst/tags/for_anthony' into staging pci, pc, acpi fixes, enhancements This includes some pretty big changes: - pci master abort support by Marcel - pci IRQ API rework by Marcel - acpi generation support by myself Everything has gone through several revisions, latest versions have been on list for a while without any more comments, tested by several people. Please pull for 1.7. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Tue 15 Oct 2013 07:33:48 AM CEST using RSA key ID D28D5469 # gpg: Can't check signature: public key not found * mst/tags/for_anthony: (39 commits) ssdt-proc: update generated file ssdt: fix PBLK length i386: ACPI table generation code from seabios pc: use new api to add builtin tables acpi: add interface to access user-installed tables hpet: add API to find it pvpanic: add API to access io port ich9: APIs for pc guest info piix: APIs for pc guest info acpi/piix: add macros for acpi property names i386: define pc guest info loader: allow adding ROMs in done callbacks i386: add bios linker/loader loader: use file path size from fw_cfg.h acpi: ssdt pcihp: updat generated file acpi: pre-compiled ASL files acpi: add rules to compile ASL source i386: add ACPI table files from seabios q35: expose mmcfg size as a property q35: use macro for MCFG property name ... Message-id: 1381818560-18367-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit f4c129a38a5430b7342a7a23f53a22831154612f Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Oct 31 10:06:23 2013 +0800 vmdk: Implment bdrv_get_specific_info Implement .bdrv_get_specific_info to return the extent information. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b86160555f8d1fe11d6bcec393e08e645d7e1e8d Author: Alex Bennée <alex@xxxxxxxxxx> Date: Tue Oct 22 15:16:06 2013 +0100 integrator: fix Linux boot failure by emulating dbg region Commit 9b8c69243 (since reverted) broke the ability to boot the kernel as the value returned by unassigned_mem_read returned non-zero and left the kernel looping forever waiting for it to change (see integrator_led_set in the kernel code). Relying on a varying implementation detail is incorrect anyway so this introduces a basic stub of a memory region for the debug/LED section on the integrator board. Signed-off-by: Alex Bennée <alex@xxxxxxxxxx> Message-id: 1382451366-9539-1-git-send-email-alex.bennee@xxxxxxxxxx [PMM: removed three unused fields from struct IntegratorDebugState] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0bc2a331e476c6c834278b8dcc17408a3f0d8f6a Author: Alvise Rigo <a.rigo@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri Oct 11 19:38:45 2013 +0200 target-arm: fix sorting issue of KVM cpreg list The compare_u64 function was not sorting the KVM cpreg_list in the right way due to the wrong returned value. Since we are comparing two 64bit values we can't simply return their difference if the returned type is int. Signed-off-by: Alvise Rigo <a.rigo@xxxxxxxxxxxxxxxxxxxxxx> Message-id: 1381513125-26802-2-git-send-email-a.rigo@xxxxxxxxxxxxxxxxxxxxxx [PMM: fixed coding style, indent and commit message formatting] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit cbf239b76934c8c2d1e147372ef9478ecc39fdfb Author: Alvise Rigo <a.rigo@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri Oct 11 19:38:44 2013 +0200 target-arm: sort TCG cpreg list by KVM-style 64 bit ID number Both KVM and TCG populate the cpreg_list with 64 bit register IDs, but in the TCG side the cpreg_list is sorted using the 32 bit ID version while in the kvm side the 64 bit ID version is used. This patch makes the sorting of the cpreg_list consistent between KVM and TCG. Signed-off-by: Alvise Rigo <a.rigo@xxxxxxxxxxxxxxxxxxxxxx> Message-id: 1381513125-26802-1-git-send-email-a.rigo@xxxxxxxxxxxxxxxxxxxxxx [PMM: fixed indent, coding style and commit message formatting] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8641136c54d216edb5bb8ef723c754039b4c5cf3 Author: Nathan Rossi <nathan.rossi@xxxxxxxxxx> Date: Fri Oct 25 15:44:38 2013 +0100 target-arm: Add CP15 VBAR support Added Vector Base Address remapping on ARM v7. Signed-off-by: Nathan Rossi <nathan.rossi@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> [PMM: removed spurious mask of value with 1<<31] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit dacecf5485bf02b2dfe49e9d9c852668884a71be Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Oct 25 15:44:38 2013 +0100 hw/arm: Tidy up conditional calls to arm_load_kernel Now that arm_load_kernel doesn't insist on a kernel filename being present, we can remove some unnecessary conditionals in board models. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1379980897-21277-3-git-send-email-peter.maydell@xxxxxxxxxx commit 9546dbabd5f6ff199ffd7741dfd57b8bff723bd1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Oct 25 15:44:38 2013 +0100 hw/arm/boot: Make user not specifying a kernel not an error Typically ARM boards will have some kind of flash which might contain a boot ROM; it's therefore a valid use case to provide only an image for the boot ROM and not require QEMU's internal boot loader at all. Remove the fatal error if -kernel isn't specified. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1379980897-21277-2-git-send-email-peter.maydell@xxxxxxxxxx commit cbe82d7fb32e5d8e76434671d50853df5f50d560 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Oct 18 11:12:44 2013 +0800 qapi: Add optional field 'compressed' to ImageInfo Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7890111b642e8e03430c3bf8bd6cedee26cec4fe Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Oct 30 17:42:28 2013 +0800 qemu-iotests: prefill some data to test image Case 030 occasionally fails because of block job compltes too fast to be captured by script, and 'unexpected qmp event' of job completion causes the test failure. Simply fill in some data to the test image to make this false alarm less likely to happen. (For other benefits to prefill data to test image, see also commit ab68cdfaa). Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 80308d33ec70834a80351a79eba106049b44a366 Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:18 2013 +0900 sheepdog: check simultaneous create in resend_aioreq After reconnection happens, all the inflight requests are moved to the failed request list. As a result, sd_co_rw_vector() can send another create request before resend_aioreq() resends a create request from the failed list. This patch adds a helper function check_simultaneous_create() and checks simultaneous create requests more strictly in resend_aioreq(). Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 35200687a1e04a79b0345be476185dc23d1604fb Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:17 2013 +0900 sheepdog: cancel aio requests if possible This patch tries to cancel aio requests in pending queue and failed queue. When the sheepdog driver cannot cancel the requests, it waits for them to be completed. Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a37dcdf9aea8e19fcec6b1c5aa2c27c325fc4644 Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:16 2013 +0900 sheepdog: make add_aio_request and send_aioreq void functions These functions no longer return errors. We can make them void functions and simplify the codes. Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 011603cacf1cae9212453efd82ec908cd42ce466 Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:15 2013 +0900 sheepdog: try to reconnect to sheepdog after network error This introduces a failed request queue and links all the inflight requests to the list after network error happens. After QEMU reconnects to the sheepdog server successfully, the sheepdog block driver will retry all the requests in the failed queue. Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3ab7bd1917d210eac5d2a80593899ec70c4e998c Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:14 2013 +0900 coroutine: add co_aio_sleep_ns() to allow sleep in block drivers This helper function behaves similarly to co_sleep_ns(), but the sleeping coroutine will be resumed when using qemu_aio_wait(). Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 72e0996c41d879473bb2aa85c8eeec129ae8ec9b Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:13 2013 +0900 sheepdog: reload inode outside of resend_aioreq This prepares for using resend_aioreq() after reconnecting to the sheepdog server. Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2412aec745066495f0c91dfcde9258382d7850e9 Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:12 2013 +0900 sheepdog: handle vdi objects in resend_aio_req The current resend_aio_req() doesn't work when the request is against vdi objects. This fixes the problem. Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 80731d9da560461bbdcda5ad4b05f4a8a846fccd Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:11 2013 +0900 sheepdog: check return values of qemu_co_recv/send correctly If qemu_co_recv/send doesn't return the specified length, it means that an error happened. Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 321fd7d2b88defe11528e4d5a9f686c89ebee1ee Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Oct 29 19:18:54 2013 +0100 qemu-iotests: Test case for backing file deletion Add a test case for trying to open an image file where it is impossible to open its backing file (in this case, because it was deleted). When doing this, qemu (or qemu-io in this case) should not crash but rather print an appropriate error message. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 915365a9c622be52c87fcc1cc9d63fbc5cd75b6d Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Oct 30 17:23:54 2013 +0800 qemu-iotests: drop duplicated "create_image" There's a same common function in iotests.py Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a7cf03d4e150abec88f5837461242dc8a0eee189 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Oct 29 17:05:35 2013 +0100 qemu-iotests: Fix 051 reference output Commit 684b254 forgot to update it. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b94a2610573cd9314f244207c8b04cb75e42d7f8 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Oct 29 12:18:58 2013 +0100 block: Avoid unecessary drv->bdrv_getlength() calls The block layer generally keeps the size of an image cached in bs->total_sectors so that it doesn't have to perform expensive operations to get the size whenever it needs it. This doesn't work however when using a backend that can change its size without qemu being aware of it, i.e. passthrough of removable media like CD-ROMs or floppy disks. For this reason, the caching is disabled when a removable device is used. It is obvious that checking whether the _guest_ device has removable media isn't the right thing to do when we want to know whether the size of the host backend can change. To make things worse, non-top-level BlockDriverStates never have any device attached, which makes qemu assume they are removable, so drv->bdrv_getlength() is always called on the protocol layer. In the case of raw-posix, this causes unnecessary lseek() system calls, which turned out to be rather expensive. This patch completely changes the logic and disables bs->total_sectors caching only for certain block driver types, for which a size change is expected: host_cdrom and host_floppy on POSIX, host_device on win32; also the raw format in case it sits on top of one of these protocols, but in the common case the nested bdrv_getlength() call on the protocol driver will use the cache again and avoid an expensive drv->bdrv_getlength() call. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 87a5debd3161d24a7d4c685e3c0d8765b5d92a74 Author: Thibaut LAURENT <thibaut.laurent@xxxxxxxxx> Date: Fri Oct 25 02:15:07 2013 +0200 block: Disable BDRV_O_COPY_ON_READ for the backing file Since commit 0ebd24e0a203cf2852c310b59fbe050190dc6c8c, bdrv_open_common will throw an error when trying to open a file read-only with the BDRV_O_COPY_ON_READ flag set. Although BDRV_O_RDWR is unset for the backing files, BDRV_O_COPY_ON_READ is still passed on if copy-on-read was requested for the drive. Let's unset this flag too before opening the backing file, or bdrv_open_common will fail. Signed-off-by: Thibaut LAURENT <thibaut.laurent@xxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8464b273d69c61e33c55347e5b6bc0659687bae2 Author: Alexander Graf <agraf@xxxxxxx> Date: Mon Oct 28 21:01:51 2013 +0200 ahci: fix win7 hang on boot When AHCI executes an asynchronous IDE command, it checked DRDY without checking either DRQ or BSY. This sometimes caused interrupt to be sent before command is actually completed. This resulted in a race condition: if guest then managed to access the device before command has completed, it would hang waiting for an interrupt. This was observed with windows 7 guests. To fix, check for DRQ or BSY in additiona to DRDY, if set, the command is asynchronous so delay the interrupt until asynchronous done callback is invoked. Reported-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Tested-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1841f8801c8898fa57c66e27a08541ffcc6f3948 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Wed Oct 23 16:51:52 2013 +0800 sheepdog: pass copy_policy in the request Currently copy_policy isn't used. Recent sheepdog supports erasure coding, which make use of copy_policy internally, but require client explicitly passing copy_policy from base inode to newly creately inode for snapshot related operations. If connected sheep daemon doesn't utilize copy_policy, passing it to sheep daemon is just one extra null effect operation. So no compatibility problem. With this patch, sheepdog can provide erasure coded volume for QEMU VM. Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Acked-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 29a67f7e9204a25bc4b6221f287ad0ae38d8cbdc Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Wed Oct 23 16:51:51 2013 +0800 sheepdog: explicitly set copies as type uint8_t 'copies' is actually uint8_t since day one, but request headers and some helper functions parameterize it as uint32_t for unknown reasons and effectively reserve 24 bytes for possible future use. This patch explicitly set the correct for copies and reserve the left bytes. This is a preparation patch that allow passing copy_policy in request header. Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Acked-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 61ed2684539f7f31304e193d7c0e68d57ce6be88 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Sat Oct 26 15:44:43 2013 +0200 block: Don't copy backing file name on error bdrv_open_backing_file() tries to copy the backing file name using pstrcpy directly after calling bdrv_open() to open the backing file without checking whether that was actually successful. If it was not, ps->backing_hd->file will probably be NULL and qemu will crash. Fix this by moving pstrcpy after checking whether bdrv_open() succeeded. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Amos Kong <kongjianjun@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d1f3a23bfac4fe38056ab5e07186939b7be8852b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Jun 27 13:50:05 2013 +0200 tests: Multiboot mmap test case This adds a test case for Multiboot memory map in the tests/multiboot directory, where future i386 test kernels can be dropped. Because this requires an x86 build host and an installed 32 bit libgcc, the test is not part of a regular 'make check'. The reference output for the test is verified against test runs of the same multiboot kernel booted by some GRUB 0.97. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d7b7e580096255c766f7b1e7502a9151b95091e8 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Jul 22 14:26:25 2013 +0200 ide-test: Check what happens with bus mastering disabled The main goal is that qemu doesn't crash. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e85d9db5f6f86299688a0acd2796ac1ccc96610c Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Jul 22 14:30:23 2013 +0200 exec: Fix bounce buffer allocation in address_space_map() This fixes a regression introduced by commit e3127ae0c, which kept the allocation size of the bounce buffer limited to one page in order to avoid unbounded allocations (as explained in the commit message of 6d16c2f88), but broke the reporting of the shortened bounce buffer to the caller. The caller therefore assumes that the full requested size was provided and causes memory corruption when writing beyond the end of the actually allocated buffer. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit ba2ab2f2ca4150a7e314fbb19fa158bd8ddc36eb Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 24 20:35:06 2013 +0200 qcow2: Flush image after creation Opening the qcow2 image with BDRV_O_NO_FLUSH prevents any flushes during the image creation. This means that the image has not yet been flushed to disk when qemu-img create exits. This flush is delayed until the next operation on the image involving opening it without BDRV_O_NO_FLUSH and closing (or directly flushing) it. For large images and/or images with a small cluster size and preallocated metadata, this flush may take a significant amount of time and may occur unexpectedly. Reopening the image without BDRV_O_NO_FLUSH right before the end of qcow2_create2() results in hoisting the potentially costly flush into the image creation, which is expected to take some time (whereas successive image operations may be not). 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 203cea22a3d33ac86d170af74f8c655f119c8c62 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Tue Oct 22 10:26:28 2013 +0100 audio/mixeng_template.h: fix inline declaration Fix error: â??inlineâ?? is not at beginning of declaration [-Werror=old-style-declaration] Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 59b00962136f5621895bee7c96b2a1d9271b9dc5 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Fri Oct 11 21:34:33 2013 +0200 misc: Spelling and grammar fixes in comments * it's -> its * grammar fix in ui/vnc-enc-zywrle.h Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Don Koch <dkoch@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 5f32804c79ba9554e62c9699db83ee34df8a46c1 Author: WengFan <wengfan-fnst@xxxxxxxxxxxxxx> Date: Fri Oct 25 11:18:22 2013 -0400 docs/ccid.txt: fix the typo Signed-off-by: WengFan <wengfan-fnst@xxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 63922c647730eba01865e05bf1e80dd7d682e287 Author: Eric Blake <eblake@xxxxxxxxxx> Date: Sat Oct 19 17:52:33 2013 +0100 qapi: fix documentation example The QMP wire format uses "", not '', around strings. * docs/qapi-code-gen.txt: Fix typo. Signed-off-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit eb02dc0b118c87a366002e3a725ab3373e1738db Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Oct 15 10:58:39 2013 +0800 .gitignore: ignore qmp-commands.txt This file is moved out from QMP/ to BUILD dir, change the ignore file too. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 73f395fa88d87ae14f38ad0aa7f863148d98eef2 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Oct 10 20:53:40 2013 +0200 misc: New spelling fixes in comments compatiblity -> compatibility continously -> continuously existance -> existence usefull -> useful shoudl -> should Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2b170effc7a0bb27f019727e5be02cd989e54e7d Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Mon Oct 21 12:33:58 2013 +0400 configure: create fsdev/ directory In some cases when building with parallelism (make -jN), build fails because the directory where output files are supposed to be does not exist. In particular, when make decides to build virtfs-proxy-helper.1 before other files in fsdev/, build will fail with the following error: perl -Ww -- BUILDDIR/scripts/texi2pod.pl BUILDDIR/fsdev/virtfs-proxy-helper.texi fsdev/virtfs-proxy-helper.pod && pod2man --utf8 --section=1 --center=" " --release=" " fsdev/virtfs-proxy-helper.pod > fsdev/virtfs-proxy-helper.1 opening "fsdev/virtfs-proxy-helper.pod": No such file or directory Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 3bbf37f2692652cc9d48030a9e7f34e2207429f6 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Oct 15 18:33:37 2013 +0200 spapr: Use DeviceClass::fw_name for device tree CPU node Instead of relying on cpu_model, obtain the device tree node label per CPU. Use DeviceClass::fw_name as source. Whenever DeviceClass::fw_name is unknown, default to "PowerPC,UNKNOWN". As a consequence, spapr_fixup_cpu_dt() can operate on each CPU's fw_name, obsoleting sPAPREnvironment::cpu_model, and spapr_create_fdt_skel() can drop its cpu_model argument. Signed-off-by: Prerna Saxena <prerna@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 793826cd460828975591f289de78672af4a47ef9 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Oct 15 18:33:36 2013 +0200 target-ppc: Fill in OpenFirmware names for some PowerPCCPU families Set the expected values for POWER7, POWER7+, POWER8 and POWER5+. Note that POWER5+ and POWER7+ are intentionally lacking the '+', so the lack of a POWER7P family constitutes no problem. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit e62fbc54d459d4cc8e91dc0938383a7f4c13768c Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue Oct 1 21:49:33 2013 +0530 target-ppc: dump-guest-memory support This patch add support for dumping guest memory using dump-guest-memory monitor command. Before patch: (qemu) dump-guest-memory testcrash this feature or command is not currently supported (qemu) After patch: (qemu) dump-guest-memory testcrash (qemu) crash was able to read the file crash> bt PID: 0 TASK: c000000000c0d0d0 CPU: 0 COMMAND: "swapper/0" R0: 0000000028000084 R1: c000000000cafa50 R2: c000000000cb05b0 R3: 0000000000000000 R4: c000000000bc4cb0 R5: 0000000000000000 R6: 001efe93b8000000 R7: 0000000000000000 R8: 0000000000000000 R9: b000000000001032 R10: 0000000000000001 R11: 0001eb2117e00d55 .... ... NOTE: Currently crash tools doesn't look at ELF notes in the dump on ppc64. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit bb6b684363e83586c90d20127b0d0a79793ab1e2 Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue Oct 1 21:49:32 2013 +0530 dump-guest-memory: Check for the correct return value We should check for error with s->note_size Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit d83af16786ca672bea9a206490f801bec7a057eb Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue Oct 1 21:49:31 2013 +0530 target-ppc: Use #define for max slb entries Instead of opencoding 64 use MAX_SLB_ENTRIES. We don't update the kernel header here. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 2f4d0f5990ede025720e41fa473029e9ca85e8b8 Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue Oct 1 21:49:30 2013 +0530 target-ppc: Check for error on address translation in memsave command When we translate the virtual address to physical check for error. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 4b4d4a21b988f6d56e0792058aa0b968e19fda6b Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue Oct 1 21:49:28 2013 +0530 target-ppc: Update slb array with correct index values. Without this, a value of rb=0 and rs=0 results in replacing the 0th index. This can be observed when using gdb remote debugging support. (gdb) x/10i do_fork 0xc000000000085330 <do_fork>: Cannot access memory at address 0xc000000000085330 (gdb) This is because when we do the slb sync via kvm_cpu_synchronize_state, we overwrite the slb entry (0th entry) for 0xc000000000085330 Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5cc7a967e9de8c7b16c15aee4cb9f5bfcf0c5989 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:48 2013 +1000 spapr-pci: enable irqfd for INTx This enables IRQFD for LSI (level triggered INTx interrupts) by adding a spapr_route_intx_pin_to_irq() callback to the sPAPR PCI host bus. This callback is called to know the global interrupt number to link resampling fd with IRQFD's fd in KVM. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 9554233c9b8fe7d94dfa53db09ce3d186f2e8b9e Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:47 2013 +1000 xics-kvm: enable irqfd for MSI This enables IRQFD support for sPAPR. The feature decreases the latency of interrupt handling. To enable IRQFD for MSI, this sets kvm_gsi_direct_mapping to true which enables direct MSI mapping. To enable IRQFD for LSI (level triggered INTx interrupts), a PCI host bus callback is required. The patch for that is coming next. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5d87e4b74a0100fbb7970edaa3449eb04b06f782 Author: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Date: Thu Sep 26 16:18:46 2013 +1000 xics: Implement H_XIRR_X This implements H_XIRR_X hypercall in addition to H_XIRR as it is mandatory for PAPR+ and there is no way for the guest to detect whether it is supported or not so just add it. As the Partition Adjunct Option is not supported at the moment, the CPPR parameter of the hypercall is ignored. Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 075edbe3bad4c22995ab472c507565b48c4e0985 Author: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Date: Thu Sep 26 16:18:45 2013 +1000 xics: Implement H_IPOLL This adds support for the H_IPOLL hypercall which the guest uses to poll for a pending interrupt. This hypercall is mandatory for PAPR+ and there is no way for the guest to detect whether it is supported or not so just add it. Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 11ad93f68195f68cc94d988f2aa50b4d190ee52a Author: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Date: Thu Sep 26 16:18:44 2013 +1000 xics-kvm: Support for in-kernel XICS interrupt controller Recent (host) kernels support emulating the PAPR defined "XICS" interrupt controller system within KVM. This patch allows qemu to initialize and configure the in-kernel XICS, and keep its state in sync with qemu's XICS state as necessary. This should give considerable performance improvements. e.g. on a simple IPI ping-pong test between hardware threads, using qemu XICS gives us around 5,000 irqs/second, whereas the in-kernel XICS gives us around 70,000 irqs/s on the same hardware configuration. Signed-off-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> [Mike Qiu <qiudayu@xxxxxxxxxxxxxxxxxx>: fixed mistype which caused ics_set_kvm_state() to fail] Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5eb92ccc3f23f958c0d21bed7c22abe6c1f1adda Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:43 2013 +1000 xics: add cpu_setup callback This adds a cpu_setup callback to the XICS device class (as XICS-KVM will do it different), xics_cpu_setup() will call it if it is set. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5a3d7b23ba41b4884b43b6bc936ea18f999d5c6b Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:42 2013 +1000 xics: split to xics and xics-common The upcoming XICS-KVM support will use bits of emulated XICS code. So this introduces new level of hierarchy - "xics-common" class. Both emulated XICS and XICS-KVM will inherit from it and override class callbacks when required. The new "xics-common" class implements: 1. replaces static "nr_irqs" and "nr_servers" properties with the dynamic ones and adds callbacks to be executed when properties are set. 2. xics_cpu_setup() callback renamed to xics_common_cpu_setup() as it is a common part for both XICS'es 3. xics_reset() renamed to xics_common_reset() for the same reason. The emulated XICS changes: 1. the part of xics_realize() which creates ICPs is moved to the "nr_servers" property callback as realize() is too late to create/initialize devices and instance_init() is too early to create devices as the number of child devices comes via the "nr_servers" property. 2. added ics_initfn() which does a little part of what xics_realize() did. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 456df19cf7fd7f6d9ce986a3fb8f7603df5c3b22 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:41 2013 +1000 xics: add missing const specifiers to TypeInfo This adds missing const specifiers to ICS and ICP TypeInfo's. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit b45ff2d942022d7ee139a153f17f638d87935e03 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:40 2013 +1000 xics: convert init() to realize() This fixes XICS according new QOM rules. This converts ICS's init() callbacks to realize(). This converts legacy qdev_init_nofail() to property_set(realized). Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit d1b5682d88f72f8662ce6d20e07af3adfbf39ed0 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:39 2013 +1000 xics: add pre_save/post_load dispatchers The upcoming support of in-kernel XICS will redefine migration callbacks for both ICS and ICP so classes and callback pointers are added. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 9ccff2a4d604d31f01398190758072253dc3c188 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:38 2013 +1000 xics: replace fprintf with error_report This replaces old-style fprintf with new style error_report. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Acked-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 24408a7d2b459bed3697367b81ada76518ca96ef Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:37 2013 +1000 spapr: move cpu_setup after kvmppc_set_papr This moves the xics_cpu_setup() call after kvmppc_set_papr() in order to get VCPUs initialized as this is required by upcoming XICS-KVM. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 8ffe04ed2ed44b32f97575bc3cb7c29eefdd70da Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:36 2013 +1000 xics: move reset and cpu_setup This simple change makes following patches nicer. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit feaa64c41f56b1b3111c31f652999799b28b9e12 Author: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Date: Thu Sep 26 16:18:35 2013 +1000 target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN Recent PowerKVM allows the kernel to intercept some RTAS calls from the guest directly. This is used to implement the more efficient in-kernel XICS for example. qemu is still responsible for assigning the RTAS token numbers however, and needs to tell the kernel which RTAS function name is assigned to a given token value. This patch adds a convenience wrapper for the KVM_PPC_RTAS_DEFINE_TOKEN ioctl() which is used for this purpose. Signed-off-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 4fe822e075d6befa3714f7066158678e92cedb8b Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Sep 27 18:10:18 2013 +1000 spapr-rtas: fix h_rtas parameters reading On the real hardware, RTAS is called in real mode and therefore top 4 bits of the address passed in the call are ignored. So does the patch. This converts h_rtas() to use existing rtas_ld() handlers. This fixed rtas_ld()/rtas_st() to ignore top 4 bits. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit dcb861cb883e9e6d236514a4d0b4def4db736d13 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Sep 27 18:11:51 2013 +1000 spapr: Add ibm, purr property on power7 and newer PAPR+ says that no "ibm,purr" tells the guest that H_PURR is not supported. However some guests still try calling H_PURR on POWER7 unless the property is present and equal to 0. This adds the property for CPUs supporting the PURR special register. Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3bf6eedd4b6ee5cb7be53aa962583a24293d3441 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Sep 24 15:59:55 2013 +1000 spapr: increase temporary fdt buffer size At the moment the size of the buffer is set to 64K which is enough for approximately 150 VCPUs which is not the limit. This increases the buffer up to 256K which allows having a tree for approximately 600 VCPUs which is way beyond the real number we need. As only the real size of the tree is copied to the guest, there will be no impact on existing configurations. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 9633fcc6a02f23e3ef00aa5fe3fe9c41f57c3456 Author: Alexander Graf <agraf@xxxxxxx> Date: Wed Sep 25 15:41:12 2013 +0200 PPC: Fix L2CR write accesses Commit 2345f1c01 was supposed to render L2CR writes into noops. Instead, it made them illegal instruction traps which apparently didn't confuse XNU, but can easily confuse other OSs. Fix it up by actually doing nothing when we write to L2CR. Reported-by: Julio Guerra <guerr@xxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> Tested-by: Julio Guerra <guerr@xxxxxxxx> commit bbfb6f132abc032229f5c1f25e6e959861c6f759 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Sep 25 17:42:46 2013 +1000 target-ppc: Little Endian Correction to Load/Store Vector Element The Load Vector Element (lve*x) and Store Vector Element (stve*x) instructions not only byte-swap in Little Endian mode, they also invert the element that is accessed. For example, the RTL for lvehx contains this: eb <-- EA[60:63] if Big-Endian byte ordering then VRT[8*eb:8*eb+15] <-- MEM(EA,2) else VRT[112-(8*eb):127-(8*eb)] <-- MEM(EA,2) This patch adds the element inversion, as described in the last line of the RTL. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 04f1f7842e18c4b5e50203cc5b207cafb7c62974 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Sep 25 17:41:13 2013 +1000 ppc: Add CFAR, DAR and DSISR to the dictionary of printable registers The CFAR, DAR and DSISR registers are currently missing from the dictionary of registers that may be printed in the QEMU console. These are interesting registers when debugging. With this patch, the following commands work properly: (qemu) print $cfar (qemu) print $dar (qemu) print $dsisr Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 16457e7f4a10125db06b84e5e843d9544552436e Author: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Date: Wed Sep 25 17:40:15 2013 +1000 pseries: Fix loading of little endian kernels Try loading the kernel as little endian if it fails big endian. Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Reviewed-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 09b04845a7b7ffba2fa0cd99a2329f6e8ffa9027 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Aug 27 13:42:47 2013 +1000 pseries: Update SLOF firmware image This has reworked USB OHCI and adds support of USB EHCI, VIRTIO-SCSI and various fixes (IBM VSCSI, VGA and more). The full list of fixes is: * usb-ohci: Convert td-phys every time to td-virt * usb-storage: Fix cbwflags field * Add -fno-strict-aliasing in global CFLAGS * usb: fix various issues found with js2x * Move hex64-{decode,encode}-unit to node.fs * usb: Use separate in-memory endian swap * usb-ohci: collect TDs from done list * js2x: more fixes * js2x: Fix build of takeover image * js2x: use new usb stack * usb-ohci: Use proper memory barriers always * usb: Fix a couple of warnings * Fix $cat-instance-unit * Cache phandle of /chosen * Use root.fs on qemu as well * usb-ehci: Add ehci handshake * usb: add mb for write accessors * usb-ohci: add missing memory barriers * usb-ohci: suspend the controller in exit code path * usb-ohci: Add a reset when closing the OHCI * usb: Use proper accessors for MMIO and separate in-memory endian swap * Use a global definition of sync() and mb() * net-snk: Remove exception handling * usb: unmap buffers * slof: call quiesce on closing of stdin * usb-kbd: accept "s" to drop to OF prompt * USB storage driver * usb-ohci: add Bulk transfer support * usb-ehci: Add bulk support * usb-core: add usb bulk support * USB generic hub device driver * usb-ehci: setup new device * usb-ehci: Check ehci ports * usb-ehci: initialize controller * USB keyboard driver * usb-core: setup new device * usb-core: create dev pool allocation * usb-ohci: implement ohci send control * usb-core: usb send control * usb-core: implement usb_{get,put}_pipe routines * usb-ohci: allocate pipe pool * usb-ohci: reset, init and check-ports * Add standard header stdbool.h * usb-slof: forth support routines for C * usb-ehci: Add USB EHCI skeleton * usb-core: Add register accessor functions * Use __builtin_bswap routines for endianness swapping * usb-core: hcd registration and query routines * usb-core: adding generic dev-hci.fs * usb-core: registration and makefiles * Add new USB code * Remove old usb code * vga: fix hcall-invert-screen and hcall-blink-screen * Enumerate disk/cdrom aliases for multiple disks or cdroms * scsi: unify scsi probing code * vscsi: generalizing probe code * virtio-scsi: iterate through targets * scsi: unify and use make-disk-alias * nvram: remove unnecessary prints * Add hack to client interface finddevice of "/memory" * scsi: Fix cdrom boot crash when no medium present * Look for /memory@0, not just /memory * Fix instance>qname crashing when displaying instance arguments * Fix js2x build * scsi-disk: Bound check read-blocks * Fix off by one error in scsi-disk get-capacity * scsi: fix report-luns handling * SLOF: virtio-scsi block driver code * scsi: Move bits of vio-vscsi.fs to a common helpers file * scsi: Move scsi-disk.fs to a generic place * SLOF: virtio-scsi helper routines * SLOF: virtio-scsi - add pci device file * iso9660: Don't constantly reallocate the read buffer * vscsi: Sanitize interface between scsi-disk.fs and vio-vscsi.fs * vio-vscsi: Rework vio-vscsi support * virtio: Add a virtio-set-qaddr helper * disk-label: Allocate 4096 bytes for 4k block devices * disk-label: Increase the max size of the PReP boot partition * Make load-base a real environment variable * vio-vscsi: Switch to using a wildcard "disk" node and make scsi-disk generic * Fix disk-label package to use proper instance path * Increase size of catpad * Fix instance>path to contain unit address for wildcard nodes * Fix handling of wildcard nodes in open-dev * vio-vscsi: Get CRQ on open and release on close Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit ab6f2bbb2871db8a7ed2457328e864cdf2e2fc82 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 24 20:24:43 2013 +0200 qemu-iotests: Test for loading VM state from qcow2 Add a test for saving a VM state from a qcow2 image and loading it back (with having restarted qemu in between); this should work without any problems. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit ec426ff808cd421036f81ab34c0d5884743982aa Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Sun May 5 11:06:37 2013 +0200 hw/microblaze: Add support for loading initrd images Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit d0b022a0e9dcf574d56243f6039d675ba80dba16 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Sun May 5 10:52:41 2013 +0200 hw/microblaze: Indentation cleanups Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 11a7621763e7c91fef5169942a90e30bfd66a837 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Wed Oct 23 16:54:31 2013 +0200 microblaze: At swx, check that the reserved word is unmodified This improves the reservation check for system emulation, making it possible to catch stores that modify reserved word. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 4a536270454cc6e59960857a4e4a7c1ebb7fdd4b Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Wed Oct 23 16:44:08 2013 +0200 microblaze: Turn res_addr into a tcg global Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 536446e914caa8702053efb506b4f4d92128d7e6 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Wed Oct 23 13:58:08 2013 +0200 microblaze: Move the saving of the reservation addr into gen_load No functional change. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 09b9f113ad9e2bad57b41f6c67228353972ad1af Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Thu Oct 24 19:18:28 2013 +0200 microblaze: Improve src Microblaze carry is mirrored in MSR[31], pick it directly from there. Also, no need to mask cpu_R[dc->ra] when calling write_carry. 15% improvement in linux-user src loops. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit bb3cb951ef530da7d248051347c974e4d20e6ea0 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Thu Oct 24 19:03:44 2013 +0200 microblaze: Improve srl write_carry only looks at bit zero, no need to mask out the others. Meassured a 12% speed improvement in linux-user srl loops. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit a235900e225d21237a13333eaff40198974bc861 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Thu Oct 24 18:49:46 2013 +0200 microblaze: Simplify andn by using tcg_gen_andc Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 65ab5eb4ede9859b83a35c24c0d36936e62e76a2 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Thu Oct 24 12:49:05 2013 +0200 microblaze: Make write_carryi input a boolean Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 04ec7df7085b71894f18668c5164370547eb2e76 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Thu Oct 24 22:31:22 2013 +0200 microblaze: Clarify expected input of write_carry Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit fb8fe35f63a56170cf1bf92b1991d0056385b901 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 09:16:03 2013 +0200 block/vpc: check that the image has not been truncated this adds a check that a dynamic VHD file has not been accidently truncated (e.g. during transfer or upload). Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit fefddf951b6dfe51c28d41f86669bfffb68c7a15 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 08:53:34 2013 +0200 qemu-img: add special exit code if bdrv_check is not supported currently it is not possible to distinguish by exitcode if there has been an error or if bdrv_check is not supported by the image format. Change the exitcode from 1 to 63 for the latter case. Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 6e13610aa454beba52944e8df6d93158d68ab911 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Sun Oct 20 21:52:35 2013 +0200 qcow2: Unset zero_beyond_eof in save_vmstate Saving the VM state is done using bdrv_pwrite. This function may perform a read-modify-write, which in this case results in data being read from beyond the end of the virtual disk. Since we are actually trying to access an area which is not a part of the virtual disk, zero_beyond_eof has to be set to false before performing the partial write, otherwise the VM state may become corrupted. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit eedff66f21e542650d895801549ce05ac108278b Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Sun Oct 20 20:28:20 2013 +0200 qcow2: Restore total_sectors value in save_vmstate Since df2a6f29a5, bdrv_co_do_writev increases the total_sectors value of a growable block devices on writes after the current end. This leads to the virtual disk apparently growing in qcow2_save_vmstate, which in turn affects the disk size captured by the internal snapshot taken directly afterwards through e.g. the HMP savevm command. Such a "grown" snapshot cannot be loaded after reopening the qcow2 image, since its disk size differs from the actual virtual disk size (writing a VM state does not actually increase the virtual disk size). Fix this by restoring total_sectors at the end of qcow2_save_vmstate. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b4350deed67b95651896ddb60cf9f765093a4848 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Wed Oct 9 21:33:44 2013 +0200 audio: honor QEMU_AUDIO_TIMER_PERIOD instead of waking up every *nano* second Now that we no longer have MIN_REARM_TIMER_NS a bug in the audio subsys has clearly shown it self by trying to make a timer fire every nano second. Note we have a similar problem in 1.6, 1.5 and older but there MIN_REARM_TIMER_NS limits the wakeups caused by audio being active to 4000 times / second. This still causes a host cpu load of 50 % for simply playing audio, where as with this patch git master is at 13%, so we should backport this to 1.5 and 1.6 too. Note this will not apply to 1.5 and 1.6 as is. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit c90daa1c109348099088c1cc954c1e9f3392ae03 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Oct 8 21:58:12 2013 +0200 usb-hcd-xhci: Update endpoint context dequeue pointer for streams too With streams the endpoint context dequeue pointer should point to the dequeue value for the currently active stream. At least Linux guests expect it to point to value set by an set_ep_dequeue upon completion of the set_ep_dequeue (before kicking the ep). Otherwise the Linux kernel will complain (and things won't work): xhci_hcd 0000:00:05.0: Mismatch between completed Set TR Deq Ptr command & xHCI internal state. xhci_hcd 0000:00:05.0: ep deq seg = ffff8800366f0880, deq ptr = ffff8800366ec010 Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 582d6f4aba0ff24604a82b48aee2db17b100d4b4 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Oct 8 21:58:11 2013 +0200 usb-hcd-xhci: Report completion of active transfer with CC_STOPPED on ep stop As we should per the XHCI spec "4.6.9 Stop Endpoint". Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 8de1838afed4b5b05d18cc42a3e5a6fe9b19f29b Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Oct 8 21:58:10 2013 +0200 usb-hcd-xhci: Remove unused cancelled member from XHCITransfer Since qemu's USB model is geared towards emulated devices cancellation is instanteneous, so no need to wait for cancellation to complete, as such there is no wait for cancellation code, and the cancelled bool as well as the bogus comment about it can be removed. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 946ff2c0c353e4bf493f6ff2bcc308adddee4a4c Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Oct 8 21:58:09 2013 +0200 usb-hcd-xhci: Remove unused sstreamsm member from XHCIStreamContext Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f34d5c750897abb3853910ce73f63d88d74dc827 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Oct 8 21:58:08 2013 +0200 usb-host-libusb: Detach kernel drivers earlier If we detach the kernel drivers on the first set_config, then they will be still attached when the device gets its initial reset. Causing the drivers to re-initialize the device after the reset, dirtying the device state. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 1294ca797c6bee39d4dbc3e92010873ce4047e0e Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Oct 8 21:58:07 2013 +0200 usb-host-libusb: Configuration 0 may be a valid configuration Quoting from: linux/Documentation/ABI/stable/sysfs-bus-usb: Note that some devices, in violation of the USB spec, have a configuration with a value equal to 0. Writing 0 to bConfigurationValue for these devices will install that configuration, rather then unconfigure the device. So don't compare the configuration value against 0 to check for unconfigured devices, instead check for a LIBUSB_ERROR_NOT_FOUND return from libusb_get_active_config_descriptor(). Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5af35d7feccaa7d26b72c6c3d14116421d736b36 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Oct 8 21:58:06 2013 +0200 usb-host-libusb: Fix reset handling The guest will issue an initial device reset when the device is attached, but since the current usb-host-libusb code only actually does the reset when udev->configuration != 0, and on attach the device is not yet configured, the reset gets ignored. This means that the device gets passed to the guest in an unknown state, which is not good. The udev->configuration check is there because of the release / claim interfaces done around the libusb_device_reset call, but these are not necessary. If interfaces are claimed when libusb_device_reset gets called libusb will release + reclaim them itself. The usb_host_ep_update call also is not necessary. If the reset succeeds the original config and interface alt settings will be restored. Last if the reset fails, that means the device has either disconnected or morphed into an another device and has been completely re-enumerated, so it is treated by the host as a new device and our handle is invalid, so on reset failure we need to call usb_host_nodev(). Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit cc94712b9ec93d1301eea1fb8f1b08589c7e242e Author: Eric Blake <eblake@xxxxxxxxxx> Date: Sat Oct 19 17:52:33 2013 +0100 qapi: fix documentation example The QMP wire format uses "", not '', around strings. * docs/qapi-code-gen.txt: Fix typo. Signed-off-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c20b7fa4b2fedd979bcb0cc974bb5d08a10e3448 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Oct 16 19:17:08 2013 +0200 monitor: eliminate monitor_event_state_lock This lock does not protect anything that the BQL does not already protect. Furthermore, with -nodefaults and no monitor, the mutex is not initialized but monitor_protocol_event_queue is called anyway, which causes a crash under mingw (and only works by luck. under Linux or other POSIX OSes). Reported-by: Orx Goshen <orx.goshen@xxxxxxxxx> Cc: Daniel Berrange <berrange@xxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit fc8ead74674b7129e8f31c2595c76658e5622197 Merge: 3551643 7174e54 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 18 10:03:24 2013 -0700 Merge remote-tracking branch 'qemu-kvm/uq/master' into staging # By Paolo Bonzini (2) and Jan Kiszka (1) # Via Gleb Natapov * qemu-kvm/uq/master: kvmvapic: Prevent reading beyond the end of guest RAM x86: cpuid: reconstruct leaf 0Dh data x86: fix migration from pre-version 12 Message-id: 1382108641-4862-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 3551643eb7198398017829a7d26646de1710b0b6 Merge: 1da9772 23c37c3 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 18 10:02:48 2013 -0700 Merge remote-tracking branch 'stefanha/net' into staging # By Amos Kong # Via Stefan Hajnoczi * stefanha/net: net/rtl8139: update network information when macaddr is changed in guest net/e1000: update network information when macaddr is changed in guest net: update nic info during device reset Message-id: 1382103314-21608-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 1da9772d83576cef463b88adb7c390f978ef4ea3 Merge: 9896449 dbbcaa8 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 18 10:02:14 2013 -0700 Merge remote-tracking branch 'stefanha/block' into staging # By Fam Zheng (3) and others # Via Stefan Hajnoczi * stefanha/block: vmdk: fix VMFS extent parsing vmdk: Only read cid from image file when opening virtio: Remove unneeded memcpy block/raw-win32: Always use -errno in hdev_open blockdev: fix cdrom read_only flag sd: Avoid access to NULL BlockDriverState hmp: drop bogus "[not inserted]" Message-id: 1382105915-27735-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 989644915c281ac83f06f65923d716272ede1ed8 Merge: 1cb9b64 041603f Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 18 10:01:49 2013 -0700 Merge remote-tracking branch 'bonzini/iommu-for-anthony' into staging # By Paolo Bonzini (10) and others # Via Paolo Bonzini * bonzini/iommu-for-anthony: exec: remove qemu_safe_ram_ptr icount: make it thread-safe icount: document (future) locking rules for icount icount: prepare the code for future races in calling qemu_clock_warp icount: reorganize icount_warp_rt icount: use cpu_get_icount() directly timer: add timer_mod_anticipate and timer_mod_anticipate_ns timer: extract timer_mod_ns_locked and timerlist_rearm timer: make qemu_clock_enable sync between disable and timer's cb qemu-thread: add QemuEvent timer: protect timers_state's clock with seqlock seqlock: introduce read-write seqlock vga: Mark relevant portio lists regions as coalesced MMIO flushing cirrus: Mark vga io region as coalesced MMIO flushing portio: Allow to mark portio lists as coalesced MMIO flushing compatfd: switch to QemuThread memory: fix 128 arithmetic in info mtree Message-id: 1382024935-28297-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 1cb9b64df380f232bcd142ab27c085cff0add1d8 Merge: c21611a 2324841 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 18 10:01:37 2013 -0700 Merge remote-tracking branch 'bonzini/configure' into staging # By Peter Maydell (3) and Ã?kos Kovács (2) # Via Paolo Bonzini * bonzini/configure: ui/Makefile.objs: delete unnecessary cocoa.o dependency default-configs/: CONFIG_GDBSTUB_XML removed Makefile.target: CONFIG_NO_* variables removed rules.mak: New string testing functions rules.mak: New logical functions for handling y/n values commit c21611ab8d0d6e0b3f3e5483777b5c929fb5a96c Merge: cd22e32 9fa0328 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 18 10:01:21 2013 -0700 Merge remote-tracking branch 'spice/spice.v75' into staging # By Gerd Hoffmann (2) and others # Via Gerd Hoffmann * spice/spice.v75: spice: fix multihead support spice-display: add display channel id to the debug messages. Fix VNC SASL authentication when using a QXL device spice: replace use of deprecated API Message-id: 1382006760-19388-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit cd22e320a01b790d158d915a45d930f9d0a4bc91 Merge: 1680d48 ca529f8 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 18 10:01:08 2013 -0700 Merge remote-tracking branch 'filippov/tags/20131015-xtensa' into staging xtensa queue 2013-10-15 # gpg: Signature made Tue 15 Oct 2013 06:27:41 AM PDT using RSA key ID F83FA044 # gpg: Can't check signature: public key not found # By Max Filippov # Via Max Filippov * filippov/tags/20131015-xtensa: target-xtensa: add in_asm logging Message-id: 1381844297-1728-1-git-send-email-jcmvbkbc@xxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit dbbcaa8d4358fdf3c42bf01e9e2d687300e84770 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Oct 18 15:07:33 2013 +0800 vmdk: fix VMFS extent parsing The VMFS extent line in description file doesn't have start offset as FLAT lines does, and it should be defaulted to 0. The flat_offset variable is initialized to -1, so we need to set it in this case. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c338b6ad609699cf352c8dd6338360b7e3895ad0 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Oct 18 13:17:19 2013 +0800 vmdk: Only read cid from image file when opening Previously cid of parent is parsed from image file for every IO request. We already have L1/L2 cache and don't have assumption that parent image can be updated behind us, so remove this to get more efficiency. The parent CID is checked only for once after opening. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 23c37c37f0280761072c23bf67d3a4f3c0ff25aa Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Oct 17 15:02:50 2013 +0800 net/rtl8139: update network information when macaddr is changed in guest rtl8139 has same problem as e1000, nic info isn't updated when macaddr is changed in guest. This patch updates the nic info when the last bit of macaddr is written. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7c36507c2b8776266f50c5e2739bd18279953b93 Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Oct 17 15:02:49 2013 +0800 net/e1000: update network information when macaddr is changed in guest If we change macaddr in guest by 'ifconfig eth0 hw ether 12:12:12:34:35:36', the mac register of e1000 is already updated, but we don't update network information in qemu. Therefor, the information in monitor is wrong. This patch updates nic info when the second part of macaddr is written. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 655d3b63b036b70714adbdae685055f1bda0f8f1 Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Oct 17 16:38:34 2013 +0800 net: update nic info during device reset macaddr is reset during device reset, but nic info isn't updated, this problem exists in e1000 & rtl8139 Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b432779a9fe9c2a1bb8cbd98feb341af6e32f892 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Oct 17 21:23:26 2013 +0200 virtio: Remove unneeded memcpy Report from valgrind: ==19521== Source and destination overlap in memcpy(0x31d38938, 0x31d38938, 64) ==19521== at 0x4A0A343: memcpy@@GLIBC_2.14 (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==19521== by 0x42774E: virtio_blk_device_init (virtio-blk.c:686) ==19521== by 0x46EE9E: virtio_device_init (virtio.c:1158) ==19521== by 0x25405E: device_realize (qdev.c:178) ==19521== by 0x2559B5: device_set_realized (qdev.c:699) ==19521== by 0x3A819B: property_set_bool (object.c:1315) ==19521== by 0x3A6CE0: object_property_set (object.c:803) Valgrind is right: blk == &s->blks, so it is a memcpy of 64 byte with source == destination which can be removed. Reported-by: Dave Airlie <airlied@xxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 041603fe5d4537cd165941f96bd76a31f7f662fd Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Sep 9 17:49:45 2013 +0200 exec: remove qemu_safe_ram_ptr This is not needed since the RAM list is not modified anymore by qemu_get_ram_ptr. Replace it with qemu_get_ram_block. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 17a15f1b768fe2aab8c5f360b05c0daddf0c438b Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Oct 3 15:17:25 2013 +0200 icount: make it thread-safe This lets threads other than the I/O thread use vm_clock even in -icount mode. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit a3270e19ccf05603dfaf09e1f18510f7c93095e0 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Oct 7 17:18:15 2013 +0200 icount: document (future) locking rules for icount Reviewed-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit ce78d18ced118b03e821135e702ba1d513c8b2a7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Oct 7 17:30:02 2013 +0200 icount: prepare the code for future races in calling qemu_clock_warp Computing the deadline of all vm_clocks is somewhat expensive and calls out to qemu-timer.c; two reasons not to do it in the seqlock's write-side critical section. This however opens the door for races in setting and reading vm_clock_warp_start. To plug them, we need to cover the case where a new deadline slips in between the call to qemu_clock_deadline_ns_all and the actual modification of the icount_warp_timer. Restrict changes to vm_clock_warp_start and the icount_warp_timer's expiration time, to only move them back (which would simply cause an early wakeup). If a vm_clock timer is cancelled while CPUs are idle, this might cause the icount_warp_timer to fire unnecessarily. This is not a problem, after it fires the timer becomes inactive and the next call to timer_mod_anticipate will be precise. In addition to this, we must deactivate the icount_warp_timer _before_ checking whether CPUs are idle. This way, if the "last" CPU becomes idle during the call to timer_del we will still set up the icount_warp_timer. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 8ed961d95708ee6cadac22fba7762724d533a5b4 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Oct 7 17:26:07 2013 +0200 icount: reorganize icount_warp_rt To prepare for future code changes, move the increment of qemu_icount_bias outside the "if" statement. Also, hoist outside the if the check for timers that expired due to the "warping". The check is redundant when !runstate_is_running(), but doing it this way helps because the code that increments qemu_icount_bias will be a critical section. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 468cc7cf3b85dd20a833773e6bde9f720f2df677 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Oct 7 17:21:51 2013 +0200 icount: use cpu_get_icount() directly This will help later when we will have to place these calls in a critical section, and thus call a version of cpu_get_icount() that does not take the lock. Reviewed-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit add40e9777de139fb317ca6b1fb0dc142601cfcd Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Oct 3 15:11:43 2013 +0200 timer: add timer_mod_anticipate and timer_mod_anticipate_ns These let a user anticipate the deadline of a timer, atomically with other sites that call the function. This helps avoiding complicated lock hierarchies. Reviewed-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0f809e5fbebb36788aea3523be7f93c04f2c7f8c Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Oct 3 15:06:39 2013 +0200 timer: extract timer_mod_ns_locked and timerlist_rearm These will be reused in timer_mod_anticipate functions. Reviewed-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 3c05341157f4d08dc3cc8ffa675a0aaa4818d028 Author: Liu Ping Fan <qemulist@xxxxxxxxx> Date: Wed Sep 25 14:21:00 2013 +0800 timer: make qemu_clock_enable sync between disable and timer's cb After disabling the QemuClock, we should make sure that no QemuTimers are still in flight. To implement that with light overhead, we resort to QemuEvent. The caller of disabling will wait on QemuEvent of each timerlist. Note, qemu_clock_enable(foo,false) can _not_ be called from timer's cb. Also, the callers of qemu_clock_enable() should be protected by the BQL. Signed-off-by: Liu Ping Fan <pingfank@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c7c4d063f50f0de980d99f02e055722227d703bc Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 25 14:20:59 2013 +0800 qemu-thread: add QemuEvent This emulates Win32 manual-reset events using futexes or conditional variables. Typical ways to use them are with multi-producer, single-consumer data structures, to test for a complex condition whose elements come from different threads: for (;;) { qemu_event_reset(ev); ... test complex condition ... if (condition is true) { break; } qemu_event_wait(ev); } Or more efficiently (but with some duplication): ... evaluate condition ... while (!condition) { qemu_event_reset(ev); ... evaluate condition ... if (!condition) { qemu_event_wait(ev); ... evaluate condition ... } } QemuEvent provides a very fast userspace path in the common case when no other thread is waiting, or the event is not changing state. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit cb365646a942ed58aae053064b2048a415337ba2 Author: Liu Ping Fan <qemulist@xxxxxxxxx> Date: Wed Sep 25 14:20:58 2013 +0800 timer: protect timers_state's clock with seqlock QEMU_CLOCK_VIRTUAL may be read outside BQL. This will make its foundation, i.e. cpu_clock_offset exposed to race condition. Using private lock to protect it. After this patch, reading QEMU_CLOCK_VIRTUAL is thread safe unless use_icount is true, in which case the existing callers still rely on the BQL. Lock rule: private lock innermost, ie BQL->"this lock" Signed-off-by: Liu Ping Fan <pingfank@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit ea753d81e8b085d679f13e4a6023e003e9854d51 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 25 14:20:57 2013 +0800 seqlock: introduce read-write seqlock Seqlock implementation for QEMU. Usage idiom reader: do { start = seqlock_read_begin(&sl); ... } while (seqlock_read_retry(&sl, start)); writer: seqlock_write_lock(&sl); ... seqlock_write_unlock(&sl); initialization: seqlock_init(QemuSeqLock *sl, QemuMutex *mutex) mutex could be NULL if the caller will provide its own protection for concurrent write sides (typically using the BQL). Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c46860ea53854a96b11af0d6e23b623ce199e95e Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Jul 2 21:37:40 2013 +0200 vga: Mark relevant portio lists regions as coalesced MMIO flushing This allows to remove the explicit qemu_flush_coalesced_mmio_buffer calls. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit eb25a1d9d4e88f4dd41702e35199ce4bbd7d1cee Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Jul 2 21:19:02 2013 +0200 cirrus: Mark vga io region as coalesced MMIO flushing This allows to remove the explicit qemu_flush_coalesced_mmio_buffer calls - the memory core will invoke them now. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c76bc480e2d70762d02373678942c98fb193b9e5 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Jul 2 20:22:37 2013 +0200 portio: Allow to mark portio lists as coalesced MMIO flushing This will enable us to remove all remaining explicit calls of qemu_flush_coalesced_mmio_buffer in IO handlers. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 518420dfec2f082cfecbc6eec79fcc91388cf751 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Thu May 2 10:21:18 2013 +0200 compatfd: switch to QemuThread qemu_thread_create already does signal blocking and detaching for us. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit a66670c79c5c7d530d818430ffcdaa25cbf2c2ab Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Aug 30 18:10:38 2013 +1000 memory: fix 128 arithmetic in info mtree mtree_print_mr() calls int128_get64() in 3 places but only 2 places handle 2^64 correctly. This fixes the third call of int128_get64(). Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 45d57f6e718e44e55780bcf1d09fa140dce7ec08 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Oct 11 14:30:16 2013 +0200 block/raw-win32: Always use -errno in hdev_open On one occasion, hdev_open() returned -1 in case of an unknown error instead of a proper -errno value. Adjust this to match the behavior of raw_open() (in raw-win32), which is to return -EINVAL in this case. Also, change the call to error_setg*() to match the one in raw_open() as well. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0624c7f916b4d97f17726d9b295d6a6b0dc5076d Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Oct 10 10:30:27 2013 +0200 e820: pass high memory too. We have a fw_cfg entry to pass e820 entries from qemu to the firmware. Today it's used to pass reservations only. This patch makes qemu pass entries for RAM too. This allows to pass RAM sizes larger than 1TB to the firmware and it will also allow to pass non-contignous memory ramges should we decide to implement that some day, say for our virtual numa nodes. Obviously this needs some extra care to not break existing firware. SeaBIOS loads the entries and happily adds them without looking at the type. Which is problematic for memory below 4g as this will overwrite reservations added for bios memory etc. For memory above 4g it works just fine, seabios will merge the entry derived from cmos with the one loaded from fw_cfg. OVMF doesn't look at the fw_cfg e820 table. coreboot doesn't look at the fw_cfg e820 table. Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-By: Igor Mammedov <imammedo@xxxxxxxxxx> commit 9fa032866daae68357d99abc725c18fe9ed4b61b Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Oct 11 22:39:59 2013 +0200 spice: fix multihead support This patch fixes spice display initialization to handle multihead properly. spice-core now keeps track of which QemuConsole has a spice display channel attached to it and which has not. It also manages display channel ids. spice-display looks at all QemuConsoles and will pick up any graphic console not yet bound to a spice channel (which in practice are all non-qxl graphic devices). Result is that (a) you'll get a spice client window for each graphical device now (first only without this patch), and (b) mixing qxl and non-qxl vga cards works properly. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 35b2122db446a03be9b88f540e865930efd01d6a Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Oct 17 12:11:43 2013 +0200 spice-display: add display channel id to the debug messages. And s/__FUNCTION__/__func__/ while being at it. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 764eb39d1b6f614e9734ea3ed1b7dcf6c3aaa260 Author: Christophe Fergeau <cfergeau@xxxxxxxxxx> Date: Wed Oct 16 17:52:33 2013 +0200 Fix VNC SASL authentication when using a QXL device ui/vnc.c:vnc_display_open() and spice-server/server/reds.c:do_spice_init() are both calling sasl_server_init(). If spice_server_set_sasl_appname() hasn't been called, spice-server will call it with "spice" as an appname, causing cyrus-sasl to try to use a /etc/sasl2/spice.conf config file rather than the /etc/sasl2/qemu.conf file that QEMU uses. When using -spice sasl on the command line, QEMU properly calls spice_server_set_sasl_appname() to set the SASL appname as "qemu", but when using a QXL device without using SPICE, spice_server_init() is called from qemu_spice_add_interface() without setting the appname to "qemu", which then causes the VNC code to try to use spice.conf instead of qemu.conf. Signed-off-by: Christophe Fergeau <cfergeau@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 26defe81f6a878f33e0aaeb1df4d0d7022c929ca Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Fri Oct 4 13:10:46 2013 +0200 spice: replace use of deprecated API hose API are deprecated since 0.11, and qemu depends on 0.12 already. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit a7fdbcf0e6e52d935ebff6d849fe4b5473e5860d Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Oct 15 17:45:50 2013 +0800 blockdev: fix cdrom read_only flag Since 0ebd24e0, cdrom doesn't have read-only on by default, which will error out when using an read only image. Fix it by setting the default value when parsing opts. Reported-by: Edivaldo de Araujo Pereira <edivaldoapereira@xxxxxxxxxxxx> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 794cbc26eb94ce13c75d105eea9ff0afff56e2c2 Author: Andreas Färber <afaerber@xxxxxxx> Date: Wed Oct 16 15:24:01 2013 +0200 sd: Avoid access to NULL BlockDriverState Commit 4f8a066b5fc254eeaabbbde56ba4f5b29cc68fdf (blockdev: Remove IF_* check for read-only blockdev_init) added a usage of bdrv_is_read_only() to sd_init(), which is called for versatilepb, versatileab and xilinx-zynq-a9 machines among others with NULL argument by default, causing the new qom-test to fail. Add a check to prevent this. Suggested-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 684b25447c10b9171e5aa9305075b830885fe6e3 Author: Mike Qiu <qiudayu@xxxxxxxxxxxxxxxxxx> Date: Wed Oct 16 23:16:01 2013 -0400 hmp: drop bogus "[not inserted]" Commit 3e9fab690d59ac15956c3733fe0794ce1ae4c4af ("block: Add support for throttling burst max in QMP and the command line.") introduced bogus "[not inserted]" output, possibly due to a merge failure. Remove this artifact. Output of 'info block' scsi0-hd0: /images/f18-ppc64.qcow2 (qcow2) [not inserted] scsi0-cd2: [not inserted] Removable device: not locked, tray closed floppy0: [not inserted] Removable device: not locked, tray closed sd0: [not inserted] Removable device: not locked, tray closed There will be no additional lines between scsi0-hd0 and scsi0-cd2. At the same time, scsi0-hd0 already inserted, but still has '[not inserted]' flag. This line should be removed. This patch is to solve this. Signed-off-by: Mike Qiu <qiudayu@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2324841c0275f31505168e7a6ceb71bcede92d33 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Oct 10 19:26:09 2013 +0800 ui/Makefile.objs: delete unnecessary cocoa.o dependency Delete an unnecessary dependency for cocoa.o; we already have a general rule that tells Make that we can build a .o file from a .m source using an ObjC compiler, so this specific rule is unnecessary. Further, it is using the dubious construct "$(SRC_PATH)/$(obj)" to get at the source directory, which will break when $(obj) is redefined as part of the preparation for per-object library support. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit b77abd95a9484ca5ffd7fb4cda25155bb8677bfb Author: Ã?kos Kovács <akoskovacs@xxxxxxx> Date: Fri Sep 13 18:25:54 2013 +0100 default-configs/: CONFIG_GDBSTUB_XML removed Makefile.target: Build gdbstub-xml.o only when TARGET_XML_FILES is not empty. Signed-off-by: Ã?kos Kovács <akoskovacs@xxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit cf01ba9eef81d828c8292eacab70c67c81ca4501 Author: Ã?kos Kovács <akoskovacs@xxxxxxx> Date: Fri Sep 13 18:25:53 2013 +0100 Makefile.target: CONFIG_NO_* variables removed CONFIG_NO_* variables replaced with the lnot logical function Signed-off-by: Ã?kos Kovács <akoskovacs@xxxxxxx> [PMM: fixed a few CONFIG_NO_* uses that were missed] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 9ef622e31e7168a9a2c80f95d245c2ad156e3fa7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Sep 13 18:25:52 2013 +0100 rules.mak: New string testing functions Add new string testing functions which return a y/n result: eq : are two strings equal (ignoring leading/trailing space)? ne : are two strings unequal? isempty : is a string empty? notempty : is a string non-empty? Based on an idea by Ã?kos Kovács <akoskovacs@xxxxxxx>. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 837a2e267f9c01cd9204d5b701712d6d26a5220e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Sep 13 18:25:51 2013 +0100 rules.mak: New logical functions for handling y/n values Add new logical functions for handling y/n values like those we use in CONFIG_FOO variables: lnot : logical NOT land : logical AND lor : logical OR lxor : logical XOR leqv : logical equality, inverse of lxor lif : like Make's $(if) but with an eq-like test Based on an idea by Ã?kos Kovács <akoskovacs@xxxxxxx>. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit ca529f8e13557cc2feb2eee3872d422712d9bcb0 Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Sat Aug 17 12:30:57 2013 +0400 target-xtensa: add in_asm logging Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> commit 1680d485777ecf436d724631ea8722cc0c66990e Merge: ded77da f8da40a Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Oct 14 09:59:59 2013 -0700 Merge remote-tracking branch 'rth/tcg-ldst-6' into staging # By Richard Henderson # Via Richard Henderson * rth/tcg-ldst-6: target-alpha: Convert to new ldst opcodes tcg-ppc64: Support new ldst opcodes tcg-ppc: Support new ldst opcodes tcg-ppc64: Convert to le/be ldst helpers tcg-ppc: Convert to le/be ldst helpers tcg-ppc64: Use TCGMemOp within qemu_ldst routines tcg-ppc: Use TCGMemOp within qemu_ldst routines tcg-arm: Improve GUEST_BASE qemu_ld/st tcg-arm: Convert to new ldst opcodes tcg-arm: Tidy variable naming convention in qemu_ld/st tcg-arm: Convert to le/be ldst helpers tcg-arm: Use TCGMemOp within qemu_ldst routines tcg-i386: Support new ldst opcodes tcg-i386: Remove "cb" output restriction from qemu_st8 for i386 tcg-i386: Tidy softmmu routines tcg-i386: Use TCGMemOp within qemu_ldst routines tcg: Use TCGMemOp for TCGLabelQemuLdst.opc Message-id: 1381620683-4568-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit ded77da3cd6b6bcd201a4e36abb3294d725be644 Merge: 08683cb 6ef8263 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Oct 14 09:15:47 2013 -0700 Merge remote-tracking branch 'jliu/or32' into staging # By Sebastian Macke # Via Jia Liu * jliu/or32: target-openrisc: Removes a non-conforming behavior for the first page of the memory target-openrisc: Correct handling of page faults. Message-id: 1380789702-18935-1-git-send-email-proljc@xxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 08683cb53286848913d4b58afb3f975a29d93535 Merge: 575ddeb b1c50c5 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Oct 14 09:14:30 2013 -0700 Merge remote-tracking branch 'awilliam/tags/vfio-pci-for-qemu-20131010.0' into staging vfio-pci updates include: - Forgotten MSI affinity patch posted several months ago - Lazy option ROM loading to delay load until after device/bus resets - Error reporting cleanups - PCI hot reset support introduced with Linux v3.12 development kernels - Debug build fix for int128 The lazy ROM loading and hot reset should help VGA assignment as we can now do a bus reset when there are multiple devices on the bus, ex. multi-function graphics and audio cards. # gpg: Signature made Thu 10 Oct 2013 11:26:39 AM PDT using RSA key ID 3BB08B22 # gpg: Can't check signature: public key not found # By Alex Williamson (7) and Alexey Kardashevskiy (1) # Via Alex Williamson * awilliam/tags/vfio-pci-for-qemu-20131010.0: vfio-pci: Fix endian issues in vfio_pci_size_rom() vfio-pci: Add dummy PCI ROM write accessor vfio: Fix debug output for int128 values vfio-pci: Implement PCI hot reset vfio-pci: Cleanup error_reports vfio-pci: Lazy PCI option ROM loading vfio-pci: Test device reset capabilities vfio-pci: Add support for MSI affinity Message-id: 20131010184122.31667.28382.stgit@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 575ddeb459f622a114cbfe37d220c0519ec9c2a4 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Sep 29 20:56:45 2013 +0200 exec: Fix prototype of phys_mem_set_alloc and related functions phys_mem_alloc and its assigned values qemu_anon_ram_alloc and legacy_s390_alloc must have identical argument lists. legacy_s390_alloc uses the size parameter to call mmap, so size_t is good enough for all of them. This patch fixes compiler errors on i686 Linux hosts: CC alpha-softmmu/exec.o exec.c:752:51: error: initialization from incompatible pointer type [-Werror] exec.c: In function 'qemu_ram_alloc_from_ptr': exec.c:1139:32: error: comparison of distinct pointer types lacks a cast [-Werror] exec.c: In function 'qemu_ram_remap': exec.c:1283:21: error: comparison of distinct pointer types lacks a cast [-Werror] Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Message-id: 1380481005-32399-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 742f5d2ed578bb53b2130b6da2c66de9929f4821 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Fri Sep 27 17:15:41 2013 +0300 ssdt-proc: update generated file Update generated ssdt proc hex file (used for systems lacking IASL) after P_BLK length change. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 6ec80ef1502e90d19b90f021514debe32c8689a8 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Fri Sep 27 01:15:14 2013 +0300 ssdt: fix PBLK length We don't really support CPU throttling, so supply 0 PBLK length. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 72c194f7e75cb64b2558111cb111adb49fbf4097 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:14 2013 +0300 i386: ACPI table generation code from seabios This adds C code for generating ACPI tables at runtime, imported from seabios git tree commit 51684b7ced75fb76776e8ee84833fcfb6ecf12dd Although ACPI tables come from a system BIOS on real hw, it makes sense that the ACPI tables are coupled with the virtual machine, since they have to abstract the x86 machine to the OS's. This is widely desired as a way to avoid the churn and proliferation of QEMU-specific interfaces associated with ACPI tables in bios code. Notes: As BIOS can reprogram devices prior to loading ACPI tables, we pre-format ACPI tables but defer loading hardware configuration there until tables are loaded. The code structure was intentionally kept as close to the seabios original as possible, to simplify comparison and making sure we didn't lose anything in translation. Minor code duplication results, to help ensure there are no functional regressions, I think it's better to merge it like this and do more code changes in follow-up patches. Cross-version compatibility concerns have been addressed: ACPI tables are exposed to guest as FW_CFG entries. When running with -M 1.5 and older, this patch disables ACPI table generation, and doesn't expose ACPI tables to guest. As table content is likely to change over time, the following measures are taken to simplify cross-version migration: - All tables besides the RSDP are packed in a single FW CFG entry. This entry size is currently 23K. We round it up to 64K to avoid too much churn there. - Tables are placed in special ROM blob (not mapped into guest memory) which is automatically migrated together with the guest, same as BIOS code. - Offsets where hardware configuration is loaded in ACPI tables are also migrated, this is in case future ACPI changes make us rearrange the tables in memory. This patch reuses some code from SeaBIOS, which was originally under LGPLv2 and then relicensed to GPLv3 or LGPLv3, in QEMU under GPLv2+. This relicensing has been acked by all contributors that had contributed to the code since the v2->v3 relicense. ACKs approving the v2+ relicensing are listed below. The list might include ACKs from people not holding copyright on any parts of the reused code, but it's better to err on the side of caution and include them. Affected SeaBIOS files (GPLv2+ license headers added) <http://thread.gmane.org/gmane.comp.bios.coreboot.seabios/5949>: src/acpi-dsdt-cpu-hotplug.dsl src/acpi-dsdt-dbug.dsl src/acpi-dsdt-hpet.dsl src/acpi-dsdt-isa.dsl src/acpi-dsdt-pci-crs.dsl src/acpi.c src/acpi.h src/ssdt-misc.dsl src/ssdt-pcihp.dsl src/ssdt-proc.dsl tools/acpi_extract.py tools/acpi_extract_preprocess.py Each one of the listed people agreed to the following: > If you allow the use of your contribution in QEMU under the > terms of GPLv2 or later as proposed by this patch, > please respond to this mail including the line: > > Acked-by: Name <email address> Acked-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Acked-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Acked-by: Jason Baron <jbaron@xxxxxxxxxx> Acked-by: David Woodhouse <David.Woodhouse@xxxxxxxxx> Acked-by: Gleb Natapov <gleb@xxxxxxxxxx> Acked-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Acked-by: Dave Frodin <dave.frodin@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Acked-by: Kevin O'Connor <kevin@xxxxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx> Acked-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx> Acked-by: Magnus Christensson <magnus.christensson@xxxxxxxxx> Acked-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Acked-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 1a4b2666dfbd6fbd9b5623a8e0ed6035cd0854fe Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Oct 7 22:12:00 2013 +0300 pc: use new api to add builtin tables At this point the only builtin table we have is the DSDT used for Q35. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 60de1163d5b5013fe964ac0792e9a64a823e73a3 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Oct 7 14:41:40 2013 +0300 acpi: add interface to access user-installed tables Also add a new API to install builtin tables, so that we can distinguish between the two. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 64e9df8d34e493e59c1920358257a7576a560a1a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:13 2013 +0300 hpet: add API to find it Add API to find HPET using QOM. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 309cd62d6b2628b4f0e2850b42011077f40956c7 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:12 2013 +0300 pvpanic: add API to access io port Add API to find pvpanic device and get its io port. Will be used to fill in guest info structure. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 6f1426ab0fad715bccbad60e976ebf420442006c Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:10 2013 +0300 ich9: APIs for pc guest info This adds APIs that will be used to fill in acpi tables, implemented using QOM, to various ich9 components. Some information is still missing in QOM, so we fall back on lookups by type instead. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 277e9340e6a1b0a0e8e988d2f0ac82b18b695c0b Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:11 2013 +0300 piix: APIs for pc guest info This adds APIs that will be used to fill in guest acpi tables. Some required information is still lacking in QOM, so we fall back on lookups by type and returning explicit types. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit f854ecc79957e588bed8ed7e8c1c24ded55fc1e9 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Sep 16 18:09:11 2013 +0300 acpi/piix: add macros for acpi property names Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit b20c9bd5f6d8860856f6078836d197c6c2e27ef1 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:09 2013 +0300 i386: define pc guest info This defines a structure that will be used to fill in acpi tables where relevant properties are not yet available using QOM. Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d916b46494a2a477636a59900ab1609de192f47a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:08 2013 +0300 loader: allow adding ROMs in done callbacks Don't abort if machine done callbacks add ROMs. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit bc70232918ad3fb45c2b5423455a5de6bc7efdef Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:06 2013 +0300 i386: add bios linker/loader This adds a dynamic bios linker/loader. This will be used by acpi table generation code to: - load each table in the appropriate memory segment - link tables to each other - fix up checksums after said linking Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 35c12e60c840bc4840cbbe3f6ca514a53b2e36bc Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:05 2013 +0300 loader: use file path size from fw_cfg.h Avoid a bit of code duplication, make max file path constant reusable. Suggested-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 544d2bfa84c43f9d4c70ca2202a6113d686b8999 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Fri Sep 27 17:16:32 2013 +0300 acpi: ssdt pcihp: updat generated file update generated file, not sure what changed Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d512d0d723cc3a08ac0409e1ab13edfa1cc04c70 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:04 2013 +0300 acpi: pre-compiled ASL files Add pre-compiled ASL files. Useful for systems that do not have IASL. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a31a864273bb501851a4d52a366c645d06a53991 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:03 2013 +0300 acpi: add rules to compile ASL source Detect presence of IASL compiler and use it to process ASL source. If not there, use pre-compiled files in-tree. Add script to update the in-tree files. Note: distros are known to silently update iasl so detect correct iasl flags for the installed version on each run as opposed to at configure time. Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 74523b850189afc23b608918c458b9242757f6d9 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:02 2013 +0300 i386: add ACPI table files from seabios This adds ASL code as well as scripts for processing it, imported from seabios git tree commit 51684b7ced75fb76776e8ee84833fcfb6ecf12dd Will be used for runtime acpi table generation. Note: This patch reuses some code from SeaBIOS, which was originally under LGPLv2 and then relicensed to GPLv3 or LGPLv3, in QEMU under GPLv2+. This relicensing has been acked by all contributors that had contributed to the code since the v2->v3 relicense. ACKs approving the v2+ relicensing are listed below. The list might include ACKs from people not holding copyright on any parts of the reused code, but it's better to err on the side of caution and include them. Affected SeaBIOS files (GPLv2+ license headers added) <http://thread.gmane.org/gmane.comp.bios.coreboot.seabios/5949>: src/acpi-dsdt-cpu-hotplug.dsl src/acpi-dsdt-dbug.dsl src/acpi-dsdt-hpet.dsl src/acpi-dsdt-isa.dsl src/acpi-dsdt-pci-crs.dsl src/acpi.c src/acpi.h src/ssdt-misc.dsl src/ssdt-pcihp.dsl src/ssdt-proc.dsl tools/acpi_extract.py tools/acpi_extract_preprocess.py Each one of the listed people agreed to the following: > If you allow the use of your contribution in QEMU under the > terms of GPLv2 or later as proposed by this patch, > please respond to this mail including the line: > > Acked-by: Name <email address> Acked-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Acked-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Acked-by: Jason Baron <jbaron@xxxxxxxxxx> Acked-by: David Woodhouse <David.Woodhouse@xxxxxxxxx> Acked-by: Gleb Natapov <gleb@xxxxxxxxxx> Acked-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Acked-by: Dave Frodin <dave.frodin@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Acked-by: Kevin O'Connor <kevin@xxxxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx> Acked-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx> Acked-by: Magnus Christensson <magnus.christensson@xxxxxxxxx> Acked-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Acked-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit cbcaf79e3ce1b14084f3e3f4f64365e9bfd70e6a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Sep 10 10:16:02 2013 +0300 q35: expose mmcfg size as a property Address is already exposed, expose size for symmetry. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 87f65245db4665edff22242c17546954d9d59c82 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Sep 2 17:59:38 2013 +0300 q35: use macro for MCFG property name Useful to make it accessible through QOM. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 6f6d282330a3c85ecbeb54dec5b57282bd177b44 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Sep 10 10:15:00 2013 +0300 pcie_host: expose address format Callers pass in the address so it's helpful for them to be able to decode it. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 079e3e7012a0e3ff80b4786e67f5a5d4341dcd51 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Sep 10 08:43:48 2013 +0300 pcie_host: expose UNMAPPED macro Make it possible to test unmapped status through QMP. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 48354cc5a3744c9a56462e5053e1f267a0ce69de Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Aug 18 17:02:33 2013 +0300 loader: support for unmapped ROM blobs Support ROM blobs not mapped into guest memory: same as ROM files really but use caller's buffer. Support invoking callback on access and return memory pointer making it easier for caller to update memory if necessary. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d87072ceeccf4f84a64d4bc59124bcd64286c070 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Sep 1 17:56:20 2013 +0300 fw_cfg: interface to trigger callback on read Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 77d6f4ea7608fe7f47c9d7beddd19191b2e852b2 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Oct 1 15:39:13 2013 +0300 pci: fix up w64 size calculation helper BAR base was calculated incorrectly. Use existing pci_bar_address to get it right. Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit e732ea638705da35445a42dee32691fbe813d3e0 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Sep 22 10:10:17 2013 +0300 qom: add pointer to int property helpers Make it easy to add read-only helpers for simple integer properties in memory. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit e82df24873970742778e4a960f059ba9f8b1b2a7 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Sep 22 10:08:14 2013 +0300 qom: cleanup struct Error references now that a typedef for struct Error is available, use it in qom/object.h to match coding style rules. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 008e05662ae5ff314b2b8462508ffd4b40503369 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Tue Oct 1 17:44:32 2013 +0200 cleanup object.h: include error.h directly qapi/error.h is simple enough to be included in qom/object.h direcly and prepares qom/object.h to use Error typedef. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c31d04b516b183b02336f8cce65a41bd547f6f6b Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:41 2013 +0300 hw/pci: removed irq field from PCIDevice Instead of exposing the the irq field, pci wrappers to qemu_set_irq or qemu_irq_* can be used. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 5a03e708f213c716c9dde11e8ab4b23b8ca5c066 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:40 2013 +0300 hw/pcie: AER and hot-plug events must use device's interrupt The fields hpev_intx and aer_intx were removed because both AER and hot-plug events must use device's interrupt. Assert/deassert interrupts using pci irq wrappers instead. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9e64f8a3fcc88a508990a62ecc5a1269e41272ad Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:39 2013 +0300 hw: set interrupts using pci irq wrappers pci_set_irq and the other pci irq wrappers use PCI_INTERRUPT_PIN config register to compute device INTx pin to assert/deassert. An irq is allocated using pci_allocate_irq wrapper only if is needed by non pci devices. Removed irq related fields from state if not used anymore. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 68919cace8242363edfe8ff9b9c68b5e58c30db4 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:38 2013 +0300 hw/vfio: set interrupts using pci irq wrappers pci_set_irq and the other pci irq wrappers use PCI_INTERRUPT_PIN config register to compute device INTx pin to assert/deassert. save INTX pin into the config register before calling pci_set_irq Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4c89e3e59368584ae6f34fdfce3c698223b8a918 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:37 2013 +0300 hw/vmxnet3: set interrupts using pci irq wrappers pci_set_irq uses PCI_INTERRUPT_PIN config register to compute device INTx pin to assert/deassert. An assert is used to ensure that intx received from the quest OS corresponds to PCI_INTERRUPT_PIN. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c008ac0c1cb68dfe8dcfda0e25562fa81c687e50 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:36 2013 +0300 hw/pci-bridge: set PCI_INTERRUPT_PIN register before shpc init The PCI_INTERRUPT_PIN will be used by shpc init, so was moved before the call to shpc_init. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d98f08f54e0882b4da1177345161afabb8d47d94 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:35 2013 +0300 hw/pci: add pci wrappers for allocating and asserting irqs Interrupt pin is selected and saved into PCI_INTERRUPT_PIN register during device initialization. Devices should not call directly qemu_set_irq and specify the INTx pin on each call. Added pci_* wrappers to replace qemu_set_irq, qemu_irq_raise, qemu_irq_lower and qemu_irq_pulse, setting the irq based on PCI_INTERRUPT_PIN. Added pci_allocate_irq wrapper to be used by devices that still need PCIDevice infrastructure to assert irqs. Renamed a static method which was named already pci_set_irq. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a8a9d30bab2fae2e0ab3436fa0a40d89fbb0cf4e Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:34 2013 +0300 hw/core: Add interface to allocate and free a single IRQ qemu_allocate_irq returns a single qemu_irq. The interface allows to specify an interrupt number. qemu_free_irq frees it. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a53ae8e934cd54686875b5bcfc2f434244ee55d6 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Sep 16 11:21:16 2013 +0300 hw/pci: partially handle pci master abort A MemoryRegion with negative priority was created and it spans over all the pci address space. It "intercepts" the accesses to unassigned pci address space and will follow the pci spec: 1. returns -1 on read 2. does nothing on write Note: setting the RECEIVED MASTER ABORT bit in the STATUS register of the device that initiated the transaction will be implemented in another series Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8002ccd6e4c5c52210c5fc886f7bf88fd707c2df Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Sep 16 11:21:15 2013 +0300 docs/memory: Explictly state that MemoryRegion priority is signed When memory regions overlap, priority can be used to specify which of them takes priority. By making the priority values signed rather than unsigned, we make it more convenient to implement a situation where one "background" region should appear only where no other region exists: rather than having to explicitly specify a high priority for all the other regions, we can let them take the default (zero) priority and specify a negative priority for the background region. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a1ff8ae0666ffcbe78ae7e28812dd30db6bb7131 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Sep 16 11:21:14 2013 +0300 memory: Change MemoryRegion priorities from unsigned to signed When memory regions overlap, priority can be used to specify which of them takes priority. By making the priority values signed rather than unsigned, we make it more convenient to implement a situation where one "background" region should appear only where no other region exists: rather than having to explicitly specify a high priority for all the other regions, we can let them take the default (zero) priority and specify a negative priority for the background region. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit f8da40aefbd1b40a0c5ab6fb25987943fe01125c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 10 13:11:56 2013 -0700 target-alpha: Convert to new ldst opcodes Or, partially. The fundamental primitives for the port are gen_load_mem and gen_store_mem, which take a callback to emit the memory operation. For that, we continue to use the original inline functions that forward to the new ops, rather than replicate the same thing privately. That said, all free-standing calls to tcg_gen_qemu_* have been converted. The 32-bit floating-point references now use _i32 opcodes, eliminating a truncate or extension. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1768ec0623c1253df3bf1424b07fbccb164e85fb Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 10 10:15:25 2013 -0700 tcg-ppc64: Support new ldst opcodes Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5dd391604f590938dd9fd335102442f1612e5eed Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 10 10:00:27 2013 -0700 tcg-ppc: Support new ldst opcodes Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e349a8d4ffb63e8e16c67d1702dd728d781424d6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 10 09:05:15 2013 -0700 tcg-ppc64: Convert to le/be ldst helpers Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 92d0acda271f54a96956b9aef5031e702e12a700 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 10 08:54:04 2013 -0700 tcg-ppc: Convert to le/be ldst helpers Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a058557381e6bb4c7688572bba7b3a4c01234955 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 3 17:05:37 2013 -0700 tcg-ppc64: Use TCGMemOp within qemu_ldst routines Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f1a16dcdd5d52aa92563c8798d1b3e304c1245f9 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 3 17:05:31 2013 -0700 tcg-ppc: Use TCGMemOp within qemu_ldst routines Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 091d5677713d5e8e48ad670655d6bf1bac0b064d Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 12 15:06:23 2013 -0700 tcg-arm: Improve GUEST_BASE qemu_ld/st If we pull the code to emit the actual load/store into a subroutine, we can share the reg+reg addressing mode code between softmmu and usermode. This lets us load GUEST_BASE into a temporary register rather than attempting to add it piece-wise to the address. Which lets us use movw+movt for armv7, rather than (up to) 4 adds. Code size for pre-armv7 stays the same. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 15ecf6e3946b0d2f0b6deb95c321604b8741a882 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 12 10:17:45 2013 -0700 tcg-arm: Convert to new ldst opcodes Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a485cff09c44fffea121401cd3dcea13b8d1fe27 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 12 09:07:38 2013 -0700 tcg-arm: Tidy variable naming convention in qemu_ld/st s/addr_reg2/addrhi/ s/addr_reg/addrlo/ s/data_reg2/datahi/ s/data_reg/datalo/ Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0315c51ea954766df8ab6697502dff22f5364f77 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 12 08:58:33 2013 -0700 tcg-arm: Convert to le/be ldst helpers Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 099fcf2e3689a702a0948b53f3cd42926bbe044a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 3 16:16:47 2013 -0700 tcg-arm: Use TCGMemOp within qemu_ldst routines Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8221a267fdc6e8eebbeb8d810b58efbe3a7d913e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 4 09:35:37 2013 -0700 tcg-i386: Support new ldst opcodes No support for helpers with non-default endianness yet, but good enough to test the opcodes. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b3e2bc500f5fe09763a107e2e28cb0e2d39ffb7c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 4 08:51:07 2013 -0700 tcg-i386: Remove "cb" output restriction from qemu_st8 for i386 Once we form a combined qemu_st_i32 opcode, we won't be able to have separate constraints based on size. This one is fairly easy to work around, since eax is available as a scratch register. When storing variable data, this tends to merely exchange one mov for another. E.g. -: mov %esi,%ecx ... -: mov %cl,(%edx) +: mov %esi,%eax +: mov %al,(%edx) Where we do have a regression is when storing constant data, in which we may load the constant into edi, when only ecx/ebx ought to be used. The proper way to recover this regression is to allow constants as arguments to qemu_st_i32, so that we never load the constant data into a register at all, must less the wrong register. TBD. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7352ee546ce0aba261d0e64595eae6e74e75e49d Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 4 08:13:42 2013 -0700 tcg-i386: Tidy softmmu routines Pass two TCGReg to tcg_out_tlb_load, rather than idx+args. Move ldst_optimization routines just below tcg_out_tlb_load to avoid the need for forward declarations. Use TCGReg enum in preference to int where apprpriate. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 37c5d0d5d1ad4e603dc50411c85bad6f726357a2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 3 13:54:21 2013 -0700 tcg-i386: Use TCGMemOp within qemu_ldst routines Step one in the transition, with constants passed down from tcg_out_op. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d257e0d7aeb72f4280666590f81ca5f0a38697f8 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Oct 11 14:32:06 2013 -0700 tcg: Use TCGMemOp for TCGLabelQemuLdst.opc Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1cdae4573d7613149348d834c605bfbe3c7d405b Merge: ab1eb72 0106dc4 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 11 09:38:07 2013 -0700 Merge remote-tracking branch 'mdroth/qga-pull-2013-10-10' into staging # By Mark Wu (2) and Tomoki Sekiyama (1) # Via Michael Roth * mdroth/qga-pull-2013-10-10: qemu-ga: Extend 'guest-info' command to expose flag 'success-response' qemu-ga: Add interface to traverse the qmp command list by QmpCommand qemu-ga: execute fsfreeze-freeze in reverse order of mounts Message-id: 1381435782-25524-1-git-send-email-mdroth@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit ab1eb72b1db1740093d52207887a2cfc8665bad6 Merge: a3400ae 867b320 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 11 09:36:52 2013 -0700 Merge remote-tracking branch 'rth/tcg-pull' into staging # By Richard Henderson # Via Richard Henderson * rth/tcg-pull: exec: Add both big- and little-endian memory helpers tcg: Add qemu_ld_st_i32/64 tcg: Add TCGMemOp configure: Remove CONFIG_QEMU_LDST_OPTIMIZATION tcg: Add tcg-be-ldst.h tcg: Add tcg-be-null.h exec: Delete is_tcg_gen_code and GETRA_EXT tcg-aarch64: Update to helper_ret_*_mmu routines tcg: Merge tcg_register_helper into tcg_context_init tcg: Add tcg-runtime.c helpers to all_helpers tcg: Put target helper data into an array. tcg: Remove stray semi-colons from target-*/helper.h tcg: Move helper registration into tcg_context_init target-m68k: Rename helpers.h to helper.h tcg: Use a GHashTable for tcg_find_helper tcg: Delete tcg_helper_get_name declaration tcg-hppa: Remove tcg backend Message-id: 1381440525-6666-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit a3400aeede46c6c30b6fefb20fc90a43f1f6e7b2 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Oct 10 15:00:21 2013 +0200 qdev-monitor: Group "device_add help" and "info qdm" by category Output is a long, unsorted list. Not very helpful. Print one list per device category instead, with a header line identifying the category, plus a list of uncategorized devices. Print each list in case-insenitive alphabetical order. Devices with multiple categories are listed multiple times. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Message-id: 1381410021-1538-3-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 1fc224b4b6d195fb7802d5ba1a0846a4e7a1e2af Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Oct 10 15:00:20 2013 +0200 Mostly revert "qemu-help: Sort devices by logical functionality" This reverts most of commit 3d1237fb2ab4edb926c717767bb5e31d6053a7c5. The commit claims to sort the output of "-device help" "by functionality rather than alphabetical". Issues: * The output was unsorted before, not alphabetically sorted. Misleading, but harmless enough. * The commit doesn't just sort the output of "-device help" as it claims, it adds categories to each line of "-device help", and it prints devices once per category. In particular, devices without a category aren't shown anymore. Maybe such devices should not exist, but they do. Regression. * Categories are also added to the output of "info qdm". Silent change, not nice. Output remains unsorted, unlike "-device help". I'm going to reimplement the feature we actually want, without the warts. Reverting the flawed commit first should make it easier to review. However, I can't revert it completely, since DeviceClass member categories has been put to use. So leave that part in. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Message-id: 1381410021-1538-2-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 859389810910f232188675d2f10b15f1aad77660 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Fri Oct 11 14:52:38 2013 +0200 Use qemu-project.org domain name qemu.org is held by a third-party and no core community contributor has access to the DNS configuration. This leaves the website exposed to outages due to DNS issues or IP address changes. For example, if the web server IP address needs to change we cannot guarantee qemu.org will point to it! The newer qemu-project.org domain name is owned by Anthony Liguori <anthony@xxxxxxxxxxxxx>. You can confirm this by querying the whois information. Also note that the #qemu IRC channel topic already references qemu-project.org. Short of having a dedicated legal entity to hold the domain name on behalf of the community, qemu-project.org seems like the safest bet. Let's replace references to qemu.org with qemu-project.org. Note that git-submodule(1) does not detect URL changes. The following commands clear out and re-initialize all submodules to ensure you are using the latest URLs: $ git submodule deinit . # you'll be warned if you have local changes $ rm -rf .git/modules # also clear cached .git/ directories $ git submodule update --init Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Message-id: 1381495958-8306-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 33c6cae44eccea5e627c2dc5cbf31456db90fc38 Merge: 39c153b 34eeb82 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 11 09:29:58 2013 -0700 Merge remote-tracking branch 'kwolf/for-anthony' into staging # By Max Reitz (30) and others # Via Kevin Wolf * kwolf/for-anthony: (61 commits) qemu-iotests: Add test for inactive L2 overlap qemu-io: Let "open" pass options to block driver vmdk: Fix vmdk_parse_extents blockdev: blockdev_init() error conversion blockdev: Don't disable COR automatically with blockdev-add blockdev: Remove 'media' parameter from blockdev_init() qemu-iotests: Check autodel behaviour for device_del blockdev: Remove IF_* check for read-only blockdev_init blockdev: Move virtio-blk device creation to drive_init blockdev: Move bus/unit/index processing to drive_init blockdev: Move parsing of 'boot' option to drive_init blockdev: Moving parsing of geometry options to drive_init blockdev: Move parsing of 'if' option to drive_init blockdev: Move parsing of 'media' option to drive_init blockdev: Pass QDict to blockdev_init() blockdev: Separate ID generation from DriveInfo creation blockdev: 'blockdev-add' QMP command blockdev: Introduce DriveInfo.enable_auto_del qapi-types/visit.py: Inheritance for structs qapi-types/visit.py: Pass whole expr dict for structs ... Message-id: 1381503951-27985-1-git-send-email-kwolf@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 34eeb82de65ce9f83081a3357b0afe80a6a1d86a Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Oct 11 14:02:11 2013 +0200 qemu-iotests: Add test for inactive L2 overlap Extend 060 by a test which creates a corrupted image with an active L2 entry pointing to an inactive L2 table and writes to the corresponding guest offset. Also, use overlap-check=all for all tests in 060. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b543c5cdcb818ffed90cfc97aa8e297214650d84 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Oct 11 14:02:10 2013 +0200 qemu-io: Let "open" pass options to block driver Add an option to the open command to specify runtime options for the block driver used. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 899f1ae219d5eaa96a53c996026cb0178d62a86d Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Oct 11 19:48:29 2013 +0800 vmdk: Fix vmdk_parse_extents An extra 'p++' after while loop when *p == '\n' will move p to unknown data position, risking parsing junk data or memory access violation. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b681072d2005911b79835d2a6af208eba3983a48 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Sep 20 11:33:11 2013 +0200 blockdev: blockdev_init() error conversion This gives us meaningful error messages for the blockdev-add QMP command. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 0ebd24e0a203cf2852c310b59fbe050190dc6c8c Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Sep 19 15:12:18 2013 +0200 blockdev: Don't disable COR automatically with blockdev-add If a read-only device is configured with copy-on-read=on, the old code only prints a warning and automatically disables copy on read. Make it a real error for blockdev-add. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit e34ef046412431acf5b4e30762390b4048187bb8 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Sep 19 14:24:10 2013 +0200 blockdev: Remove 'media' parameter from blockdev_init() The remaining users shouldn't be there with blockdev-add and are easy to move to drive_init(). Bonus bug fix: As a side effect, CD-ROM drives can now use block drivers on the read-only whitelist without explicitly specifying read-only=on, even if a format is explicitly specified. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit a9b43397a9782d028f45b63fb4affee164f85948 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Sep 18 16:47:41 2013 +0200 qemu-iotests: Check autodel behaviour for device_del Block devices creates with -drive and drive_add should automatically disappear if the guest device is unplugged. blockdev-add ones shouldn't. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 4f8a066b5fc254eeaabbbde56ba4f5b29cc68fdf Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Sep 13 15:51:47 2013 +0200 blockdev: Remove IF_* check for read-only blockdev_init IF_NONE allows read-only, which makes forbidding it in this place for other types pretty much pointless. Instead, make sure that all devices for which the check would have errored out check in their init function that they don't get a read-only BlockDriverState. This catches even cases where IF_NONE and -device is used. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 394c7d4d6bd06386308e2fef0cf1c613a10e0d23 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Sep 13 14:09:17 2013 +0200 blockdev: Move virtio-blk device creation to drive_init Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 87a899c5090c7864fc7dcff3ea0ac34153ea621b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Sep 10 15:48:13 2013 +0200 blockdev: Move bus/unit/index processing to drive_init This requires moving the automatic ID generation at the same time, so let's do that as well. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 26929298023b0592dc6ac8bc15163b5a24341670 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Sep 9 17:01:03 2013 +0200 blockdev: Move parsing of 'boot' option to drive_init It's already ignored and only prints a deprecation message. No use in making it available in new interfaces. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit b41a7338cfdeeb913ee4846d79a3f7e221350aed Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Sep 9 16:49:49 2013 +0200 blockdev: Moving parsing of geometry options to drive_init This moves all of the geometry options (cyls/heads/secs/trans) to drive_init so that they can only be accessed using legacy functions, but never with anything blockdev-add related. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 593d464bd43900c2a0c8800b76212f6a93e99a0d Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Aug 28 17:24:51 2013 +0200 blockdev: Move parsing of 'if' option to drive_init It's always IF_NONE for blockdev-add. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 33cb7dc8b7a26ccdff2f054056d3f2e487cbb4cd Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Aug 28 17:00:13 2013 +0200 blockdev: Move parsing of 'media' option to drive_init This moves as much as possible of the processing of the 'media' option to drive_init so that it can only be accessed using legacy functions, but never with anything blockdev-add related. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit f298d071662af6cf5dc221ee3e3bd0154035e570 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Sep 10 12:01:20 2013 +0200 blockdev: Pass QDict to blockdev_init() Working on a QDict instead of a QemuOpts that accepts anything is more in line with bdrv_open(). A QDict is what qmp_blockdev_add() already has anyway, so this saves additional conversions. And last, but not least, it allows later patches to easily extract legacy options into a separate, typed QemuOpts for drive_init() (the untyped QemuOpts that drive_init already has doesn't allow access to numbers, only strings, and is therefore useless without conversion). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 326642bc7f0ff95a0c08db527861a9a114a109da Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Jul 11 12:52:34 2013 +0200 blockdev: Separate ID generation from DriveInfo creation blockdev-add shouldn't automatically generate IDs, but will keep most of the DriveInfo creation code. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit d26c9a15738147a8dccc451c6f6d1ddc2305713d Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Sep 23 15:26:03 2013 +0200 blockdev: 'blockdev-add' QMP command For examples see the changes to qmp-commands.hx. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2d246f01d374c1a10c48c45aa931aa18f0a56634 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Sep 18 15:14:47 2013 +0200 blockdev: Introduce DriveInfo.enable_auto_del BlockDriverStates shouldn't be affected by an unplugged guest device, except if created with the legacy -drive command line option or the drive_add HMP command. Make the automatic deletion as well as cancelling of jobs conditional on an enable_auto_del boolean that is only set in drive_init(). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> commit 622f557f5aaea1326c94ca4cddfa4eafeade3723 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Sep 19 11:56:36 2013 +0200 qapi-types/visit.py: Inheritance for structs This introduces a new 'base' key for struct definitions that refers to another struct type. On the JSON level, the fields of the base type are included directly into the same namespace as the fields of the defined type, like with unions. On the C level, a pointer to a struct of the base type is included. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 14d36307ffdf949df9c1dd7f435e138b36f63bb0 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Sep 18 17:22:02 2013 +0200 qapi-types/visit.py: Pass whole expr dict for structs Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 52c8d629cac27ad16dd51507b4733d46fa4efc55 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Oct 11 15:43:23 2013 +0800 vmdk: refuse enabling zeroed grain with flat images This is a header flag and we needs sparse for the header. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4823970bcb882cd5b7e9c9a21fa6573190035050 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Oct 11 15:43:22 2013 +0800 vmdk: convert error code to use errp Convert "fprintf(stderr,..." and standardize error messages: Remove a few local_error's and use errp. Remove "VMDK:" or "Vmdk:" prefixes in error message and fix to upper case. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2cdfb12332e885c8ce36f520d2a2a9200101e183 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Thu Sep 26 08:42:56 2013 +0800 build: add command check-clean This command will package the clean operations in tests. Now root Makefile simply calls the command and do not care the details of it any more. Original the built binaries for test will not be removed, now they will be deleted in clean operation. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 22ee5a557acc820109a9948620a26f66e4fa3a8f Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Thu Sep 26 08:42:55 2013 +0800 tests: build the helper program by default Usually we may configure and make, then goto ./tests/qemu-iotest, check. In this case an error will happen since helper program was not built. This patch simply build it by default. A better way may be introducing Makefile in ./tests/qemu-iotest, but it is more complicate to handle out of tree case, and a bit overkill for a single file now, we can do that when more files come. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e428e439df4d92ac42cb913a1dd19b86155eae86 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Oct 11 11:37:01 2013 +0200 block/raw-posix: Employ error parameter Make use of the error parameter in the opening and creating functions in block/raw-posix.c. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 5dd75f9afbea2e4e370c96676d34676e6f6b95b7 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Oct 11 14:59:49 2013 +0800 qemu-iotests: move blank lines of output in case 059 Move the blank line to above the test step banner, so it looks clearer in blocks. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit ca2884087a36c60d592aa0e8e327bf1579972077 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 15:44:04 2013 +0200 blkverify: Employ error parameter Make use of the error parameter in blkverify_open. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 10ffa72faed7e02805d7911d58d429efe6f95f93 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 15:44:03 2013 +0200 blkdebug: Employ error parameter Make use of the error parameter in blkdebug_open. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c6252b7cea0dfa893cf1f49de3a58f222e910783 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 15:44:02 2013 +0200 block/raw-win32: Employ error parameter Make use of the error parameter in the opening and creating functions in block/raw-win32.c. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 92f1deec317230575726a8e0ab5c110781d30ec0 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 15:44:00 2013 +0200 block/raw_bsd: Employ error parameter Propagate errors in raw_create rather than directly reporting and afterwards discarding them. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1fa5cc839aa6068c9182ad8d611f844c58f95f42 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 11:09:28 2013 +0200 qcow2: Evaluate overlap check options Evaluate the runtime overlap check options and set BDRVQcowState.overlap_check appropriately. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4a273c398b0c96985d56fed8156e19876b2e3c9e Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 11:09:27 2013 +0200 qcow2: Add more overlap check bitmask macros Introduces the macros QCOW2_OL_CONSTANT and QCOW2_OL_ALL in addition to the already existing QCOW2_OL_CACHED, signifying all metadata overlap checks that can be performed in constant time (regardless of image size etc.) and truly all available overlap checks, respectively. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4092e99d935fe26fd53631cc9e170f9a19e3ee4a Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 11:09:26 2013 +0200 qcow2: Array assigning options to OL check bits Add an array which assigns the option string to its corresponding overlap check bit. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 05de7e86cab3ed3830de38b38b39bbc711bc1158 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 11:09:25 2013 +0200 qcow2: Add overlap-check options Add runtime options to tune the overlap checks to be performed before write accesses. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3e3553905cfc814d59de6d1a634c3a991b2a9257 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 11:09:24 2013 +0200 qcow2: Make overlap check mask variable Replace the QCOW2_OL_DEFAULT macro by a variable overlap_check in BDRVQcowState. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 231bb267644ee3a9ebfd9c7f42d5d41610194b45 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 11:09:23 2013 +0200 qcow2: Use negated overflow check mask In qcow2_check_metadata_overlap and qcow2_pre_write_overlap_check, change the parameter signifying the checks to perform from its current positive form to a negative one, i.e., it will no longer explicitly specify every check to perform but rather a mask of checks not to perform. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8f94a6e40e46cbc8e8014da825d25824b1803b34 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Oct 10 11:45:55 2013 +0200 block: Improve driver whitelist checks The main intent of this patch is to consolidate the whitelist checks to a single point in the code instead of spreading it everywhere. This adds a nicer error message for read-only whitelisting, too, in places where it was still missing. The patch also contains a bonus bug fix: By finding the format first in bdrv_open() and then independently checking against the whitelist only later, we avoid the case that use of a non-whitelisted format results in probing rather than an error message. Previously, this could happen when using the driver=... option. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> commit 00c49b21e7af1dd8d2167c1b019619ac186dad14 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 14:42:47 2013 +0200 qcow2: Use better type for numerical snapshot ID When trying to find a new snapshot ID, the existing ones are converted to integers using strtoul. This function returns an unsigned long, therefore its result should be saved in an unsigned long as well. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 84757f7e67cda3df8b04e06fbdeecc266415d2f3 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 14:42:00 2013 +0200 qcow2: Fix snapshot restoration in snapshot_create If the new snapshot table could not be written in qcow2_snapshot_create, the old snapshot table has to be restored in memory and the new one released. This should include restoration of the old snapshot count as well, which is added by this patch. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f9bff971436b5924ca3c3203c6a3dcd6437bd430 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 14:41:28 2013 +0200 qcow2: Remove wrong metadata overlap check In qcow2_write_compressed, if the compression fails, a normal cluster is written to disk. This is done through bdrv_write on the qcow2 BDS itself (using the guest offset), thus it is wrong to do a metadata overlap check before. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9e3f08923a14ba0655c6797edd9ffef44bb8cbf2 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 14:40:48 2013 +0200 qcow2: Add missing space in error message The error message in qcow2_downgrade about an unsupported refcount order is missing a space. This patch adds it. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 89e911816a1d5cdbc9480d5464c571d216cf5ea8 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Fri Sep 27 08:48:15 2013 -0400 block: qemu-iotests for vhdx, read sample dynamic image This adds the VHDX format to the qemu-iotests format, and adds a read test. The test reads from an existing sample image, that was created with Hyper-V under Windwos Server 2012. The image file is a 1GB dynamic image, with 32MB blocks. The pattern 0xa5 exists from 0MB-33MB (past a block size boundary) The pattern 0x96 exists from 33MB-66MB (past another block boundary, and leaving a partial blank block) From 66MB-1024MB, all reads should return 0. Although 1GB dynamic image with 66MB of data, the bzip2'ed image file size is only 874 bytes. This also adds in the IMGFMT_GENERIC flag, so r/o images can be tested (e.g. ./check -vhdx) without failing tests that assume r/w support. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 13164591f30ad95ae24f9892cf2caf779271a29b Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Sep 29 00:09:35 2013 +0300 ahci: set ahci mode on reset ATM we set AHCI mode on 1st GHC write. Spec says we should set it on reset. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 975a93c082452db9aa1397a797ca8f13ba367393 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 12:07:33 2013 +0200 qemu-iotests: Discard preallocated zero clusters Add a new test case for discarding preallocated zero clusters; doing this should not result in any leaks. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f6186f49e2c98d91f22027d8c62996df4fcf3f92 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Wed Oct 2 14:33:48 2013 +0200 block: Add BlockDriver.bdrv_check_ext_snapshot. This field is used by blkverify to disable external snapshots creation. It will also be used by block filters like quorum to disable external snapshot creation. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 92bc50a5ad7fbc9a0bd17240eaea5027a100ca79 Author: Peter Lieven <pl@xxxxxxx> Date: Tue Oct 8 14:43:14 2013 +0200 block/get_block_status: avoid redundant callouts on raw devices if a raw device like an iscsi target or host device is used the current implementation makes a second call out to get the block status of bs->file. Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 88fb15351284868b70fa1d5b101e809057fcc5aa Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:51:06 2013 +0200 qcow2: Assert against snapshot name/ID overflow qcow2_write_snapshots relies on the length of every snapshot ID and name fitting into an unsigned 16 bit integer. This is currently ensured by QEMU through generally only allowing 128 byte IDs and 256 byte names. However, if this should change in the future, the length written to the image file should not be silently truncated (though the name itself would be written completely). Since this is currently not an issue but might require attention due to internal QEMU changes in the future, an assert ensuring sanity is enough for now. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9186ad9658cc597937fbc03ad66bceb3a0515d99 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:51:05 2013 +0200 qcow2: Free allocated snapshot table on error If an error occurs during qcow2_write_snapshots, the newly allocated snapshot table clusters are leaked and should thus be freed. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 37d41f0a04e5017d37906728a806d7944e867a2a Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:51:04 2013 +0200 qcow2: Always use error path on writing snapshots qcow2_write_snapshots does contain a fail label and there is no reason not to use it on some errors; therefore, we should always jump there on error. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8f730dd24edd2576ecbd596de7ea4361296b129c Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:44:28 2013 +0200 qcow2: Free preallocated zero clusters In qcow2_free_any_clusters, preallocated zero clusters should be freed just as normal clusters are. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 998b959c1e59044f5d5f64c482f4ce8facc8e0bc Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:42:56 2013 +0200 qcow2: Use pread for inactive L1 in overlap check Currently, qcow2_check_metadata_overlap uses bdrv_read to read inactive L1 tables from disk. The number of sectors to read is calculated through a truncating integer division, therefore, if the L1 table size is not a multiple of the sector size, the final entries will not be read and their entries in memory remain undefined (from the g_malloc). Using bdrv_pread fixes this. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f252080453ec081ba653bba4e0c1ca86c52cf19f Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:34:10 2013 +0200 qcow2: Alignment of snapshot table entries The qcow2 specification does not explicitly state so far that every snapshot table entry is aligned to 8 bytes. QEMU, in contrast, does this alignment, thus it should be properly documented (which this patch does). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3677e6f6252542cbab85674d97d051d95e91693b Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:46:20 2013 +0200 qemu-iotests: Additional info from qemu-img info Add a test for the additional information now provided by qemu-img info when used on qcow2 images. It also tests the qemu QMP output from the query-block command when running qemu with different runtime options than specified in the image (ImageInfoSpecific should always refer to the image). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4c2e946500c45685fdec61b3d929311dc26a2ad5 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:46:19 2013 +0200 qemu-iotests: Discard specific info in _img_info In _img_info, filter out additional information specific to the image format provided by qemu-img info, since tests designed for multiple image formats would produce different outputs for every image format otherwise. In a human-readable dump, that new information will always be last for each "image information block" (multiple blocks are emitted when inspecting the backing file chain). Every block is separated by an empty line. Therefore, in this case, everything starting with the line "Format specific information:" up to that empty line (or EOF, if it is the last block) has to be stripped. The JSON dump will always emit pretty JSON data. Therefore, the opening and closing braces of every object will be on lines which are indented by exactly the same amount, and all lines in between will have more indentation. Thus, in this case, everything starting with a line matching the regular expression /^ *"format-specific": {/ until /^ *},?/ has to be stripped, where the number of spaces at the beginning of the respective lines is equal. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 37764dfb71c4d0d058b71ba33340c6beab7d5a66 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:46:18 2013 +0200 qcow2: Add support for ImageInfoSpecific Add a new ImageInfoSpecificQCow2 type as a subtype of ImageInfoSpecific. This contains the compatibility level as a string and an optional lazy_refcounts boolean (optional means mandatory for compat >= 1.1 and not available for compat == 0.10). Also, add qcow2_get_specific_info, which returns this information. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a8d8ecb77fc16da49ea2c1edae267dc9d0c01dfd Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:46:17 2013 +0200 block/qapi: Human-readable ImageInfoSpecific dump Add a function for generically dumping the ImageInfoSpecific information in a human-readable format to block/qapi.c. Use this function in bdrv_image_info_dump and qemu-io-cmds.c:info_f to allow qemu-img info resp. qemu-io -c info to print that format specific information. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit eae041fe6f4314962e873615134eefb32cf8ba61 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:46:16 2013 +0200 block: Add bdrv_get_specific_info Add a function for retrieving an ImageInfoSpecific object from a block driver. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f2bb8a8a47597634b74c161c44b9980c7f4e50ac Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:46:15 2013 +0200 qapi: Add ImageInfoSpecific type Add a new type ImageInfoSpecific as a union for image format specific information in ImageInfo. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 79e14bf7782d861d3d773a67680de07a8f354f4e Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Oct 8 17:29:40 2013 +0800 qapi: make use of new BlockJobType Switch the string to enum type BlockJobType in BlockJobDriver. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2cb5b22286a7546226d9e9363aaee543fcba6b61 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Oct 8 17:29:39 2013 +0800 qapi: Introduce enum BlockJobType This will replace the open coded block job type string for mirror, commit and backup. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3fc4b10af09b75a1cb811b61abc9d8c90771dfb2 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Oct 8 17:29:38 2013 +0800 blockjob: rename BlockJobType to BlockJobDriver We will use BlockJobType as the enum type name of block jobs in QAPI, rename current BlockJobType to BlockJobDriver, which will eventually become a set of operations, similar to block drivers. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 867b3201a333e35a91bea9febc66cce689a765c4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 4 11:45:20 2013 -0700 exec: Add both big- and little-endian memory helpers Step three in the transition: helpers not tied to the target "default" endianness. To be used when the guest uses a memory operation with non-default endianness. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f713d6ad7b9f52129695d5e3e63541abcd0375c0 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 4 08:11:05 2013 -0700 tcg: Add qemu_ld_st_i32/64 Step two in the transition, adding the new ldst opcodes. Keep the old opcodes around until all backends support the new opcodes. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 39c153b80f890dc5f02465dc59992e195abd5f40 Merge: e8f2f59 51fb256 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Oct 10 13:16:25 2013 -0700 Merge remote-tracking branch 'afaerber/tags/qom-cpu-for-anthony' into staging QOM CPUState refactorings / X86CPU * Fix for X86CPU model field of qemu32/qemu64 CPU models * Bug fix for longjmp on FreeBSD * Removal of unused function * Confinement of clone syscall infrastructure to linux-user # gpg: Signature made Wed 09 Oct 2013 03:40:51 AM PDT using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Andreas Färber (2) and others # Via Andreas Färber * afaerber/tags/qom-cpu-for-anthony: cpu: Drop cpu_model_str from CPU_COMMON cpu: Move cpu_copy() into linux-user cputlb: Remove dead function tlb_update_dirty() cpu-exec: Also reload CPUClass *cc after longjmp return in cpu_exec() target-i386: Set model=6 on qemu64 & qemu32 CPU models commit e8f2f59aaf2978641b7e073ba623bd4b4a9e864d Merge: 88b70e5 386a5a1 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Oct 10 13:16:02 2013 -0700 Merge remote-tracking branch 'amit/char-remove-watch-on-unplug' into staging # By Amit Shah # Via Amit Shah * amit/char-remove-watch-on-unplug: char: remove watch callback on chardev detach from frontend char: use common function to disable callbacks on chardev close char: move backends' io watch tag to CharDriverState Message-id: 20131004154802.GA25646@xxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 88b70e56b969142c88f240434f392b9348600ef5 Merge: e572398 c236f45 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Oct 10 13:15:46 2013 -0700 Merge remote-tracking branch 'otubo/seccomp' into staging # By Eduardo Otubo # Via Eduardo Otubo * otubo/seccomp: seccomp: fine tuning whitelist by adding times() Message-id: 1380047458-21673-1-git-send-email-otubo@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit e572398de14c2173d5701d1f7771689764356b68 Merge: f2c6bcf ad98acb Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Oct 10 13:00:03 2013 -0700 Merge remote-tracking branch 'mcayland/qemu-openbios' into staging * mcayland/qemu-openbios: Update OpenBIOS images Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0106dc4f05231b44f54fae5d0ee42031298588bd Author: Mark Wu <wudxw@xxxxxxxxxxxxxxxxxx> Date: Wed Oct 9 10:37:26 2013 +0800 qemu-ga: Extend 'guest-info' command to expose flag 'success-response' Now we have several qemu-ga commands not returning response on success. It has been documented in qga/qapi-schema.json already. This patch exposes the 'success-response' flag by extending 'guest-info' command. With this change, the clients can handle the command response more flexibly. Signed-off-by: Mark Wu <wudxw@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> *fixed up commit subject Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 8dc4d915dd6ea347a47557f5aa75a648555fe253 Author: Mark Wu <wudxw@xxxxxxxxxxxxxxxxxx> Date: Wed Oct 9 11:25:07 2013 +0800 qemu-ga: Add interface to traverse the qmp command list by QmpCommand In the original code, qmp_get_command_list is used to construct a list of all commands' name. To get the information of all qga commands, it traverses the name list and search the command info with its name. So it can cause O(n^2) in the number of commands. This patch adds an interface to traverse the qmp command list by QmpCommand to replace qmp_get_command_list. It can decrease the complexity from O(n^2) to O(n). Signed-off-by: Mark Wu <wudxw@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> *fix up commit subject Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit e5d9adbdab972a2172815c1174aed3fabcc448f1 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Tue Oct 1 17:09:53 2013 -0400 qemu-ga: execute fsfreeze-freeze in reverse order of mounts Currently, fsfreeze-freeze may cause deadlock if a guest has loopback mounts of image files in its disk; e.g.: # mount | grep ^/ /dev/vda1 / type ext4 (rw,noatime,seclabel,data=ordered) /tmp/disk.img on /mnt type ext4 (rw,relatime,seclabel) To avoid the deadlock, this freezes filesystems in reverse order of mounts. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> *fix up commit msg Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 6c5f4ead649dd876c5762c468b205563288d5ecd Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 3 13:52:19 2013 -0700 tcg: Add TCGMemOp Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ec9135cd6e5e448a3a5c1d75cac611c655ebb3d5 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Oct 3 14:58:00 2013 -0500 configure: Remove CONFIG_QEMU_LDST_OPTIMIZATION No longer used. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 9ecefc84dd12af07394575a75f0689dc748eea78 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Oct 3 14:51:24 2013 -0500 tcg: Add tcg-be-ldst.h Move TCGLabelQemuLdst and related stuff out of tcg.h. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3cf246f0d402fdb80bfa2b3c0a20131f394c349d Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Oct 3 14:04:46 2013 -0500 tcg: Add tcg-be-null.h This is a no-op backend data implementation, for those targets that are not currently using the load/store optimization path. This is prepatory to always requiring these functions in all backends. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit dbdbe0cd3124a3e9afa2d1c11da7c6476097bb9d Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 3 14:24:58 2013 -0700 exec: Delete is_tcg_gen_code and GETRA_EXT All implementations now boil down to GETRA. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 023261ef851b22a04f6c5d76da870051031757a6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Oct 1 13:47:38 2013 -0700 tcg-aarch64: Update to helper_ret_*_mmu routines A minimal update to use the new helpers with the return address argument. Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 84fd9dd3f78ced9d41e1160d43862bb620cb462a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 16:44:31 2013 -0700 tcg: Merge tcg_register_helper into tcg_context_init Eliminates the repeated checks for having created the s->helpers hash table. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4953ee62711bd11a55e58b26c8c71b302198363c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 16:06:50 2013 -0700 tcg: Add tcg-runtime.c helpers to all_helpers For the few targets that actually use these, we'd not report them symbolicly in the tcg opcode logs. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 100b5e0170e86661aaf830869be930a1a201ed08 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 15:57:22 2013 -0700 tcg: Put target helper data into an array. One call inside of a loop to tcg_register_helper instead of hundreds of sequential calls. Presumably more icache and branch prediction friendly; resulting binary size mostly unchanged on x86_64, as we're trading 32-bit rip-relative references in .text for full 64-bit pointers in .rodata. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f5daeec412b9624ba902bdba26edff88a1694ea6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 15:38:30 2013 -0700 tcg: Remove stray semi-colons from target-*/helper.h During GEN_HELPER=1, these are actually stray top-level semi-colons which are technically invalid ISO C, but GCC accepts as an extension. If we added enough __extension__ markers that we could dare use -Wpedantic, we'd see warning: ISO C does not allow extra â??;â?? outside of a function This will become a hard error in the next patch, wherein those ; will appear in the middle of a data structure. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5cd8f6210f83db15702e81b91e40e7079608e6f3 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 15:09:39 2013 -0700 tcg: Move helper registration into tcg_context_init No longer needs to be done on a per-target basis. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e5e84d22a3c31a674f9bb1d9ffcb92c111e13421 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 14:41:34 2013 -0700 target-m68k: Rename helpers.h to helper.h This brings the m68k target in line with all other targets. Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6e085f72c6d331fb0e9fc69e3061cd1e5893d9e4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 14:37:06 2013 -0700 tcg: Use a GHashTable for tcg_find_helper Slightly changes the interface, in that we now return name instead of a TCGHelperInfo structure, which goes away. Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7c57df0d852a9a9faf9068ff235886c8b28b113e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 14:29:35 2013 -0700 tcg: Delete tcg_helper_get_name declaration The function was deleted in 4dc81f2822187f4503d4bdb76785cafa5b28db0b. Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 802b5081233a6b643a8b135a5facaf14bafaa77d Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 25 12:11:31 2013 -0700 tcg-hppa: Remove tcg backend Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f2c6bcfc2e15e1dc5c69c3e579ff2063068ecb85 Merge: 634ebf4 33876df Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Oct 10 10:03:38 2013 -0700 Merge remote-tracking branch 'sstabellini/xen-2013-10-10' into staging # By Matthew Daley (1) and Roger Pau Monné (1) # Via Stefano Stabellini * sstabellini/xen-2013-10-10: qemu/xen: make use of xenstore relative paths xen_disk: mark ioreq as mapped before unmapping in error case commit 634ebf4b177723f2cf329a719f31913cf9ce5de6 Merge: c4ca690 8464243 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Oct 10 10:03:00 2013 -0700 Merge remote-tracking branch 'bonzini/scsi-next' into staging # By Asias He (1) and Peter Lieven (1) # Via Paolo Bonzini * bonzini/scsi-next: scsi: Allocate SCSITargetReq r->buf dynamically [CVE-2013-4344] block/iscsi: reenable iscsi_co_get_block_status Message-id: 1381332391-8781-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit c4ca6901582c00a2d13368520779e4948b184071 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Oct 10 09:56:25 2013 -0700 Update email address Amazon is now funding my work as QEMU maintainer so update addresses accordingly. Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 33876dfad64bc481f59c5e9ccf60db78624c4b93 Author: Roger Pau Monné <roger.pau@xxxxxxxxxx> Date: Thu Oct 10 14:25:52 2013 +0000 qemu/xen: make use of xenstore relative paths Qemu has several hardcoded xenstore paths that are only valid on Dom0. Attempts to launch a Qemu instance (to act as a userspace backend for PV disks) will fail because Qemu is not able to access those paths when running on a domain different than Dom0. Instead make the xenstore paths relative to the domain where Qemu is actually running. Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Reviewed-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx> commit a76f48e53382e6f039db6278443e3ce437653302 Author: Matthew Daley <mattjd@xxxxxxxxx> Date: Thu Oct 10 14:10:48 2013 +0000 xen_disk: mark ioreq as mapped before unmapping in error case Commit 4472beae modified the semantics of ioreq_{un,}map so that they are idempotent if called when they're not needed (ie., twice in a row). However, it neglected to handle the case where batch mapping is not being used (the default), and one of the grants fails to map. In this case, ioreq_unmap will be called to unwind and unmap any mappings already performed, but ioreq_unmap simply returns due to the aforementioned change (the ioreq has not already been marked as mapped). The frontend user can therefore force xen_disk to leak grant mappings, a per-domain limited resource. Fix by marking the ioreq as mapped before calling ioreq_unmap in this situation. Signed-off-by: Matthew Daley <mattjd@xxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 846424350b292f16b732b573273a5c1f195cd7a3 Author: Asias He <asias@xxxxxxxxxx> Date: Wed Oct 9 15:41:03 2013 +0800 scsi: Allocate SCSITargetReq r->buf dynamically [CVE-2013-4344] r->buf is hardcoded to 2056 which is (256 + 1) * 8, allowing 256 luns at most. If more than 256 luns are specified by user, we have buffer overflow in scsi_target_emulate_report_luns. To fix, we allocate the buffer dynamically. Signed-off-by: Asias He <asias@xxxxxxxxxx> Tested-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit a107170537abdfec7221c1e0d424c82f5faf2ebe Merge: 80dfc87 d4cea8d Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Oct 9 07:54:42 2013 -0700 Merge remote-tracking branch 'stefanha/block' into staging # By Max Reitz (5) and others # Via Stefan Hajnoczi * stefanha/block: block: use correct filename qemu-iotests: Correct 026 output qcow2: Free allocated L2 cluster on error qcow2: Switch L1 table in a single sequence block: vhdx - add migration blocker block: use correct filename for error report qcow2: CHECK_OFLAG_COPIED is obsolete qcow2: Correct endianness in overlap check Message-id: 1381145289-6591-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 80dfc87394ed10f47918299a5192f337a85333d8 Merge: 576e81b 387eede Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Oct 9 07:54:20 2013 -0700 Merge remote-tracking branch 'mjt/trivial-patches' into staging # By Stefan Weil (5) and others # Via Michael Tokarev * mjt/trivial-patches: migration: Fix compiler warning ('caps' may be used uninitialized) util/path: Fix type which is longer than 8 bit for MinGW hw/9pfs: Fix errno value for xattr functions vl: Clean up unnecessary boot_order complications qemu-char: Fix potential out of bounds access to local arrays pci-ohci: Add missing 'break' in ohci_service_td sh4: Fix serial line access for Linux kernels later than 3.2 hw/alpha: Fix compiler warning (integer constant is too large) target-i386: Fix compiler warning (integer constant is too large) block: Remove unused assignment (fixes warning from clang) exec: cleanup DEBUG_SUBPAGE tests: Fix schema parser test for in-tree build tests: Update .gitignore for test-int128 and test-bitops .gitignore: ignore tests/qemu-iotests/socket_scm_helper Message-id: 1381051979-25742-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 576e81be39ee195b9fd7c948fed16ed6846cef3a Merge: 9e8f8b1 ee06e23 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Oct 9 07:52:57 2013 -0700 Merge remote-tracking branch 'rth/tcg-arm-pull' into staging # By Richard Henderson # Via Richard Henderson * rth/tcg-arm-pull: tcg-arm: Move the tlb addend load earlier tcg-arm: Remove restriction on qemu_ld output register tcg-arm: Return register containing tlb addend tcg-arm: Move load of tlb addend into tcg_out_tlb_read tcg-arm: Use QEMU_BUILD_BUG_ON to verify constraints on tlb tcg-arm: Use strd for tcg_out_arg_reg64 tcg-arm: Rearrange slow-path qemu_ld/st tcg-arm: Use ldrd/strd for appropriate qemu_ld/st64 Message-id: 1380663109-14434-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 9e8f8b1cd8e1b85dc93c367c4745f9944079a37b Merge: dfe2279 04fd1c7 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Oct 9 07:52:21 2013 -0700 Merge remote-tracking branch 'sweil/mingw' into staging # By Sebastian Ottlik # Via Stefan Weil * sweil/mingw: util: call socket_set_fast_reuse instead of setting SO_REUSEADDR slirp: call socket_set_fast_reuse instead of setting SO_REUSEADDR net: call socket_set_fast_reuse instead of setting SO_REUSEADDR gdbstub: call socket_set_fast_reuse instead of setting SO_REUSEADDR util: add socket_set_fast_reuse function which will replace setting SO_REUSEADDR Message-id: 1380735690-24009-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit dfe22799751818115ed6d36bedc8a55b2026de3a Merge: ce079ab ee6ee83 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Oct 9 07:52:11 2013 -0700 Merge remote-tracking branch 'kraxel/chardev.8' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * kraxel/chardev.8: chardev: handle qmp_chardev_add(KIND_MUX) failure Message-id: 1380708925-6721-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit ce079abb410d685d48c1285bc6749d9b23c78c5c Merge: 0e19885 3df2b8f Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Oct 9 07:50:37 2013 -0700 Merge remote-tracking branch 'sweil/tci' into staging # By Stefan Weil # Via Stefan Weil * sweil/tci: misc: Use new rotate functions bitops: Add rotate functions (rol8, ror8, ...) tci: Add implementation of rotl_i64, rotr_i64 Message-id: 1380137693-3729-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 24c7608a5d973e5d562715998e9887f74deac794 Author: Peter Lieven <pl@xxxxxxx> Date: Wed Oct 2 13:52:08 2013 +0200 block/iscsi: reenable iscsi_co_get_block_status Commit f35c934a accidently disabled iscsi_co_get_block_status for all libiscsi versions. Its not possible to check for enumeration constants in the C preprocessor. This patch changes the check to the preprocessor constant LIBISCSI_FEATURE_IOVECTOR which was introduced shortly after get_lba_status support was added to libiscsi. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit d4cea8dfb99153803164915c7a1109549ad3da9c Author: Dunrong Huang <riegamaths@xxxxxxxxx> Date: Thu Oct 3 01:31:27 2013 +0800 block: use correct filename The content filename point to may be erased by qemu_opts_absorb_qdict() in raw_open_common() in drv->bdrv_file_open() So it's better to use bs->filename. Signed-off-by: Dunrong Huang <riegamaths@xxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5c1fa87708d5f226bfd96e8eef8c905fb6895ae3 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 2 16:45:31 2013 +0200 qemu-iotests: Correct 026 output Because l2_allocate now frees the unused L2 cluster on error, the according test cases in 026 don't result in one leaked cluster anymore. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e3b21ef9e016e6d91fd71e44af5e23fb359e18f9 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Sep 25 16:37:19 2013 +0200 qcow2: Free allocated L2 cluster on error If an error occurs in l2_allocate, the allocated (but unused) L2 cluster should be freed. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 51fb256ab5ebc3e1879eb1df9c828866a2ef8141 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 2 18:26:11 2013 +0200 cpu: Drop cpu_model_str from CPU_COMMON Since this is only read in cpu_copy() and linux-user has a global cpu_model, drop the field from generic code. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 30ba0ee52d1519b717089782ef1caf0480a01dc3 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 2 17:43:21 2013 +0200 cpu: Move cpu_copy() into linux-user It is only used there and is deemed very fragile if not incorrect in its current memcpy() form. Moving it into linux-user will allow to move parts into target_cpu.h headers and only copy what the ABI mandates. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 812586405c5d165aae791d3806a9bbb8312ec2ac Author: liguang <lig.fnst@xxxxxxxxxxxxxx> Date: Tue Sep 3 15:05:17 2013 +0800 cputlb: Remove dead function tlb_update_dirty() Signed-off-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 6c78f29a2424622bfc9c30dfbbc13404481eacb6 Author: Juergen Lock <qemu-l@xxxxxxxxxxxxxxxxxx> Date: Thu Oct 3 16:09:37 2013 +0200 cpu-exec: Also reload CPUClass *cc after longjmp return in cpu_exec() Local variable CPUClass *cc needs to be reloaded after return from longjmp, too. (This fixes a mips-softmmu crash observed on FreeBSD when QEMU is built with clang.) Reported-by: Dimitry Andric <dim@xxxxxxxxxxx> Signed-off-by: Juergen Lock <nox@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 387eedebf60a463ba30833588f10123da296ba4d Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Sat Oct 5 13:18:28 2013 +0400 migration: Fix compiler warning ('caps' may be used uninitialized) Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> commit ddd23638d7eebd7419148ba8db65f0d53a1920ab Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Oct 2 22:40:29 2013 +0200 util/path: Fix type which is longer than 8 bit for MinGW While dirent->d_type is 8 bit for most systems, it is 32 bit for MinGW. Reducing it to 8 bit results in a compiler warning because the macro is_dir_maybe compares that 8 bit value with 32 bit constants. Using 'unsigned' instead of 'unsigned char' matches the declaration for MinGW and does not harm the other systems. MinGW-w64 is not affected: it does not declare d_type. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 8af00205445eb901f17ca5b632d976065187538e Author: Daniel P. Berrange <berrange@xxxxxxxxxx> Date: Tue Oct 1 12:28:17 2013 +0100 hw/9pfs: Fix errno value for xattr functions If there is no operation driver for the xattr type the functions return '-1' and set errno to '-EOPNOTSUPP'. When the calling code sets 'ret = -errno' this turns into a large positive number. In Linux 3.11, the kernel has switched to using 9p version 9p2000.L, instead of 9p2000.u, which enables support for xattr operations. This on its own is harmless, but for another change which makes it request the xattr with a name 'security.capability'. The result is that the guest sees a succesful return of 95 bytes of data, instead of a failure with errno set to 95. Since the kernel expects a maximum of 20 bytes for an xattr return this gets translated to the unexpected errno ERANGE. This all means that when running a binary off a 9p fs in 3.11 kernels you get a fun result of: # ./date sh: ./date: Numerical result out of range The only workaround is to pass 'version=9p2000.u' when mounting the 9p fs in the guest, to disable all use of xattrs. Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit e3fdc535f25b471e55ac3c8b9f0b504957015bbe Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Tue Oct 1 13:47:22 2013 +0200 vl: Clean up unnecessary boot_order complications Messed up in commit 8281abd. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 49aa4058ac6dd0081aaa45776f07c98df397ca5e Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Mon Sep 30 23:04:49 2013 +0200 qemu-char: Fix potential out of bounds access to local arrays Latest gcc-4.8 supports a new option -fsanitize=address which activates an AddressSanitizer. This AddressSanitizer stops the QEMU system emulation very early because two character arrays of size 8 are potentially written with 9 bytes. Commit 6ea314d91439741e95772dfbab98b4135e04bebb added the code. There is no obvious reason why width or height could need 8 characters, so reduce it to 7 characters which together with the terminating '\0' fit into the arrays. Cc: qemu-stable <qemu-stable@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Alex Bennée <alex@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit b1c50c5f248805be747e96e89efbe784ee99f764 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Oct 4 12:50:51 2013 -0600 vfio-pci: Fix endian issues in vfio_pci_size_rom() VFIO is always little endian so do byte swapping of our mask on the way in and byte swapping of the size on the way out. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Reported-by: Alexey Kardashevskiy <aik@xxxxxxxxx> commit 64fa25a0efcadda6e8197e8ea578f6117d01bb4b Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Oct 4 08:51:36 2013 -0600 vfio-pci: Add dummy PCI ROM write accessor Just to be sure we don't jump off any NULL pointer cliffs. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Reported-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 7174e54cf14290233f4ae3e989ebc7b507636e77 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Mon Sep 30 12:35:13 2013 +0200 kvmvapic: Prevent reading beyond the end of guest RAM rom_state_paddr is guest provided (caller address of outw(VAPIC_PORT) + writen 16-bit value) and can be influenced to point beyond the end of the host memory backing the guest's RAM. Make sure we do not use this pointer to actually read beyond the limits. Reading arbitrary guest bytes is harmless, the guest kernel has to manage access to this I/O port anyway. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit 1d5bf692e55ae22b59083741d521e27db704846d Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Oct 3 09:10:09 2013 -0600 vfio: Fix debug output for int128 values Memory regions can easily be 2^64 byte long and therefore overflow for just a bit but that is enough for int128_get64() to assert. This takes care of debug printing of huge section sizes. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 6ef8263ead779e1eecfaf1e0388f4c3941ea7ec3 Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Thu Oct 3 16:16:14 2013 +0800 target-openrisc: Removes a non-conforming behavior for the first page of the memory Where *software* leaves 0x0000 - 0x2000 unmapped, the hardware should still allow for this area to be mapped. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Signed-off-by: Stefan Kristiansson <stefan.kristiansson@xxxxxxxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> commit bf961b52785061e1802214c9e03a1c65b261f7c1 Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Thu Oct 3 16:04:46 2013 +0800 target-openrisc: Correct handling of page faults. The result of (rw & 0) is always zero and therefore a logic false. The whole comparison will therefore never be executed, it is a obvious bug, we should use !(rw & 1) here. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> commit ad98acb9b1d610c4d243f53d9fb380e500d4abbe Author: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Date: Thu Oct 3 00:04:20 2013 +0100 Update OpenBIOS images Update OpenBIOS images to SVN r1229 built from submodule. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> commit f16f39c3fc973c5d7cbc2224eefb4ef5eb1e64ff Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Wed Oct 2 13:51:00 2013 -0600 vfio-pci: Implement PCI hot reset Now that VFIO has a PCI hot reset interface, take advantage of it. There are two modes that we need to consider. The first is when only one device within the set of devices affected is actually assigned to the guest. In this case the other devices are are just held by VFIO for isolation and we can pretend they're not there, doing an entire bus reset whenever the device reset callback is triggered. Supporting this case separately allows us to do the best reset we can do of the device even if the device is hotplugged. The second mode is when multiple affected devices are all exposed to the guest. In this case we can only do a hot reset when the entire system is being reset. However, this also allows us to track which individual devices are affected by a reset and only do them once. We split our reset function into pre- and post-reset helper functions prioritize the types of device resets available to us, and create separate _one vs _multi reset interfaces to handle the distinct cases above. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 4b351a0f212769deda960da44e299f44d5da0737 Author: Ján Veselý <jano.vesely@xxxxxxxxx> Date: Sat Sep 21 16:26:41 2013 -0400 pci-ohci: Add missing 'break' in ohci_service_td Device communication errors need to be reported to driver. Add a debug message while at it. Signed-off-by: Jan Vesely <jano.vesely@xxxxxxxxx> Acked-by: Gerd Hoffmann <kraxel@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 84faf7c3927ca7f3013362e38c58c02a7e733c0c Author: Guenter Roeck <linux@xxxxxxxxxxxx> Date: Sun Sep 8 00:39:05 2013 -0700 sh4: Fix serial line access for Linux kernels later than 3.2 With Linux kernel version 3.3 or later, qemu fails with the following message: sh_serial: unsupported read from 0x18 Aborted Reported-and-analyzed-by: Rob Landley <rob@xxxxxxxxxxx> Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 9b2caaf40bd667492b4e6228dd3d1f5e44083456 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Sep 29 17:51:20 2013 +0200 hw/alpha: Fix compiler warning (integer constant is too large) From buildbot default_i386_rhel61: CC alpha-softmmu/hw/alpha/typhoon.o hw/alpha/typhoon.c: In function 'typhoon_translate_iommu': hw/alpha/typhoon.c:703: warning: integer constant is too large for 'long' type hw/alpha/typhoon.c:703: warning: integer constant is too large for 'long' type Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Acked-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 00fdef658675ac2d019005769c426c275bceec6f Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Sep 29 17:55:56 2013 +0200 target-i386: Fix compiler warning (integer constant is too large) From buildbot default_i386_rhel61: CC i386-softmmu/target-i386/arch_memory_mapping.o target-i386/arch_memory_mapping.c: In function 'walk_pde': target-i386/arch_memory_mapping.c:110: warning: integer constant is too large for 'long' type Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 3a6f2703268c99f2f2f0a93f2fbacec7b039fd36 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Sep 28 11:55:14 2013 +0200 block: Remove unused assignment (fixes warning from clang) blockdev.c:1929:13: warning: Value stored to 'ret' is never read ret = 0; ^ ~ Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 016e9d62fe66d40eff09d069714f3ccfd2066d79 Author: Amos Kong <akong@xxxxxxxxxx> Date: Fri Sep 27 09:25:38 2013 +0800 exec: cleanup DEBUG_SUBPAGE Touched some error after enabling DEBUG_SUBPAGE. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit d8039e58b1ecfdc9af171502c83e3949f6dafb95 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Tue Sep 24 09:43:39 2013 +0200 tests: Fix schema parser test for in-tree build Commit 4f193e3 added the test, but screwed up in-tree builds (SRCDIR=.): the tests's output overwrites the expected output, and is thus compared to itself. Cc: qemu-stable@xxxxxxxxxx Reported-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 8fbf47c3a8a7f37a11268a07290d20a325ba4cb6 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Wed Oct 2 12:52:38 2013 -0600 vfio-pci: Cleanup error_reports Remove carriage returns and tweak formatting for error_reports. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 6f864e6ec8812d5a5525a7861ca599c6bcabdebe Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Wed Oct 2 12:52:38 2013 -0600 vfio-pci: Lazy PCI option ROM loading During vfio-pci initfn, the device is not always in a state where the option ROM can be read. In the case of graphics cards, there's often no per function reset, which means we have host driver state affecting whether the option ROM is usable. Ideally we want to move reading the option ROM past any co-assigned device resets to the point where the guest first tries to read the ROM itself. To accomplish this, we switch the memory region for the option rom to an I/O region rather than a memory mapped region. This has the side benefit that we don't waste KVM memory slots for a BAR where we don't care about performance. This also allows us to delay loading the ROM from the device until the first read by the guest. We then use the PCI config space size of the ROM BAR when setting up the BAR through QEMU PCI. Another benefit of this approach is that previously when a user set the ROM to a file using the romfile= option, we still probed VFIO for the parameters of the ROM, which can result in dmesg errors about an invalid ROM. We now only probe VFIO to get the ROM contents if the guest actually tries to read the ROM. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit befe5176ef7a0004ba23517c97c804e292273635 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Wed Oct 2 12:52:38 2013 -0600 vfio-pci: Test device reset capabilities Not all resets are created equal. PM reset is not very reliable, especially for GPUs, so we might want to opt for a bus reset if a standard reset will only do a D3hot->D0 transition. We can also use this to tell if the standard reset will do a bus reset (if neither has_pm_reset or has_flr is probed, but the device still supports reset). Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit c7679d450ee021eb0826be65e4e018884443643a Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Wed Oct 2 12:52:38 2013 -0600 vfio-pci: Add support for MSI affinity When MSI is accelerated through KVM the vectors are only programmed when the guest first enables MSI support. Subsequent writes to the vector address or data fields are ignored. Unfortunately that means we're ignore updates done to adjust SMP affinity of the vectors. MSI SMP affinity already works in non-KVM mode because the address and data fields are read from their backing store on each interrupt. This patch stores the MSIMessage programmed into KVM so that we can determine when changes are made and update the routes. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 04fd1c789677fe121cb9546c652d088c994477fb Author: Sebastian Ottlik <ottlik@xxxxxx> Date: Wed Oct 2 12:23:16 2013 +0200 util: call socket_set_fast_reuse instead of setting SO_REUSEADDR SO_REUSEADDR should be avoided on Windows but is desired on other operating systems. So instead of setting it we call socket_set_fast_reuse that will result in the appropriate behaviour on all operating systems. Signed-off-by: Sebastian Ottlik <ottlik@xxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit aad1239a7e15f42c0b8a802433582c48417a4541 Author: Sebastian Ottlik <ottlik@xxxxxx> Date: Wed Oct 2 12:23:15 2013 +0200 slirp: call socket_set_fast_reuse instead of setting SO_REUSEADDR SO_REUSEADDR should be avoided on Windows but is desired on other operating systems. So instead of setting it we call socket_set_fast_reuse that will result in the appropriate behaviour on all operating systems. Signed-off-by: Sebastian Ottlik <ottlik@xxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit bcbe92fb080420551125994f3b15c139019da694 Author: Sebastian Ottlik <ottlik@xxxxxx> Date: Wed Oct 2 12:23:14 2013 +0200 net: call socket_set_fast_reuse instead of setting SO_REUSEADDR SO_REUSEADDR should be avoided on Windows but is desired on other operating systems. So instead of setting it we call socket_set_fast_reuse that will result in the appropriate behaviour on all operating systems. An exception to this rule are multicast sockets where it is sensible to have multiple sockets listen on the same ip and port and we should set SO_REUSEADDR on windows. Signed-off-by: Sebastian Ottlik <ottlik@xxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 6669ca13c39a8515cc634695698d3dea5f39be1c Author: Sebastian Ottlik <ottlik@xxxxxx> Date: Wed Oct 2 12:23:13 2013 +0200 gdbstub: call socket_set_fast_reuse instead of setting SO_REUSEADDR SO_REUSEADDR should be avoided on Windows but is desired on other operating systems. So instead of setting it we call socket_set_fast_reuse that will result in the appropriate behaviour on all operating systems. Signed-off-by: Sebastian Ottlik <ottlik@xxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 606600a176c981addcfedb0698f13fd0f2f4446e Author: Sebastian Ottlik <ottlik@xxxxxx> Date: Wed Oct 2 12:23:12 2013 +0200 util: add socket_set_fast_reuse function which will replace setting SO_REUSEADDR If a socket is closed it remains in TIME_WAIT state for some time. On operating systems using BSD sockets the endpoint of the socket may not be reused while in this state unless SO_REUSEADDR was set on the socket. On windows on the other hand the default behaviour is to allow reuse (i.e. identical to SO_REUSEADDR on other operating systems) and setting SO_REUSEADDR on a socket allows it to be bound to a endpoint even if the endpoint is already used by another socket independently of the other sockets state. This can even result in undefined behaviour. Many sockets used by QEMU should not block the use of their endpoint after being closed while they are still in TIME_WAIT state. Currently QEMU sets SO_REUSEADDR for such sockets, which can lead to problems on Windows. This patch introduces the function socket_set_fast_reuse that should be used instead of setting SO_REUSEADDR when fast socket reuse is desired and behaves correctly on all operating systems. As a failure of this function can only be caused by bad QEMU internal errors, an assertion handles these situations. The return value is still passed on, to minimize changes in client code and prevent unused variable warnings if NDEBUG is defined. Signed-off-by: Sebastian Ottlik <ottlik@xxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 0e19885e736938c3f6bd8c139eca00728bb24384 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Oct 2 12:09:12 2013 -0500 Update MAINTAINERS All of Paul's emails are bouncing and he hasn't been active for some time. Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 2560f19f426aceb4f2e809d860b93e7573cb1c4e Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Oct 2 17:54:57 2013 +0200 x86: cpuid: reconstruct leaf 0Dh data The data in leaf 0Dh depends on information from other feature bits. Instead of passing it blindly from the host, compute it based on whether these feature bits are enabled. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit c74f41bbcc83d12787ac42f2c74fc2be54e9f222 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 13 15:55:57 2013 +0200 x86: fix migration from pre-version 12 On KVM, the KVM_SET_XSAVE would be executed with a 0 xstate_bv, and not restore anything. Since FP and SSE data are always valid, set them in xstate_bv at reset time. In fact, that value is the same that KVM_GET_XSAVE returns on pre-XSAVE hosts. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit f8e6a11aecc96e9d8a84f17d7c07019471714e20 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Tue Sep 10 17:48:59 2013 -0300 target-i386: Set model=6 on qemu64 & qemu32 CPU models There's no Intel CPU with family=6,model=2, and Linux and Windows guests disable SEP when seeing that combination due to Pentium Pro erratum #82. In addition to just having SEP ignored by guests, Skype (and maybe other applications) runs sysenter directly without passing through ntdll on Windows, and crashes because Windows ignored the SEP CPUID bit. So, having model > 2 is a better default on qemu64 and qemu32 for two reasons: making SEP really available for guests, and avoiding crashing applications that work on bare metal. model=3 would fix the problem, but it causes CPU enumeration problems for Windows guests[1]. So let's set model=6, that matches "Athlon (PM core)" on AMD and "P2 with on-die L2 cache" on Intel and it allows Windows to use all CPUs as well as fixing sysenter. [1] https://bugzilla.redhat.com/show_bug.cgi?id=508623 Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit fda74f826baec78d685e5a87fd8a95bfb7bb2243 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Sep 30 17:57:21 2013 +0200 qcow2: Switch L1 table in a single sequence Switching the L1 table in memory should be an atomic operation, as far as possible. Calling qcow2_free_clusters on the old L1 table on disk is not a good idea when the old L1 table is no longer valid and the address to the new one hasn't yet been written into the corresponding BDRVQcowState field. To be more specific, this can lead to segfaults due to qcow2_check_metadata_overlap trying to access the L1 table during the free operation. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5641bf405608cc89578fafed8ec689a19046285a Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Tue Oct 1 11:59:20 2013 -0400 block: vhdx - add migration blocker This blocks migration for VHDX image files, until the functionality can be supported. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2fa9aa59cfc472c16309c4e84547aa873423b2f5 Author: Dunrong Huang <riegamaths@xxxxxxxxx> Date: Tue Sep 24 18:14:01 2013 +0800 block: use correct filename for error report The content filename point to will be erased by qemu_opts_absorb_qdict() in raw_open_common() in drv->bdrv_file_open() So it's better to use bs->filename. Signed-off-by: Dunrong Huang <riegamaths@xxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit db0749012b3d1cf655bddb3cc79052a0fd4dc97b Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Sep 30 09:21:07 2013 +0200 qcow2: CHECK_OFLAG_COPIED is obsolete CHECK_OFLAG_COPIED as a parameter to check_refcounts_l1 and check_refcounts_l2 is obselete now, since the OFLAG_COPIED consistency check is actually no longer performed by these functions (but by check_oflag_copied). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1e242b5544a48bc43eca9c637dc91ec06bcf3a31 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Sep 30 08:59:28 2013 +0200 qcow2: Correct endianness in overlap check If an inactive L1 table is loaded from disk, its entries are in big endian and have to be converted to host byte order before using them. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ee06e23051251c00778edf54fb930198df0e873a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 30 09:48:56 2013 -0700 tcg-arm: Move the tlb addend load earlier There are free scheduling slots between the sequence of comparison instructions. This requires changing the register in use to avoid conflict with those compares. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 66c2056fb83b873df0a3a4bda3a679bf53d082a2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 30 09:12:32 2013 -0700 tcg-arm: Remove restriction on qemu_ld output register The main intent of the patch is to allow the tlb addend register to be changed, without tying that change to the constraint. But the most common side-effect seems to be to enable usage of ldrd with the r0,r1 pair. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d3e440bef2783b7b2ebc210a0717c36351506b8c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 30 08:45:53 2013 -0700 tcg-arm: Return register containing tlb addend Preparatory to rescheduling the tlb load, and changing said register. Continues to use R1 for now. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d0ebde228415c6d89ad61270a461717fbb04915c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 30 08:16:00 2013 -0700 tcg-arm: Move load of tlb addend into tcg_out_tlb_read This allows us to make more intelligent decisions about the relative offsets of the tlb comparator and the addend, avoiding any need of writeback addressing. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f2488736371ae902f345cf9270d141f0a6797731 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 28 14:40:52 2013 -0700 tcg-arm: Use QEMU_BUILD_BUG_ON to verify constraints on tlb One of the two constraints we already checked via #if, but the tlb offset distance was only checked at runtime. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e5e2e4a74b75b41f72e1e3b3bac8c2a6b02896c2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 28 11:16:16 2013 -0700 tcg-arm: Use strd for tcg_out_arg_reg64 Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d9f4dde4a6d34f14509664edc262016f21be5aac Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Jul 27 14:09:47 2013 -1000 tcg-arm: Rearrange slow-path qemu_ld/st Use the new helper_ret_*_mmu routines. Use a conditional call to arrange for a tail-call from the store path, and to load the return address for the helper for the load path. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 23bbc25085ceac827e1da9bebead058f436f66a6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Jul 27 08:42:51 2013 -1000 tcg-arm: Use ldrd/strd for appropriate qemu_ld/st64 Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 9dbb52e862458935c250bac9e71d5a87da4e33e9 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Tue Sep 24 09:43:40 2013 +0200 tests: Update .gitignore for test-int128 and test-bitops Forgotten in commit 6046c62 and 3464700. Cc: qemu-stable@xxxxxxxxxx Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit d1c295f5721f206d55315405baa2c299acec7d76 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Sun Sep 22 20:49:19 2013 +0800 .gitignore: ignore tests/qemu-iotests/socket_scm_helper Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Wenchao Xia<xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ee6ee83de29923483b4905b35f18abf5333f6ea9 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Sep 13 12:48:47 2013 +0200 chardev: handle qmp_chardev_add(KIND_MUX) failure Cc: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit a684f3cf9b9b9c3cb82be87aafc463de8974610c Merge: 349cd52 1cf9412 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:15:27 2013 -0500 Merge remote-tracking branch 'kraxel/seabios-1.7.3.2' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * kraxel/seabios-1.7.3.2: update seabios from 1.7.2.2 to 1.7.3.2 Message-id: 1380533055-24960-1-git-send-email-kraxel@xxxxxxxxxx commit 349cd52c708eb7974d4517f40151685e09a069f6 Merge: eb322b8 774e80e Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:15:18 2013 -0500 Merge remote-tracking branch 'kraxel/roms.1' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * kraxel/roms.1: roms: add support for building sgabios roms: enable parallel seabios / seavgabios builds roms: enable ipxe cross builds roms: add rules to build slof roms: rewrite scripts/refresh-pxe-roms.sh roms: parallel ipxe builds roms: build lgplvgabios isavga variant roms: enable parallel builds for 'make lgplvgabios' roms: add 'make clean' Message-id: 1380532378-22138-1-git-send-email-kraxel@xxxxxxxxxx commit eb322b8155120166fa259a8e96040f76ba4fde64 Merge: 4235d77 e26d3e7 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:15:01 2013 -0500 Merge remote-tracking branch 'mst/tags/for_anthony' into staging pc,pci,virtio fixes and cleanups This includes pc and pci cleanups and enhancements, and a virtio-net bugfix related to softmac programming. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Sun 29 Sep 2013 01:51:16 AM CDT using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Michael S. Tsirkin (8) and others # Via Michael S. Tsirkin * mst/tags/for_anthony: smbios: Factor out smbios_maybe_add_str() smbios: Make multiple -smbios type= accumulate sanely smbios: Improve diagnostics for conflicting entries smbios: Convert to QemuOpts smbios: Normalize smbios_entry_add()'s error handling to exit(1) virtio-net: fix up HMP NIC info string on reset pci: remove explicit check to 64K ioport size piix4: disable io on reset piix: use 64 bit window programmed by guest q35: use 64 bit window programmed by guest pci: add helper to retrieve the 64-bit range range: add min/max operations on ranges range: add Range to typedefs q35: make pci window address/size match guest cfg Message-id: 1380437951-21788-1-git-send-email-mst@xxxxxxxxxx commit 4235d77349e93e7157555f20f1892088f55edff4 Merge: 3469a60 6165300 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:14:49 2013 -0500 Merge remote-tracking branch 'kwolf/for-anthony' into staging # By Max Reitz (10) and others # Via Kevin Wolf * kwolf/for-anthony: (30 commits) qcow2: Remove useless count_contiguous_clusters() parameter qcow2: COMPRESSED on count_contiguous_clusters qcow2: count_contiguous_clusters and compression qcow2: Free only newly allocated clusters on error qcow2: Always use error path in l2_allocate qcow2: Don't put invalid L2 table into cache qemu-iotests: Preallocated zero clusters in 061 qcow2: Correct bitmap size in zero expansion qemu-iotests: Quote $TEST_IMG* and $TEST_DIR usage qemu-iotests: Add basic ability to use binary sample images qemu-iotests: fix qmp.py search path block: use DIV_ROUND_UP in bdrv_co_do_readv qcow2: Assert against currently impossible overflow block: qed - use QEMU_PACKED for on-disk structures block: qcow2 - used QEMU_PACKED for on-disk structures block: vpc - use QEMU_PACKED for on-disk structures block: vdi - use QEMU_PACKED for on-disk structures rbd: avoid qemu_rbd_snap_list() memory leaks qdict: Extract qdict_extract_subqdict block: Fix compiler warning (-Werror=uninitialized) ... Message-id: 1380296370-14523-1-git-send-email-kwolf@xxxxxxxxxx commit 3469a60d9f6f7ba6fca3fe0788391f7285ead631 Merge: 28b9d47 594278d Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:14:10 2013 -0500 Merge remote-tracking branch 'sstabellini/xen-2013-09-25' into staging # By Anthony PERARD (2) and Liu, Jinsong (2) # Via Stefano Stabellini * sstabellini/xen-2013-09-25: xen: Enable cpu-hotplug on xenfv machine. xen: Fix vcpu initialization. qemu: Add qemu xen logic for Xen HVM S3 resume qemu: Adjust qemu wakeup Message-id: alpine.DEB.2.02.1309251749180.5498@xxxxxxxxxxxxxxxxxxxxxxx commit 28b9d47db61a96d2630c7ffa6cbfdcdd1536f7cb Merge: 8429d63 7f12d64 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:14:01 2013 -0500 Merge remote-tracking branch 'rth/tcg-ppc-pull' into staging # By Richard Henderson (19) and Paolo Bonzini (2) # Via Richard Henderson * rth/tcg-ppc-pull: (21 commits) tcg-ppc64: Implement CONFIG_QEMU_LDST_OPTIMIZATION tcg-ppc64: Add _noaddr functions for emitting forward branches tcg-ppc64: Streamline tcg_out_tlb_read tcg-ppc64: Implement tcg_register_jit tcg-ppc64: Handle long offsets better tcg-ppc64: Tidy register allocation order tcg-ppc64: Look through a constant function descriptor tcg-ppc64: Fold constant call address into descriptor load tcg-ppc64: Don't load the static chain from TCG tcg-ppc64: Avoid code for nop move tcg-ppc64: Use tcg_out64 tcg-ppc64: Use TCG_REG_Rn constants tcg-ppc64: More use of TAI and SAI helper macros tcg-ppc64: Reformat tcg-target.c tcg-ppc: Fix and cleanup tcg_out_tlb_check tcg-ppc: Use conditional branch and link to slow path tcg-ppc: Cleanup tcg_out_qemu_ld/st_slow_path tcg-ppc: Avoid code for nop move tcg-ppc: use new return-argument ld/st helpers tcg-ppc: fix qemu_ld/qemu_st for AIX ABI ... Message-id: 1380126458-3247-1-git-send-email-rth@xxxxxxxxxxx commit 8429d63b0e5671f112cb4cbf8ab6d697a676ccc4 Merge: d7f0efc d613a56 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:13:43 2013 -0500 Merge remote-tracking branch 'quintela/migration.next' into staging # By Isaku Yamahata (4) and others # Via Juan Quintela * quintela/migration.next: migration: ram_handle_compressed arch_init: make is_zero_page accept size migration: Fix debug print type migration: add version supporting macros for struct pointer rdma: constify ram_chunk_{index, start, end} rdma: clean up of qemu_rdma_cleanup() arch_init: right return for ram_save_iterate savevm: fix wrong initialization by ram_control_load_hook savevm: add comments for qemu_file_get_error() Message-id: 1380024203-25897-1-git-send-email-quintela@xxxxxxxxxx commit d7f0efcb229bc1c3e458c6968efe4a6644f24740 Merge: 1b365b2 19b0dfc Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:13:32 2013 -0500 Merge remote-tracking branch 'kraxel/audio.1' into staging # By Bandan Das (3) and Gerd Hoffmann (1) # Via Gerd Hoffmann * kraxel/audio.1: audio: remove CONFIG_MIXEMU configure option hda-codec: make mixemu selectable at runtime hda-codec: refactor common definitions into a header file audio maintainers update Message-id: 1380011943-15083-1-git-send-email-kraxel@xxxxxxxxxx commit 1b365b2eb629d033b3650acc9f46fc132ef0981c Merge: 53d09b7 6a444f8 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:13:18 2013 -0500 Merge remote-tracking branch 'borntraeger/tags/s390-next-20130924' into staging This is a bunch of fixes/changes for the s390 architecture. It also contains the fixes from the previous pull request, which did not make it yet. Overall it contains - a fix for kexec without kdump (which uses diag308 subcode 0 instead of 1) - several sclp related fixes - some initial sclp migration code - the sclp line mode console - A fix for a boot problem with the virtio ccw ipl bios - zeroed out padding bytes for the notes section of dump-guest-memory - some cleanups # gpg: Signature made Tue 24 Sep 2013 02:18:44 AM CDT using RSA key ID B5A61C7C # gpg: Can't check signature: public key not found # By Christian Borntraeger (6) and others # Via Christian Borntraeger * borntraeger/tags/s390-next-20130924: s390/sclplmconsole: Add support for SCLP line-mode console s390/ebcdic: Move conversion tables to header file s390/eventfacility: allow childs to handle more than 1 event type s390/eventfacility: remove unused event_type variable s390/eventfacility: Fix receive/send masks s390/eventfacility: fix multiple Read Event Data sources s390/sclp: add reset() functions s390/sclpquiesce: Add code to support live migration s390/sclpconsole: Add code to support live migration for sclpconsole s390/sclpconsole: modify definition of input buffer s390/kexec: Implement diag308 subcode 0 s390/ioinst: Moved the CC setting to the IO instruction handlers s390/cpu: Make setcc() function available to other files s390/ipl: Update the s390-ccw.img rom s390/ipl: Fix waiting for virtio processing s390/dump: zero out padding bytes in notes sections s390/kvm: Add check for priviledged SCLP handler Message-id: 1380007671-18976-1-git-send-email-borntraeger@xxxxxxxxxx commit 1cf9412b3b583b59a1ac131609cbf673662ee7eb Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Sep 30 11:17:57 2013 +0200 update seabios from 1.7.2.2 to 1.7.3.2 'git shortlog d4f7d90f..ece025f5' says: Alex Williamson (4): seabios q35: Enable all PIRQn IRQs at startup seabios q35: Add new PCI slot to irq routing function seabios: Add a dummy PCI slot to irq mapping function pciinit: Enable default VGA device Asias He (2): virtio-scsi: Set _DRIVER_OK flag before scsi target scanning virtio-scsi: Pack struct virtio_scsi_{req_cmd,resp_cmd} Avik Sil (1): USB-EHCI: Fix null pointer assignment Christian Gmeiner (5): geodevga: fix errors in geode_fp_* functions geodevga: move framebuffer setup geodevga: move output setup to own function geodevga: add debug to msr functions geodevga: fix wrong define name David Woodhouse (26): Add macros for pushing and popping struct bregs Clean up #if in pirtable.c. CONFIG_PIRTABLE can't be set if CONFIG_COREBOOT is post: Export functions which will be used individually by CSM Export callrom() for CSM to use Export copy_smbios() from biostables.c Import LegacyBios.h from OVMF Complete and checksum EFI_COMPATIBILITY16_TABLE at build time Add pic_save_mask() and pic_restore_mask() functions Add CSM support Add README.CSM Add find_pmtimer() function Enable PMTIMER for CSM build Fix rom_reserve()/rom_confirm() for CSM oprom dispatch Don't calibrate TSC if PMTIMER is already set up Move find_pmtimer() to ACPI table setup where it logically belongs Use find_pmtimer() after copying Xen ACPI tables Use find_pmtimer() after copying coreboot ACPI tables Unify return path for CSM to go via csm_return() Make CONFIG_OPTIONROMS_DEPLOYED depend on CONFIG_QEMU Implement !CONFIG_OPTIONROMS support for CSM Implement !CONFIG_BOOT for CSM Enable VGA output when settings bochs-specific mode Disable CONFIG_THREAD_OPTIONROMS for CSM build Fix return type of le64_to_cpu() and be64_to_cpu() Rename find_pmtimer() to find_acpi_features() Add acpi_reboot() reset method using RESET_REG Gerd Hoffmann (6): config: allow DEBUG_IO for !QEMU coreboot: add qemu detection tweak coreboot qemu detection apm: fix shutdown ahci: add missing check for allocation failure fix buildversion.sh Hu Tao (1): Add pvpanic device driver Kevin O'Connor (101): pmm: Use 'struct segoff_s' in pmm header. Minor: Update README - variable changes are now reset on soft-reboots. Normalize POST initialization function name suffixes. POST: Reorganize post init functions for better grouping and reusability. Fix rebase error in commit 8a0a972f that broke LOWMEM variables. Support calling a function other than maininit() from reloc_preinit(). Ensure exported symbols are visible in the final link POST: Move QEMU specific ramsize and BIOS table setup to paravirt.c. POST: Reorganize post entry and "preinit" functions. POST: Move cpu caching and dma setup to platform_hardware_setup(). Undo incorrect assumptions about Xen in commit 6ca0460f. Determine century during init and store in VARLOW mem during runtime. No need to check both CONFIG_THREADS and CONFIG_THREAD_OPTIONROMS. Add runningOnQEMU() and runningOnXen() for runtime platform detection. Consistently use CONFIG_COREBOOT, CONFIG_QEMU, and runningOnXen(). Convert kvm_para_available() to runningOnKVM(). Minor - move definitions to paravirt.c from paravirt.h. Only perform SMP setup on QEMU. Start device_hardware_setup in mainint even with CONFIG_THREAD_OPTIONROMS. The mathcp setup touches the PIC and thus move to the "setup" phase. Update tools/acpi_extract.py to handle iasl 20130117 release. Support skipping content when reading from QEMU fw_cfg romfile entries. Convert fw_cfg ACPI entries into romfile entries. Convert fw_cfg SMBIOS entries into romfile entries. Convert basic integer fw_cfg entries into romfile entries. Convert fw_cfg NUMA entries into a romfile entry. Process fw_cfg e820 entries during the fw_cfg setup stage. Integrate qemu_cfg_preinit() into qemu_romfile_init(). Group QEMU platform setup together and move to paravirt.c. vgabios: Bochs/QEMU vgabios support should depend on CONFIG_QEMU. Warn on unaligned PCI ROM structure in option roms. Fix Makefile - don't reference "out/" directly, instead use "$(OUT)". build: Don't require $(OUT) to be a sub-directory of the main directory. Rename rom_get_top() to rom_get_max(). Report on f-segment UMB ram also. Clarify build generated "zone low" values. Verify CC is valid during build tests. Disable handle_post() on CSM builds. Remove unnecessary "export" declarations from assembler functions. Minor assembler enhancements to __csm_return. Introduce VARFSEG for variables that will reside in the f-segment. Convert VAR16VISIBLE, VAR16EXPORT, and VAR32VISIBLE to VARFSEG. Don't relocate "varlow" variable references at runtime. Move malloc's ZoneFSeg and ZoneLow setup to malloc_init. Calculate "RamSize" needed by 16bit interface dynamically. Eliminate separate BiosTableSpace[] space for f-segment allocations. Use CONFIG_ prefix for Kconfig variables; use BUILD_ for others. Try to detect an unsuccessful hard-reboot to prevent soft-reboot loops. Minor - fix confusing final_sec32low_start name in layoutrom.py. Minor - introduce numeric defines for the IVT offset of hw irqs. Separate out 16bit PCI-BIOS entry point from regular int 0x1a entry point. Support using the "extra stack" for all 16bit irq entry points. Minor - improve comments and grouping of handle_08(). floppy: Introduce 'struct floppy_pio_s' for floppy PIO ops. floppy: Cleanup floppy irq wait handling. floppy: Clean up Check Interrupt Status code. floppy: Move recalibration and results parsing to floppy_cmd(). floppy: Improve floppy_pio() error checking. floppy: Implement media format sensing. floppy: Actually do controller reset in floppy_reset(). Minor - note that passing QEMU config via cmos is deprecated. Cache boot-fail-wait to avoid romfile access after POST. Rename src/ssdt-susp.dsl to src/ssdt-misc.dsl. acpi: Eliminate BDAT parameter passing to DSDT code. Add additional dependency checks to Makefile. Don't use __FILE__ in virtio-ring.c. shadow: Don't use PCIDevices list in make_bios_readonly(). smm: Don't use PCIDevices list in smm_setup(). Add VARVERIFY32INIT attribute for variables only available during "init". Use VARVERIFY32INIT on global variables that point to "tmp" memory. vgabios: Fix stdvga_perform_gray_scale_summing(). vgabios: Fix cirrus memory clear on mode switch. Minor - add missing newline to floppy debug statement. Fix bug in NUMA node setup - don't create SRAT if NUMA not present. Update README - copy *.aml files for QEMU. Add dependencies to vgafixup.py and buildversion.sh scripts. Set ZF prior to keyboard read call in check_for_keystroke(). mptable: Don't describe pci-to-pci bridges. mptable: Use same PCI irqs as ACPI code. Cleanup QEMU_CFG_NUMA fw_cfg processing - split into two romfile entries. Use container_of on romfile entries. acpi: Move ACPI table definitions from acpi.c to acpi.h. acpi: Remove dead code with descriptions of bit flags. acpi: Use cpu_to_leXX() consistently. Minor - explicitly close files in buildrom.py. Minor - move "tracked memory alloc" code in pmm.c. Introduce and convert pmm code to use standard list helpers. Minor - relocate code in stacks.c to keep low-level thread code together. Introduce helper function have_threads() in stacks.c. Convert stacks.c to use standard list manipulation code. Convert boot.c to use standard list manipulation code. Convert pciinit.c to use standard list manipulation code. Convert PCIDevices list to use standard list manipultion code. Revert "Convert pciinit.c to use standard list manipulation code." Fix error in hlist_for_each_entry_safe macro. Convert pciinit.c to use standard list manipulation code. make qemu_cfg_init depend on QEMU_HARDWARE instead of QEMU Another fix for hlist_for_each_entry_safe. Minor - remove debugging dprintf added to pciinit.c. Fix USB EHCI detection that was broken in hlist conversion of PCIDevices. Fix bug in CBFS file walking with compressed files. Laszlo Ersek (1): Enable VGA output when setting Cirrus-specific mode Michael S. Tsirkin (2): acpi: make default DSDT optional acpi: sync FADT flags from PIIX4 to Q35 Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 774e80ea1d080c608ab06a3b68d9f583644b8d85 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Sep 24 15:46:52 2013 +0200 roms: add support for building sgabios Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 95f7c6803c71ca6f74e8d59da3fd189230d1c466 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Sep 24 15:38:28 2013 +0200 roms: enable parallel seabios / seavgabios builds Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 779fa9d7060c547059ff1993dd38bea565d7f2e7 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Sep 23 11:05:48 2013 +0200 roms: enable ipxe cross builds commit bcf06c15e7beb31a9839951ee24a809b6919a85e Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Sep 20 14:51:10 2013 +0200 roms: add rules to build slof Add some logic to detect cross compilers. Add support for "make slof", which should JustWork[tm] if you are on a ppx64 machine or have a ppc64 cross compiler installed somewhere in your path. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 93a2b3c470cbf1523478e8272816e3a22400775d Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Sep 23 10:24:10 2013 +0200 roms: rewrite scripts/refresh-pxe-roms.sh Just use the Makefile in roms/ Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 46ef7f33a200a903dfcf7174ef5db4a09dc84f06 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Sep 20 15:26:26 2013 +0200 roms: parallel ipxe builds Enable parallel ipxe builds. Reduce the recursive make calls. Call recursive make properly using $(MAKE) $(MAKEFLAGS). Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5a7bd33385f25ccd09725899b380e0c62f6d5733 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Sep 20 14:35:31 2013 +0200 roms: build lgplvgabios isavga variant Add logic to also build+install the isavga vgabios variant. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 1ede4dd04b4f16a281a92d6a44905c63fb1635cf Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Sep 20 14:29:29 2013 +0200 roms: enable parallel builds for 'make lgplvgabios' Recurse into vgabios once, adjust dependencies, call make using $(MAKE) $(MAKEFLAGS) so jobserver mode works. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 6887581728c9eddf858e7458b6eacbfe3ac68302 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Sep 20 15:34:27 2013 +0200 roms: add 'make clean' Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e26d3e734650640fabd7d95ace4f3a6f88725e0b Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 15:18:32 2013 +0200 smbios: Factor out smbios_maybe_add_str() Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit fc3b32958a80bca13309e2695de07b43dd788421 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 15:18:31 2013 +0200 smbios: Make multiple -smbios type= accumulate sanely Currently, -smbios type=T,NAME=VAL,... adds one field (T,NAME) with value VAL to fw_cfg for each unique NAME. If NAME occurs multiple times, the last one's VAL is used (before the QemuOpts conversion, the first one was used). Multiple -smbios can add multiple fields with the same (T, NAME). SeaBIOS reads all of them from fw_cfg, but uses only the first field (T, NAME). The others are ignored. "First one wins, subsequent ones get ignored silently" isn't nice. We commonly let the last option win. Useful, because it lets you -readconfig first, then selectively override with command line options. Clean up -smbios to work the common way. Accumulate the settings, with later ones overwriting earlier ones. Put the result into fw_cfg (no more useless duplicates). Bonus cleanup: qemu_uuid_parse() no longer sets SMBIOS system uuid by side effect. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit ec2df8c10a4585ba4641ae482cf2f5f13daa810e Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 15:18:30 2013 +0200 smbios: Improve diagnostics for conflicting entries We allow either tables or fields for the same type. Makes sense, because SeaBIOS uses fields only when no tables are present. We do this by searching the SMBIOS blob for a previously added table or field. Error messages look like this: qemu-system-x86_64: -smbios type=1,serial=42: SMBIOS type 1 table already defined, cannot add field User needs to know that "table" is defined by -smbios file=..., and "field" by -smbios type=... Instead of searching the blob, record additions of interest, and check that. Simpler, and makes better error messages possible: qemu-system-x86_64: -smbios file=smbios_type_1.bin: Can't mix file= and type= for same type qemu-system-x86_64: -smbios type=1,serial=42,serial=99: This is the conflicting setting Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4f953d2fc806f1ba6fa76f01dfd121fe7d0dc4a7 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 15:18:29 2013 +0200 smbios: Convert to QemuOpts So that it can be set in config file for -readconfig. This tightens parsing of -smbios, and makes it more consistent with other options: unknown parameters are rejected, numbers with trailing junk are rejected, when a parameter is given multiple times, last rather than first wins, ... MST: drop one chunk to fix build errors Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 351a6a73ca7a9123f0dfd6c6f85fd01e82fe3741 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 15:18:28 2013 +0200 smbios: Normalize smbios_entry_add()'s error handling to exit(1) It exits on all error conditions but one, where it returns -1. Normalize, and return void. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 61653008adad45026464f962759112995802fe01 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Sep 27 13:36:11 2013 +0200 qcow2: Remove useless count_contiguous_clusters() parameter All callers pass start = 0, and it's doubtful if any other value would actually do what you expect. Remove the parameter. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Jeff Cody <jcody@xxxxxxxxxx> commit 22f0dd29afd6011b2b7a94bf860502eafce4ddd5 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Sep 27 12:14:16 2013 +0200 qcow2: COMPRESSED on count_contiguous_clusters Compressed clusters can never be contiguous, therefore the corresponding flag does not need to be given explicitly to count_contiguous_clusters. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 15684a474286cc2c6106c756ddd095a21d058970 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Sep 27 12:14:15 2013 +0200 qcow2: count_contiguous_clusters and compression The function is not intended to be used on compressed clusters and will not work correctly, if used anyway, since L2E_OFFSET_MASK is not the right mask for determining the offset of compressed clusters. Therefore, assert that the first cluster is not compressed and always include the compression flag in the mask of significant flags, i.e., stop the search as soon as a compressed cluster occurs. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 320c70666687db4dd4df8165f9fe6960de782ca9 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Sep 27 10:21:48 2013 +0200 qcow2: Free only newly allocated clusters on error In expand_zero_clusters_in_l1, a new cluster is only allocated if it was not already preallocated. On error, such preallocated clusters should not be freed, but only the newly allocated ones. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit be0b742ee320d1139d57062fa18490e7aa485f2a Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Sep 25 16:37:20 2013 +0200 qcow2: Always use error path in l2_allocate Just returning -errno in some cases prevents trace_qcow2_l2_allocate_done from being executed (and, in one case, also the unused allocated L2 table from being freed). Always going down the error path fixes this. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8585afd8133eed037dde9c14106e7eb8d7c46968 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Sep 25 16:37:18 2013 +0200 qcow2: Don't put invalid L2 table into cache In l2_allocate, the fail path is executed if qcow2_cache_flush fails. However, the L2 table has not yet been fetched from the L2 table cache. The qcow2_cache_put in the fail path therefore basically gives an undefined argument as the L2 table address (in this case). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit fd9e03e6060b3a64099d17e4a886421b21dd7341 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Sep 25 12:07:23 2013 +0200 qemu-iotests: Preallocated zero clusters in 061 Add a test case for zero cluster expansion on an image completely filled with preallocated zero clusters to test 061. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e390cf5a9722d3f3cc54efb505f6ff37fa554b11 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Sep 25 12:07:22 2013 +0200 qcow2: Correct bitmap size in zero expansion Since the expanded_clusters bitmap is addressed using host offsets in the underlying image file, the correct size to use for allocating the bitmap is not determined by the guest disk image but by the underlying host image file. Furthermore, this size may change during the expansion due to cluster allocations on growable image files. In this case, the bitmap needs to be resized as well to reflect the growth. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit fef9c19139f4d69a080d99b8cbade163d0bbf0fc Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Sep 25 08:12:22 2013 -0400 qemu-iotests: Quote $TEST_IMG* and $TEST_DIR usage A lot of image filename and paths are used unquoted. Quote these to make sure that directories / filenames with spaces are not problematic. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 85edbd375b9ab451c6769011cb6b3e0287dc71e4 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Sep 25 08:12:20 2013 -0400 qemu-iotests: Add basic ability to use binary sample images For image formats that are not "QEMU native", but supported for compatibility, it is useful to verify that an image created with the 'gold standard' native tool can be read / written to successfully by QEMU. In addition to testing non-native images, this could also be useful to test against image files created by older versions of QEMU. This provides a directory to store small sample images, for use by scripts in tests/qemu-iotests. Image files should be compressed with bzip2. To use a sample image from a bash script, the _use_sample_img function will copy and decompress the image into $TEST_DIR, and set $TEST_IMG to be the decompressed sample image copy. To cleanup, call _cleanup_test_img as normal. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 212774c5a5036b327dc10a0dd3e5fe194b509a18 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Sep 26 19:57:34 2013 +0800 qemu-iotests: fix qmp.py search path QMP/qmp.py is renamed to scripts/qmp/qmp.py, fix the search path in iotests.py. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d055a1fec37ec84fd3e87d48a0e766a9ff8369c4 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Sep 26 19:55:33 2013 +0800 block: use DIV_ROUND_UP in bdrv_co_do_readv Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c01dbccbad647be5784be39eb8fa0144732295db Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Sep 25 17:48:55 2013 +0200 qcow2: Assert against currently impossible overflow If qcow2_alloc_cluster_link_l2 is called with a QCowL2Meta describing a request crossing L2 boundaries, a buffer overflow will occur. This is impossible right now since such requests are never generated (every request is shortened to L2 boundaries before) and probably also completely unintended (considering the name "QCowL2Meta"), however, it is still worth an assertion. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3df2b8fde949be86d8a78923c992fdd698d4ea4c Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 21:13:13 2013 +0200 misc: Use new rotate functions Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 6aa25b4a7bb10c48c3054f268d5be98e42ea42c0 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 21:13:12 2013 +0200 bitops: Add rotate functions (rol8, ror8, ...) These functions were copies from include/linux/bitopts.h. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit d285bf784b6234e994ce73c05c82c9fb6429df00 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 21:13:11 2013 +0200 tci: Add implementation of rotl_i64, rotr_i64 It is used by qemu-ppc64 when running Debian's busybox-static. Cc: qemu-stable <qemu-stable@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 687fb89366366ce654a17c15af48adfe8c4ce70a Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Sep 25 12:08:51 2013 -0400 block: qed - use QEMU_PACKED for on-disk structures QEDHeader is read, and written, directly from on-disk images via bdrv_pread()/write(). To avoid any unintentional padding, these structs should be packed. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c4217f645dfdfd405cd0c50af953515e1114436a Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Sep 25 12:08:50 2013 -0400 block: qcow2 - used QEMU_PACKED for on-disk structures QCowHeader and QCowExtension are structs that reside in the on-disk image format, and are read and written directly via bdrv_pread()/write(), and as such should be packed to avoid any unintentional struct padding. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e54835c06d1f4896941c1505a86532aa1403ebe8 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Sep 25 12:08:49 2013 -0400 block: vpc - use QEMU_PACKED for on-disk structures The VHD footer and header structs (vhd_footer and vhd_dyndisk_header) are on-disk structures for the image format, and as such should be packed. Go ahead and make these typedefs as well, with the preferred QEMU naming convention, so that the packed attribute is used consistently with the struct. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8368febd81cbf3cc71f5b0e92ef36e482dff37ca Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Sep 25 12:08:48 2013 -0400 block: vdi - use QEMU_PACKED for on-disk structures The header struct VdiHeader is an on-disk structure for the image format, and as such should be packed. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 594278d9f251222675f1c24f5fbb1b05560b8711 Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> Date: Wed Sep 25 16:43:12 2013 +0000 xen: Enable cpu-hotplug on xenfv machine. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 1cd25a889687ab199944b98c1bdc59216ea81487 Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> Date: Wed Sep 25 16:41:48 2013 +0000 xen: Fix vcpu initialization. Each vcpu need a evtchn binded in qemu, even those that are offline at QEMU initialisation. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 11addd0ab9371af2b6ec028c7fe4e4c4992252fc Author: Liu, Jinsong <jinsong.liu@xxxxxxxxx> Date: Wed Sep 25 16:40:23 2013 +0000 qemu: Add qemu xen logic for Xen HVM S3 resume This patch is qemu patch 2 to fix Xen HVM S3 bug, adding qemu xen logic. When qemu wakeup, qemu xen logic is notified and hypercall to xen hypervisor to unpause domain. Signed-off-by: Liu Jinsong <jinsong.liu@xxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Reviewed-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> commit 4bc78a877252d772b983810a7d2c0be00e9be70e Author: Liu, Jinsong <jinsong.liu@xxxxxxxxx> Date: Wed Sep 25 16:38:29 2013 +0000 qemu: Adjust qemu wakeup Currently Xen hvm s3 has a bug coming from the difference between qemu-traditioanl and qemu-xen. For qemu-traditional, the way to resume from hvm s3 is via 'xl trigger' command. However, for qemu-xen, the way to resume from hvm s3 inherited from standard qemu, i.e. via QMP, and it doesn't work under Xen. The root cause is, for qemu-xen, 'xl trigger' command didn't reset devices, while QMP didn't unpause hvm domain though they did qemu system reset. We have two qemu patches and one xl patch to fix Xen hvm s3 bug. This patch is the qemu patch 1. It adjusts qemu wakeup so that Xen s3 resume logic (which will be implemented at qemu patch 2) will be notified after qemu system reset. Signed-off-by: Liu Jinsong <jinsong.liu@xxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> commit 7f12d6497f9c4907c1ce4ef296392aef305ed587 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jul 31 16:15:18 2013 -0700 tcg-ppc64: Implement CONFIG_QEMU_LDST_OPTIMIZATION Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c7ca6a2b75f3867dd723c214fac08aa6cbf8cf94 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 30 17:58:10 2013 -0700 tcg-ppc64: Add _noaddr functions for emitting forward branches ... rather than open-coding this stuff through the file. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit fedee3e7fda16e2ca438d2de6e76e4d434bcd3bb Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jul 31 15:11:44 2013 -0700 tcg-ppc64: Streamline tcg_out_tlb_read Less conditional compilation. Merge an add insn with the indexed memory load insn. Load the tlb addend earlier. Avoid the address update memory form. Fix a bug in not allowing large enough tlb offsets for some guests. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit fa94c3be7a3fc7f1beaa3b031da7199ae3c5ddc8 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Aug 31 04:44:21 2013 -0700 tcg-ppc64: Implement tcg_register_jit Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b18d5d2b80ba0fd33edabae72fd7e7ad6f20316a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jul 31 11:36:42 2013 -0700 tcg-ppc64: Handle long offsets better Previously we'd only handle 16-bit offsets from memory operand without falling back to indexed, but it's easy to use ADDIS to handle full 32-bit offsets. This also lets us unify code that existed inline in tcg_out_op for handling addition of large constants. The new R2 temporary was marked reserved for the AIX calling convention, but the register really is call-clobbered and since tcg generated code has no use for a TOC, it's available for use. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5e1702b0742b7cc88e85dfe76c3ba5d1432312aa Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jul 31 10:18:49 2013 -0700 tcg-ppc64: Tidy register allocation order Remove conditionalization from tcg_target_reg_alloc_order, relying on reserved_regs to prevent register allocation that shouldn't happen. So R11 is now present in reg_alloc_order for __APPLE__, but also now reserved. Sort reg_alloc_order into call-saved, call-clobbered, and parameters. This reduces the effect of values getting spilled and reloaded before function calls. Whether or not it is reserved, R2 (TOC) is always call-clobbered. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b0940da012c4c80145fdcf1730620f28ce80c2d8 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Aug 31 06:30:45 2013 -0700 tcg-ppc64: Look through a constant function descriptor Especially in the user-only configurations, a direct branch into the executable may be in range. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d40f3cb1128208d901b6224b52ff36ff05680d28 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Aug 31 06:13:49 2013 -0700 tcg-ppc64: Fold constant call address into descriptor load Eliminates one insn per call: : lis r2,4165 -: ori r2,r2,59616 -: ld r0,0(r2) +: ld r0,-5920(r2) : mtctr r0 -: ld r2,8(r2) +: ld r2,-5912(r2) : bctrl Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ad94e1a9db52de4ddfd9940324249518e0265902 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Jul 30 23:14:19 2013 -0700 tcg-ppc64: Don't load the static chain from TCG There are no helpers that require the static chain. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f8b84129073d600cef20d526814b9bdd15c2e1ba Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Jul 30 18:26:04 2013 -1000 tcg-ppc64: Avoid code for nop move While these are rare from code that's been through the optimizer, it's not uncommon within the tcg backend. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5e0f40cfedecfbc2a0608d75e8a8d22173f23431 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Aug 31 05:46:25 2013 -0700 tcg-ppc64: Use tcg_out64 Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8327a470df78cb41de95f6be0133a59e0a721e2c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Aug 31 05:41:45 2013 -0700 tcg-ppc64: Use TCG_REG_Rn constants Instead of bare N, for clarity. The only (intentional) exception made is for insns that encode R|0, i.e. when R0 encoded into the insn is interpreted as zero not the contents of the register. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 29b69198690f4b2754338c7c01f8ebe004b2efac Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Aug 31 05:23:23 2013 -0700 tcg-ppc64: More use of TAI and SAI helper macros Finish conversion of all memory operations. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 541dd4ceaacb92d93ceae87d4d521ae8bd381559 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Aug 31 05:14:53 2013 -0700 tcg-ppc64: Reformat tcg-target.c Whitespace and brace changes only. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8f50c841b374dc90ea604888ca92c37f469c428a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Aug 29 09:32:20 2013 -0700 tcg-ppc: Fix and cleanup tcg_out_tlb_check The fix is that sparc has so many mmu modes that the last one overflowed the 16-bit signed offset we assumed would fit. Handle this, and check the new assumption at compile time. Load the tlb addend earlier for the fast path. Remove the explicit address + addend and make use of index addressing. Adjust constraints for qemu_ld64 such that we don't clobber the address register or tlb addend before loading both values. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5b1c985b7e4d3f430769925c1775c9e8836272df Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Sep 9 16:49:36 2013 -0700 tcg-ppc: Use conditional branch and link to slow path Saves one insn per slow path. Note that we can no longer use a tail call into the store helper. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1d10cf9886429d17d22e233081697ef27465dca3 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Aug 29 10:07:24 2013 -0700 tcg-ppc: Cleanup tcg_out_qemu_ld/st_slow_path Coding style fixes. Use TCGReg enumeration values instead of raw numbers. Don't needlessly pull the whole TCGLabelQemuLdst struct into local variables. Less conditional compilation. No functional changes. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4b2b114d8cc0f0f59bc20855bf287fb3df55b553 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 28 15:51:08 2013 -0700 tcg-ppc: Avoid code for nop move While these are rare from code that's been through the optimizer, it's not uncommon within the tcg backend. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 619f90ba62e27c674b1a9af8c0ae68eef8d64a92 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Sep 5 10:22:09 2013 +0200 tcg-ppc: use new return-argument ld/st helpers These use a 32-bit load-of-immediate to save a mflr+addi+mtlr sequence. Tested with a Windows 98 guest (pretty much the most recent thing I could run on my PPC machine) and kvm-unit-tests's sieve.flat. The speed up for sieve.flat is as high as 10% for qemu-system-i386, 25% (no kidding) for qemu-system-x86_64 on my PowerBook G4. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6a115579883e6c0e56394bf7aaabd04260e11233 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Sep 5 10:22:08 2013 +0200 tcg-ppc: fix qemu_ld/qemu_st for AIX ABI For the AIX ABI, the function pointer and small area pointer need to be loaded in the trampoline. The trampoline instead is called with a normal BL instruction. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 9e6337d0818650362149b734d53edf9489f3acaa Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Sep 25 16:00:48 2013 +0200 rbd: avoid qemu_rbd_snap_list() memory leaks When there are no snapshots qemu_rbd_snap_list() returns 0 and the snapshot table pointer is NULL. Don't forget to free the snaps buffer we allocated for librbd rbd_snap_list(). When the function succeeds don't forget to free the snaps buffer after calling rbd_snap_list_end(). Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 5726d872f3c7a78a6c17ff5a6e47e01cff0a5e55 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Wed Sep 25 13:30:01 2013 +0200 qdict: Extract qdict_extract_subqdict Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c3e4f43a99549daa6e9b87350922e8339341c2ab Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Sep 22 08:19:10 2013 +0200 block: Fix compiler warning (-Werror=uninitialized) The patch fixes a warning from gcc (Debian 4.6.3-14+rpi1) 4.6.3: block/stream.c:141:22: error: â??copyâ?? may be used uninitialized in this function [-Werror=uninitialized] This is not a real bug - a better compiler would not complain. Now 'copy' has always a defined value, so the check for ret >= 0 can be removed. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Acked-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 030be32184034261da14693b69e9582f6fe4af9d Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Tue Sep 24 17:07:04 2013 +0200 block: introduce BlockDriver.bdrv_needs_filename to enable some drivers. Some drivers will have driver specifics options but no filename. This new bool allow the block layer to treat them correctly. The .bdrv_needs_filename is set in drivers not having .bdrv_parse_filename and not having .bdrv_open. The first exception to this rule will be the quorum driver. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2fe2e2907163f6d86b6bbced776ec8f9319ca83f Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Sep 25 17:45:51 2013 +0800 qemu-iotests: add monolithicFlat creation test to 059 Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit fc7ce63fb101ffb56027a04e89c8c6a38031bfc3 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Sep 25 17:45:50 2013 +0800 qemu-iotests: fix test case 059 Since commit "block: Error parameter for open functions", error output is more verbose. Update test case output file to follow the change. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 301c7d38a0c359b91526391d13617386f3d9bb29 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Sep 23 17:18:29 2013 +0800 vmdk: fix cluster size check for flat extents We use the extent size as cluster size for flat extents (where no L1/L2 table is allocated so it's safe) reuse sector calculating code with sparse extents. Don't pass in the cluster size for adding flat extent, just set it to sectors later, then the cluster size checking will not fail. The cluster_sectors is changed to int64_t to allow big flat extent. Without this, flat extent opening is broken: # qemu-img create -f vmdk -o subformat=monolithicFlat /tmp/a.vmdk 100G Formatting '/tmp/a.vmdk', fmt=vmdk size=107374182400 compat6=off subformat='monolithicFlat' zeroed_grain=off # qemu-img info /tmp/a.vmdk image: /tmp/a.vmdk file format: raw virtual size: 0 (0 bytes) disk size: 4.0K Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1f9db2243c1b987c834fe559a8e73b3178f50c2b Author: Peter Lieven <pl@xxxxxxx> Date: Tue Sep 24 15:35:09 2013 +0200 block/get_block_status: avoid segfault if there is no backing_hd Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3e0a233d869e74e78b516be34715b91528508cfc Author: Peter Lieven <pl@xxxxxxx> Date: Tue Sep 24 15:35:08 2013 +0200 block/get_block_status: set *pnum = 0 on error if the call is invoked through bdrv_is_allocated the caller might expect *pnum = 0 on error. however, a new implementation of bdrv_get_block_status might only return a negative exit value on error while keeping *pnum untouched. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7454d600457f75f4fda6bf7be027fd3bcf7d5220 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 24 13:50:46 2013 +0200 qcow2: Don't shadow return value When trying to update the refcounts for a snapshot, the return value of update_refcount on a compressed cluster was pretty much ignored, cancelling the update on error but returning 0. This is caused by an inner "ret" variable shadowing the outer one (the latter is used in the return statement). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit ff42308f30e05155efc78a1f00f53943ca51e4f9 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Sep 23 16:38:33 2013 +0200 qemu-iotests: Do not execute 052 with -nocache Test 052 uses qemu-io -s which will result in bdrv_open trying to create a temporary snapshot file in /tmp. However, since O_DIRECT and tmpfs do not work well together, disable this test for -nocache. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4db9c980027447816cfd00703070a7672cb8e482 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Sun Sep 22 20:05:07 2013 +0800 qemu-iotests: add test for backing file overriding Test that backing.file.filename option can be parsed and override the backing file from image (backing file reflected with "info block"). Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit dbecebddfa4932d1c83915bcb9b5ba5984eb91be Author: Fam Zheng <famz@xxxxxxxxxx> Date: Sun Sep 22 20:05:06 2013 +0800 block: fix backing file overriding Providing backing.file.filename doesn't override backing file as expected: $ x86_64-softmmu/qemu-system-x86_64 -drive \ file=/tmp/child.qcow2,backing.file.filename=/tmp/fake.qcow2 qemu-system-x86_64: -drive \ file=/tmp/child.qcow2,backing.file.filename=/tmp/fake.qcow2: could not open disk image /tmp/child.qcow2: Can't specify 'file' and 'filename' options at the same time With $ qemu-img info /tmp/child.qcow2 image: /tmp/child.qcow2 file format: qcow2 virtual size: 1.0G (1073741824 bytes) disk size: 196K cluster_size: 65536 backing file: /tmp/fake.qcow2 This fixes it by calling bdrv_get_full_backing_filename only if backing.file.filename is not provided. Also save the backing file name to bs->backing_file so the information is correct with HMP "info block". Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e3608d66cea318698a2c4361d4e11a0e224c36db Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 28 15:48:21 2013 -0700 configure: Allow command-line configure for ppc32 Similar to manually selecting i386 for an x86_64 host. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c236f4519c9838801798f3705c17dce9ab9e3b9d Author: Eduardo Otubo <otubo@xxxxxxxxxxxxxxxxxx> Date: Tue Sep 24 14:50:44 2013 -0300 seccomp: fine tuning whitelist by adding times() This was causing Qemu process to hang when using -sandbox on as discribed on RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1004175 Signed-off-by: Eduardo Otubo <otubo@xxxxxxxxxxxxxxxxxx> Tested-by: Paul Moore <pmoore@xxxxxxxxxx> Acked-by: Paul Moore <pmoore@xxxxxxxxxx> commit d613a56f845788412a442c6b5aff88b38244f99a Author: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Date: Sat Sep 21 01:23:37 2013 +0900 migration: ram_handle_compressed ram_handle_compressed() should be aware of size > TARGET_PAGE_SIZE. migration-rdma can call it with larger size. Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit dc3c26a479e5bd19c1b3c04f696b8f70ad57f0b7 Author: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Date: Sat Sep 21 01:23:36 2013 +0900 arch_init: make is_zero_page accept size Later is_zero_page will be used for non TARGET_PAGE_SIZE range. And rename it to is_zero_range as it isn't page size any more. Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 5016e2df569bc7d67637060103dd360ed2f0d557 Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Fri Aug 23 10:34:16 2013 -0700 migration: Fix debug print type The printf args are uint64_t and with -Werr QEMU doesn't compile with migration debugging turned on unless this is fixed. Fix it. Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 7102400d40be7fcfb017c8f211d6a37ecead2a2f Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Wed Sep 4 14:35:26 2013 +1000 migration: add version supporting macros for struct pointer This adds version supporting macros VMSTATE_STRUCT_POINTER_TEST_V and VMSTATE_STRUCT_POINTER_V in addition to the already existing VMSTATE_STRUCT_POINTER and VMSTATE_STRUCT_POINTER_TEST macros. Cc: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit dd286ed700c6ca2768ac3452bc5b79af1709296a Author: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Date: Wed Sep 4 11:32:19 2013 +0900 rdma: constify ram_chunk_{index, start, end} Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 5a91337cdf343b94474f8bbecab85a8c00f6d2a1 Author: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Date: Tue Aug 13 11:12:43 2013 +0900 rdma: clean up of qemu_rdma_cleanup() - It can't be determined by RDMAContext::cm_id != NULL if the connection is established or not. - RDMAContext::cm_id is leaked and not destroyed because it is set to NULL too early. - RDMAContext::qp is created by rdma_create_qp() so that it should be destroyed by rdma_destroy_qp(). not ibv_destroy_qp() Cc: Michael R. Hines <mrhines@xxxxxxxxxx> Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 6cd0beda2c3c21fd7575e944764f392be7ef50c1 Author: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 4 17:02:36 2013 +0800 arch_init: right return for ram_save_iterate qemu_file_rate_limit() never return negative value since the refactor by Commit 1964a39, this patch gets rid of the negative check for it, adjust bytes_transferred and return value correspondingly in ram_save_iterate(). Signed-off-by: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit c77a5f2daa1ccbd825d59b95c70207c0a196bb94 Author: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 4 17:02:35 2013 +0800 savevm: fix wrong initialization by ram_control_load_hook It should set negative error value rather than 0 in QEMUFile if there has been an error. Reviewed-by: Michael R. Hines <mrhines@xxxxxxxxxx> Signed-off-by: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 675fd0a7daa484a2011895583249c88ef2a27921 Author: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 4 17:02:34 2013 +0800 savevm: add comments for qemu_file_get_error() Add comments for qemu_file_get_error(), as its return value is not very clear. Signed-off-by: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 19b0dfc19c0d911c322a03899806c59bc2f593c9 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Sat Sep 7 00:54:00 2013 -0400 audio: remove CONFIG_MIXEMU configure option Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 2690e61e8e313461428334586ed9dbf56531dae9 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Sat Sep 7 00:53:59 2013 -0400 hda-codec: make mixemu selectable at runtime Define PARAM so that we have two versions of the "desc_codec and family" structs. Add a property called "mixer" whose default value depends on whether CONFIG_MIXEMU is defined or not which will help us call the appropriate instance init functions. Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 7953793c033343dbea97836645edbe4e61754b11 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Sat Sep 7 00:53:58 2013 -0400 hda-codec: refactor common definitions into a header file Move common defines and structs to a header file. The next commit will include it twice, once for a device with a mixer, and once for device without a mixer. Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 9f575846673f9f4e4f46b5710d1025af44762f92 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Sep 24 10:26:24 2013 +0200 audio maintainers update av1474@xxxxxxxx bounces, and I havn't seen malc @ qemu-devel for quite a while (anyone knows what is up?). Adding myself as audio maintainer, so audio patches don't fall through the cracks that easily. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 53d09b761f032f50c4424e8649396a9041070bae Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Mon Sep 23 14:11:53 2013 +0200 linux-user: Handle SOCK_CLOEXEC/NONBLOCK if unavailable on host If the host lacks SOCK_CLOEXEC, bail out with -EINVAL. If the host lacks SOCK_ONONBLOCK, try to emulate it with fcntl() and O_NONBLOCK. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 89aaf1a6ad91c4cb3224fcca461d71dac9fa3fa6 Author: Riku Voipio <riku.voipio@xxxxxxxxxx> Date: Wed Jul 24 09:44:26 2013 +0300 [v2] linux-user: implement m68k atomic syscalls With nptl enabled, atomic_cmpxchg_32 and atomic_barrier system calls are needed. This patch enabled really dummy versions of the system calls, modeled after the m68k kernel code. With this patch I am able to execute m68k binaries with qemu linux-user (busybox compiled for coldfire). [v2] que an segfault instead of returning a EFAULT to keep in line with kernel code. Cc: Laurent Vivier <laurent@xxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 1308c464a8414ce3c6f79e172255fb90b5aa313d Author: Kwok Cheung Yeung <kcy@xxxxxxxxxxxxxxxx> Date: Mon Sep 9 17:36:40 2013 -0700 linux-user: Check type of microMIPS break instruction microMIPS instructions that cause breakpoint exceptions come in 16-bit and 32-bit variants. When handling exceptions caused by such instructions, the instruction type needs to be taken into account when extracting the break code. The code has also been restructured for better clarity. Signed-off-by: Kwok Cheung Yeung <kcy@xxxxxxxxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit dbf4f7965af974593da596ec12ac877d248efed6 Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Fri Sep 13 19:27:29 2013 +0200 linux-user: correct how SOL_SOCKET is converted from target to host and back Previous implementation does not take into account that SOL_SOCKET constant can be arch specific. This change fixes some issues with sendmsg/recvmsg. Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 03cfd8faa7ffb7201e2949b99c2f35b1fef7078b Author: Laurent Vivier <laurent@xxxxxxxxx> Date: Fri Aug 30 01:46:44 2013 +0200 linux-user: add support of binfmt_misc 'O' flag The binfmt_misc module can calculate the credentials and security token according to the binary instead of to the interpreter if the 'C' flag is enabled. To be able to execute non-readable binaries, this flag implies 'O' flag. When 'O' flag is enabled, bintfmt_misc opens the file for reading and pass the file descriptor to the interpreter. References: linux/Documentation/binfmt_misc.txt ['O' and 'C' description] linux/fs/binfmt_misc.c linux/fs/binfmt_elf.c [ AT_EXECFD usage ] Signed-off-by: Laurent Vivier <laurent@xxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 0d78b3b5b1b5c391aa96b481be106de023810b66 Author: Laurent Vivier <laurent@xxxxxxxxx> Date: Fri Aug 30 01:46:43 2013 +0200 linux-user: add some IPV6 commands in setsockop() Signed-off-by: Laurent Vivier <laurent@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit bd00c74c7fdd8a34d5e22e27931b3a3a77e3b0dd Author: Laurent Vivier <laurent@xxxxxxxxx> Date: Fri Aug 30 01:46:42 2013 +0200 linux-user: allow use of TIOCGSID Signed-off-by: Laurent Vivier <laurent@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit f57d419241e7c7cce5d11172081a5860e86aa8bc Author: Laurent Vivier <laurent@xxxxxxxxx> Date: Fri Aug 30 01:46:41 2013 +0200 linux-user: Add setsockopt(SO_ATTACH_FILTER) This is needed to be able to run dhclient. Signed-off-by: Laurent Vivier <laurent@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit de6b9933772c743789808531b3092329faf42496 Author: Laurent Vivier <laurent@xxxxxxxxx> Date: Fri Aug 30 01:46:40 2013 +0200 linux-user: convert /proc/net/route when endianess differs This patch allows to have IP addresses in correct order in the case of "netstat -nr" when the endianess of the guest differs from one of the host. For instance, an m68k guest on an x86_64 host: WITHOUT this patch: $ netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 1.3.0.10 0.0.0.0 UG 0 0 0 eth0 0.3.0.10 0.0.0.0 0.255.255.255 U 0 0 0 eth0 $ cat /proc/net/route Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT eth0 00000000 0103000A 0003 0 0 0 000000000 0 0 eth0 0003000A 00000000 0001 0 0 0 00FFFFFF0 0 0 WITH this patch: $ netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 10.0.3.1 0.0.0.0 UG 0 0 0 eth0 10.0.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 $ cat /proc/net/route Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT eth0 00000000 0a000301 0003 0 0 0 000000000 0 0 eth0 0a000300 00000000 0001 0 0 0 ffffff000 0 0 Signed-off-by: Laurent Vivier <laurent@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 868e34d7bdf958963da9582c1c14f2b7930b6d37 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jul 24 09:50:01 2013 -1000 mips-linux-user: Adjust names in mips_syscall_args The name field of MIPS_SYS isn't actually used; it's just documentation. But adjust the umount entries to match mips/syscall_nr.h anyway. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 8070e7be8b2909b48b56b5e965fca209ba5969db Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jul 24 09:50:00 2013 -1000 alpha-linux-user: Fix umount syscall numbers It has been pointed out on LKML that the alpha umount syscall numbers are named wrong, and a patch to rectify that has been posted for 3.11. Glibc works around this by treating NR_umount as NR_umount2 if NR_oldumount exists. That's more complicated than we need in QEMU, given that we control linux-user/*/syscall_nr.h. This is the last instance of TARGET_NR_oldumount, so delete that from the strace.list. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit f828a4c8faa118e0ebab3e353ac6840f3b2a0318 Merge: feb678c cbf5b96 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 23 11:53:22 2013 -0500 Merge remote-tracking branch 'stefanha/tracing' into staging # By Alexey Kardashevskiy # Via Stefan Hajnoczi * stefanha/tracing: kvm: fix traces to use %x instead of %d Message-id: 1379699931-5837-1-git-send-email-stefanha@xxxxxxxxxx commit feb678c6f7234d5227610939aff0510878590e83 Merge: 16121fa 97410dd Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 23 11:53:11 2013 -0500 Merge remote-tracking branch 'stefanha/net' into staging # By Aurelien Jarno (1) and Vincenzo Maffione (1) # Via Stefan Hajnoczi * stefanha/net: e1000: NetClientInfo.receive_iov implemented pcnet-pci: mark I/O and MMIO as LITTLE_ENDIAN Message-id: 1379699613-5338-1-git-send-email-stefanha@xxxxxxxxxx commit 16121fa39e1ec17308162af4de5c5f6c01c1cce1 Merge: 2e6ae66 ef5bc96 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 23 11:53:05 2013 -0500 Merge remote-tracking branch 'stefanha/block' into staging # By Stefan Hajnoczi (4) and others # Via Stefan Hajnoczi * stefanha/block: virtio-blk: do not relay a previous driver's WCE configuration to the current blockdev: do not default cache.no-flush to true block: don't lose data from last incomplete sector qcow2: Correct snapshots size for overlap check coroutine: fix /perf/nesting coroutine benchmark coroutine: add qemu_coroutine_yield benchmark qemu-timer: do not take the lock in timer_pending qemu-timer: make qemu_timer_mod_ns() and qemu_timer_del() thread-safe qemu-timer: drop outdated signal safety comments osdep: warn if open(O_DIRECT) on fails with EINVAL libcacard: link against qemu-error.o for error_report() Message-id: 1379698931-946-1-git-send-email-stefanha@xxxxxxxxxx commit 2e6ae666c8ccaa7fd26d7102c5c9bed24dc02b1d Merge: 3e4be9c 7a1c0d2 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 23 11:52:55 2013 -0500 Merge remote-tracking branch 'mjt/trivial-patches' into staging # By Stefan Weil (8) and others # Via Michael Tokarev * mjt/trivial-patches: tests/.gitignore: ignore test-throttle exec: Fix broken build for MinGW (regression) kvm: Fix compiler warning (clang) tcg-sparc: Fix parenthesis warning Makefile: Remove some more files when cleaning target-i386: Fix segment cache dump iov: avoid "orig_len may be used unitialized" warning vscclient: remove unnecessary use of uninitialized variable trace-events: Clean up with scripts/cleanup-trace-events.pl again tci: Fix qemu-alpha on 32 bit hosts (wrong assertions) *-user: Improve documentation for lock_user function MAINTAINERS: Add missing entry to filelist for TCI target translate-all: Fix formatting of dump output *-user: Fix typo in comment (ulocking -> unlocking) docs: Fix IO port number for CPU present bitmap. q35: Fix typo in constant DEFUALT -> DEFAULT. configure: Undefine _FORTIFY_SOURCE prior using it Message-id: 1379696296-32105-1-git-send-email-mjt@xxxxxxxxxxxxxxxx commit 3e4be9c29784df09c364b52a55e826a0b05b950e Merge: f3ca508 f010bc6 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 23 11:52:49 2013 -0500 Merge remote-tracking branch 'qemu-kvm/uq/master' into staging # By Alexey Kardashevskiy (3) and others # Via Paolo Bonzini * qemu-kvm/uq/master: target-i386: add feature kvm_pv_unhalt linux-headers: update to 3.12-rc1 target-i386: forward CPUID cache leaves when -cpu host is used linux-headers: update to 3.11 kvm: fix traces to use %x instead of %d kvmvapic: Clear also physical ROM address when entering INACTIVE state kvmvapic: Enter inactive state on hardware reset kvmvapic: Catch invalid ROM size kvm irqfd: support direct msimessage to irq translation fix steal time MSR vmsd callback to proper opaque type kvm: warn if num cpus is greater than num recommended cpu: Move cpu state syncs up into cpu_dump_state() exec: always use MADV_DONTFORK Message-id: 1379694292-1601-1-git-send-email-pbonzini@xxxxxxxxxx commit f3ca508f00fa1cc295334fe8f8010cd6ea45bacd Merge: 2571f8f f35c934 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 23 11:52:32 2013 -0500 Merge remote-tracking branch 'bonzini/scsi-next' into staging # By Hervé Poussineau (5) and Stefan Weil (1) # Via Paolo Bonzini * bonzini/scsi-next: block/iscsi: Drop iscsi_co_get_block_status for older versions of libiscsi lsi: add 53C810 variant lsi: remove todo lsi: ignore write accesses to CTEST0 registers lsi: check ssid versus sdid only if ssid is valid lsi: use constant name instead of its value commit 702d66a813dd84afd7c3d1ad8cbdcc8e3449bcd9 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Sep 17 11:45:36 2013 +0300 virtio-net: fix up HMP NIC info string on reset When mac is updated on reset, info string has stale data. Fix it up. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit cbf5b968567dbd5a71165c1d30a0ce351bdca11a Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Wed Sep 4 20:26:25 2013 +1000 kvm: fix traces to use %x instead of %d KVM request types are normally defined using hex constants but QEMU traces print decimal values instead, which is not very convenient. This changes the request type format from %d to %x. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 97410dde60fdb66a65268fd9d7b14092efac7614 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Thu Sep 12 10:47:37 2013 +0200 e1000: NetClientInfo.receive_iov implemented This patch implements the NetClientInfo.receive_iov method for the e1000 device emulation. In this way a network backend that uses qemu_sendv_packet() can deliver the fragmented packet without requiring an additional copy in the frontend/backend network code (nc_sendv_compat() function). The existing method NetClientInfo.receive has been reimplemented using the new method. Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a26405b350c0d31d5ef53f3b459aeb6eaaf50db0 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Aug 28 14:17:39 2013 +0200 pcnet-pci: mark I/O and MMIO as LITTLE_ENDIAN Now that the memory subsystem is propagating the endianness correctly, the pcnet-pci device should have its I/O ports and MMIO memory marked as LITTLE_ENDIAN, as PCI devices are little endian. This makes the pcnet-pci NIC to work again on big endian MIPS Malta (default NIC). Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ef5bc96268ceec64769617dc53b0ac3a20ff351c Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 17:31:55 2013 +0200 virtio-blk: do not relay a previous driver's WCE configuration to the current The following sequence happens: - the SeaBIOS virtio-blk driver does not support the WCE feature, which causes QEMU to disable writeback caching - the Linux virtio-blk driver resets the device, finds WCE is available but writeback caching is disabled; tells block layer to not send cache flush commands - the Linux virtio-blk driver sets the DRIVER_OK bit, which causes writeback caching to be re-enabled, but the Linux virtio-blk driver does not know of this side effect and cache flushes remain disabled The bug is at the third step. If the guest does know about CONFIG_WCE, QEMU should ignore the WCE feature's state. The guest will control the cache mode solely using configuration space. This change makes Linux do flushes correctly, but Linux will keep SeaBIOS's writethrough mode. Hence, whenever the guest is reset, the cache mode of the disk should be reset to whatever was specified in the "-drive" option. With this change, the Linux virtio-blk driver finds that writeback caching is enabled, and tells the block layer to send cache flush commands appropriately. Reported-by: Rusty Russell <rusty@xxxxxxxxxxx Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1df6fa4bc6754a170cf511a78e2e6fef84eb5228 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Sep 19 18:48:53 2013 +0200 blockdev: do not default cache.no-flush to true That's why all my VMs were so fast lately. :) This changed in 1.6.0 by mistake in patch 29c4e2b (blockdev: Split up 'cache' option, 2013-07-18). Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bcb9d66e8590151967e1dbe3724eec7ec71392e0 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Sep 18 19:14:14 2013 +0800 block: don't lose data from last incomplete sector To read the last sector that is not aligned to sector boundary, current code for growable backends, since commit 893a8f6 "block: Produce zeros when protocols reading beyond end of file", drops the data and directly returns zeroes. That is incorrect. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7a1c0d200f3ca5be48f7034c6ed5458e490f8816 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Sep 16 15:20:40 2013 +0800 tests/.gitignore: ignore test-throttle Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 089f3f761ed99bd577661e7a6335a2529eda2ba3 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Sep 18 07:48:15 2013 +0200 exec: Fix broken build for MinGW (regression) Commit 3435f39513a104294b5e3bbf3612047028d25cfc reduced the ifdeffery with this result for MinGW: exec.c: In function â??qemu_ram_freeâ??: exec.c:1239:17: warning: implicit declaration of function â??munmapâ?? [-Wimplicit-function-declaration] exec.c:1239:17: warning: nested extern declaration of â??munmapâ?? [-Wnested-externs] exec.c:1239: undefined reference to `munmap' Add some ifdeffery again to fix this. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit e76d05c2b5028f09f6ac6bd2beee94103f388722 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Sep 17 22:39:55 2013 +0200 kvm: Fix compiler warning (clang) Report from clang analyzer: clock.c:42:15: warning: Value stored to 'cpu' during its initialization is never read Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 387e417666c28bd0cdc33c51036838dbae3bd3a4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Sep 6 13:24:11 2013 -0700 tcg-sparc: Fix parenthesis warning error: suggest parentheses around comparison in operand of â??&â?? [-Werror=parentheses] Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 8b6bfc771133caec7b1579c2bfa8838aec58e249 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Jul 25 18:24:58 2013 +0200 Makefile: Remove some more files when cleaning Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 469936ae0a9891b2de7e46743f683535b0819bee Author: Tobias Markus <tobias@xxxxxxxxxxxxxxxxxxxx> Date: Sun Aug 25 12:20:06 2013 +0200 target-i386: Fix segment cache dump When in Long Mode, cpu_x86_seg_cache() logs "DS16" because the Default operation size bit (D/B bit) is not set for Long Mode Data Segments since there are only Data Segments in Long Mode and no explicit 16/32/64-bit Descriptors. This patch fixes this by checking the Long Mode Active bit of the hidden flags variable and logging "DS" if it is set. (I.e. in Long Mode all Data Segments are logged as "DS") Signed-off-by: Tobias Markus <tobias@xxxxxxxxxxxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2be178a475289286db80de5ddd7830e67e112bdd Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Sat Sep 14 13:11:36 2013 +0400 iov: avoid "orig_len may be used unitialized" warning Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 69fded480e335ecfe877e2c37de0eff265fced12 Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Sat Sep 14 13:10:16 2013 +0400 vscclient: remove unnecessary use of uninitialized variable Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ddd0bd480fc07cc45f9cc7e3d113f23cb58b6082 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Sep 13 10:49:51 2013 +0200 trace-events: Clean up with scripts/cleanup-trace-events.pl again Event qxl_render_blit_guest_primary_initialized is unused since commit c58c7b9, drop it. Commit 42e5b4c moved hw/ppc/xics.c to hw/intc/xics.c without updating the comment in trace-events. "scripts/cleanup-trace-events.pl trace-events | diff trace-events" is now clean again. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 07ac4dc5db22a31e47b149abdbc5ea99013cf4de Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 20:17:50 2013 +0200 tci: Fix qemu-alpha on 32 bit hosts (wrong assertions) Debian busybox-static for alpha has a load address of 0x0000000120000000 which is mapped to 0x0000000020000000 for 32 bit hosts. qemu-alpha uses the TCG opcodes qemu_ld32, qemu_ld64, qemu_st32 and qemu_st64 which all raise the assertion (taddr == host_addr). Remove all assertions of this type because they are either wrong or unnecessary (when sizeof(tcg_target_ulong) >= sizeof(target_ulong)). Cc: qemu-stable <qemu-stable@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 6f20f55bccdead8e68c753093f3af6a74cbba883 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 19:57:15 2013 +0200 *-user: Improve documentation for lock_user function Add a missing "function" and replace "and" by "any". BSD and Linux use the same documentation here, so fix both. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2b7be8c8f5cecf936b7269ad1664361eee344842 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 20:24:31 2013 +0200 MAINTAINERS: Add missing entry to filelist for TCI target tci.c is also a maintained part of the TCI implementation. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 227b8175e2c60334c644c7cf7800bef8efbe085b Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 20:09:06 2013 +0200 translate-all: Fix formatting of dump output The page dump writes a table with 3 abi_ulong values in each row. These values take 8 or 16 characters (depending on sizeof abi_ulong). Fix the table headings to be aligned with the table columns. old: start end size prot 0000000120000000-000000012021e000 000000000021e000 rwx 0000004000000000-0000004000002000 0000000000002000 --- 0000004000002000-0000004000802000 0000000000800000 rw- new: start end size prot 0000000120000000-000000012021e000 000000000021e000 rwx 0000004000000000-0000004000002000 0000000000002000 --- 0000004000002000-0000004000802000 0000000000800000 rw- Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 41d1af4de44ac8729a21e4bf233d696861a3c570 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 19:57:41 2013 +0200 *-user: Fix typo in comment (ulocking -> unlocking) Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 314b5d4bb6664e236aa90a478dd1e7833a918513 Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> Date: Tue Sep 10 17:36:18 2013 +0100 docs: Fix IO port number for CPU present bitmap. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Reviewd-By: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 451f7846ec64bbaa8feba03851e6fbb52acbf55c Author: Richard W.M. Jones <rjones@xxxxxxxxxx> Date: Mon Sep 2 14:43:36 2013 +0100 q35: Fix typo in constant DEFUALT -> DEFAULT. Signed-off-by: Richard W.M. Jones <rjones@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit e600cdf3b4ffe3370eb10a8e43ed547ac0f716cf Author: Michal Privoznik <mprivozn@xxxxxxxxxx> Date: Thu Sep 5 12:54:49 2013 +0200 configure: Undefine _FORTIFY_SOURCE prior using it Currently, we are enforcing the _FORTIFY_SOURCE=2 without any previous detection if the macro has been already defined, e.g. by environment, or is just enabled by compiler by default. Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> Signed-off-by: Jan Vesely <jano.vesely@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2571f8f5fbaea5dc3bdcd84737f109b459576e90 Merge: ce63e9c 521e759 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Fri Sep 20 08:08:18 2013 -0500 Merge remote-tracking branch 'spice/spice.v74' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * spice/spice.v74: qxl: compile only once qxl: simplify page dirtying qxl: simplify qxl_rom_size qxl: define qxl operating on 4k pages Message-id: 1379583534-7831-1-git-send-email-kraxel@xxxxxxxxxx commit ce63e9c258a05e344f81b28f2b995c530909a3f0 Merge: f54c49e 0ca6db4 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Fri Sep 20 08:08:08 2013 -0500 Merge remote-tracking branch 'kraxel/usb.90' into staging # By Hans de Goede (6) and Gerd Hoffmann (1) # Via Gerd Hoffmann * kraxel/usb.90: usb: Fix iovec memleak on combined-packet free usb: Also reset max_packet_size on ep_reset xhci: Fix memory leak on xhci_disable_ep xhci: Add xhci_epid_to_usbep helper function xhci: Init a transfers xhci, slotid and epid member on epctx alloc xhci: Fix number of streams allocated when using streams usb: remove old usb-host code Message-id: 1379583298-7524-1-git-send-email-kraxel@xxxxxxxxxx commit f54c49e2187976f4c3f6db1029461f3077e9f377 Merge: 92bfedb 7b5ce8d Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Fri Sep 20 08:06:38 2013 -0500 Merge remote-tracking branch 'luiz/queue/qmp' into staging # By Luiz Capitulino # Via Luiz Capitulino * luiz/queue/qmp: QMP: qmp-events.txt: alphabetical order fix and other minor changes QMP: Update qmp-spec.txt QMP: Update README file QMP: QMP/ -> docs/qmp/ QMP: fix qmp-commands.txt generation path QMP: add scripts/qmp Message-id: 1379509422-29115-1-git-send-email-lcapitulino@xxxxxxxxxx commit 6a444f8507514b3707c8807ed11c176d3fbc5860 Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Wed May 22 14:11:36 2013 +0200 s390/sclplmconsole: Add support for SCLP line-mode console Add simple support for SCLP line-mode also known as operating system messages. This can be added in addition to or instead of the SCLP full screen console with -device sclplmconsole. Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 40fa5264f68e04fdeb1fe0367955a98925349efd Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Tue May 21 17:04:58 2013 +0200 s390/ebcdic: Move conversion tables to header file Move conversion tables to header file. - In SCLP line mode processing EBCDIC/ASCII conversion is needed. - An additional EBCDIC to ASCII conversion function is added. Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit c3d9f24a392979cbd6a40d102c71eab018117f3e Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Tue Sep 17 13:07:30 2013 +0200 s390/eventfacility: allow childs to handle more than 1 event type Currently all handlers (quiesce, console) only handle one event type. Some drivers will handle multiple (compatible) event types. Rework the code accordingly. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> commit 8b8b1138df5e512dc8a89896c44b67d192dd3d7d Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Tue Sep 17 13:01:31 2013 +0200 s390/eventfacility: remove unused event_type variable The event_type variable is never used. Get rid of it. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> commit 788be8e9d669c314ad7aef1a71bce31367cfe462 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Tue Sep 17 10:32:54 2013 +0200 s390/eventfacility: Fix receive/send masks Currently we announce interchanged receive/send masks. This did not trigger a bug, since the sclp console has the same masks for send/receive and the Linux guest does not check the sclp mask for simple events like quiesce. With other event users like the sclp line mode console, we will have different send/receive bits. Fix it. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> commit a0c8699b23ea065f8435d3bd04bd23f1783aa454 Author: Ralf Hoppe <rhoppe@xxxxxxxxxx> Date: Mon Aug 19 09:41:24 2013 +0200 s390/eventfacility: fix multiple Read Event Data sources Make the handler for SCLP Read Event Data deal with notifications for multiple sources correctly. Signed-off-by: Ralf Hoppe <rhoppe@xxxxxxxxxx> Reviewed-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> [split bigger patch into smaller independent chunks] Reviewed-by: Alexander Graf <agraf@xxxxxxx> commit 3af6de321f39eda37d60a26559c63029c0d5b4c9 Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 4 12:55:45 2013 +0200 s390/sclp: add reset() functions Add reset() functions for event-facility, sclpconsole, and sclpquiesce. The reset() functions perform variable initialization at IPL and e.g. when monitor system_reset is called. Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 7e36b7a3561d685b8fb071b25ab887e890973a4d Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Tue Sep 11 13:41:26 2012 +0200 s390/sclpquiesce: Add code to support live migration This patch adds the necessary life migration pieces to sclpquiesce by using the vmstate_register. Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit cb335bebe1f5eadd0188215a9703c3fd90cfe84e Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Tue Sep 11 13:41:26 2012 +0200 s390/sclpconsole: Add code to support live migration for sclpconsole This patch adds the necessary life migration pieces to the sclp code by using vmstate_register. Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit ea9ad3e945526c56935c245a268731878c74e570 Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Wed Aug 28 16:30:28 2013 +0200 s390/sclpconsole: modify definition of input buffer To use VMState for migration, we need to adapt some sclp code: - allocate console buffer as part of the console - change semantic of sclpconsole offset fields Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit d8b30c830243c5b7180befd9e1921383c9626bf0 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Thu Sep 19 09:32:03 2013 +0200 s390/kexec: Implement diag308 subcode 0 This patch implements subcode 0 of diag 308. This is necessary for kexec (without kdump). The main difference to subcode 1 is that all CPUs get a full reset, instead of the architectured CPU reset (which leaves all registers untouched). Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 0f39ac9a07cc10278e37d87076b143008f28aa3b Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Sep 19 12:29:15 2013 +0200 qcow2: Correct snapshots size for overlap check Using s->snapshots_size instead of snapshots_size for the metadata overlap check in qcow2_write_snapshots leads to the detection of an overlap with the main qcow2 image header when deleting the last snapshot, since s->snapshots_size has not yet been updated and is therefore non-zero. However, the offset returned by qcow2_alloc_clusters will be zero since snapshots_size is zero. Therefore, an overlap is detected albeit no such will occur. This patch fixes this by replacing s->snapshots_size by snapshots_size when calling qcow2_pre_write_overlap_check. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5d9bf1c07c1369ab3506fc82cc65a10f4415d867 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Mon Jul 1 15:44:18 2013 +0200 s390/ioinst: Moved the CC setting to the IO instruction handlers The IO instruction handlers now take care of setting the CC value on their own, so that the confusing return code magic in kvm_handle_css_inst() is not needed anymore. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 3d0a615fe92501684d8d2dc54326f0241b666bd2 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Jul 2 13:43:38 2013 +0200 s390/cpu: Make setcc() function available to other files Moved the setcc() function to cpu.h so that it can be used by other files, too. It now also does not modify the kvm state anymore since this gets updated during kvm_arch_put_registers() anyway. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 1902269c19a2c8ba852f90f04d6dfde1d1145d6f Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Mon Sep 2 11:05:43 2013 +0200 s390/ipl: Update the s390-ccw.img rom Rebuild of the virtio-ccw rom containing these patches: 1. s390/ipl: Fix waiting for virtio processing Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 441ea695f9e9d64399f69904c2dd12e59963f1a4 Author: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Date: Thu Aug 29 17:52:43 2013 +0200 s390/ipl: Fix waiting for virtio processing The guest side must not manipulate the index for the used buffers. Instead, remember the state of the used buffer locally and wait until it has moved. Signed-off-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit abd137a1bc72614e1e6ca1cd9502426e4b4f7e6a Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Thu Aug 29 12:40:25 2013 +0200 s390/dump: zero out padding bytes in notes sections The prstatus of an s390x dump contains several padding areas. Zero out these bytes to make reading the notes section easier with a hexdump. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 3ac85fb66626ea91641f5fb9ad9069aab94754f5 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Mon Jul 29 15:49:16 2013 +0200 s390/kvm: Add check for priviledged SCLP handler The SCLP instruction is priviledged, so we should make sure that we generate an exception when it is called from the problem state. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit f010bc643a2759e87e989c3e4e85f15ec71ae98f Author: Andrew Jones <drjones@xxxxxxxxxx> Date: Wed Sep 18 16:41:45 2013 +0200 target-i386: add feature kvm_pv_unhalt I don't know yet if want this feature on by default, so for now I'm just adding support for "-cpu ...,+kvm_pv_unhalt". Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 4f2656079f903efcd0d8224cbc79170ad3ee5b70 Author: Andrew Jones <drjones@xxxxxxxxxx> Date: Wed Sep 18 16:41:44 2013 +0200 linux-headers: update to 3.12-rc1 Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 787aaf5703a702094f395db6795e74230282cd62 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Mon Sep 2 17:06:37 2013 +0200 target-i386: forward CPUID cache leaves when -cpu host is used Some users running cpu intensive tasks checking the cache CPUID leaves at startup and making decisions based on the result reported that the guest was not reflecting the host CPUID leaves when -cpu host is used. This patch fix this. Signed-off-by: Benoît Canet <benoit@xxxxxxxxxxx> [Rename new field to cache_info_passthrough - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c5daeae1b4ddff97d605bd954a7c2a2b2cf6040f Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Sep 3 18:27:37 2013 +1000 linux-headers: update to 3.11 Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 4fe6e9ecb7f9a221bfb3695079fb87946263a1e0 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Wed Sep 4 20:26:25 2013 +1000 kvm: fix traces to use %x instead of %d KVM request types are normally defined using hex constants but QEMU traces print decimal values instead, which is not very convenient. This changes the request type format from %d to %x. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 4357930b8a7d2fcff2d8121ec518117428a781e7 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Sep 3 18:08:52 2013 +0200 kvmvapic: Clear also physical ROM address when entering INACTIVE state To avoid misinterpreting INACTIVE after migration as old qemu-kvm's STANDBY, also clear rom_state_paddr when going back to this state. CC: qemu-stable@xxxxxxxxxx Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c056bc3f3464cfae1c94b7dd633d3ec13b13b655 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Sep 3 18:08:51 2013 +0200 kvmvapic: Enter inactive state on hardware reset ROM layout may change after reset of devices are hotplugged, so we have to pick up the physical address again when the ROM is initialized. This is best achieved by resetting the state to INACTIVE. CC: qemu-stable@xxxxxxxxxx Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 18e5eec4db96a00907eb588a2b803401637c7f67 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Sep 3 18:08:50 2013 +0200 kvmvapic: Catch invalid ROM size If not caught early, a zero-length ROM will cause a NULL-pointer access later on in patch_hypercalls when allocating a zero-length ROM copy and trying to read from it. CC: qemu-stable@xxxxxxxxxx Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 76fe21dedafb0319306bc993f23e7646b139cfe4 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Sep 3 18:08:25 2013 +1000 kvm irqfd: support direct msimessage to irq translation On PPC64 systems MSI Messages are translated to system IRQ in a PCI host bridge. This is already supported for emulated MSI/MSIX but not for irqfd where the current QEMU allocates IRQ numbers from irqchip and maps MSIMessages to IRQ in the host kernel. This adds a new direct mapping flag which tells the kvm_irqchip_add_msi_route() function that a new VIRQ should not be allocated, instead the value from MSIMessage::data should be used. It is up to the platform code to make sure that this contains a valid IRQ number as sPAPR does in spapr_pci.c. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0e5035776df31380a44a1a851850d110b551ecb6 Author: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Date: Tue Sep 3 18:55:16 2013 -0300 fix steal time MSR vmsd callback to proper opaque type Convert steal time MSR vmsd callback pointer to proper X86CPU type. Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 670436ced08738802e15764039d03ab0dbab2bf3 Author: Andrew Jones <drjones@xxxxxxxxxx> Date: Fri Aug 23 15:24:37 2013 +0200 kvm: warn if num cpus is greater than num recommended The comment in kvm_max_vcpus() states that it's using the recommended procedure from the kernel API documentation to get the max number of vcpus that kvm supports. It is, but by always returning the maximum number supported. The maximum number should only be used for development purposes. qemu should check KVM_CAP_NR_VCPUS for the recommended number of vcpus. This patch adds a warning if a user specifies a number of cpus between the recommended and max. Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> Acked-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit 97577fd4c31777780a22b77afa4590086ac962c7 Author: James Hogan <james.hogan@xxxxxxxxxx> Date: Tue Aug 27 12:19:10 2013 +0100 cpu: Move cpu state syncs up into cpu_dump_state() The x86 and ppc targets call cpu_synchronize_state() from their *_cpu_dump_state() callbacks to ensure that up to date state is dumped when KVM is enabled (for example when a KVM internal error occurs). Move this call up into the generic cpu_dump_state() function so that other KVM targets (namely MIPS) can take advantage of it. This requires kvm_cpu_synchronize_state() and cpu_synchronize_state() to be moved out of the #ifdef NEED_CPU_H in <sysemu/kvm.h> so that they're accessible to qom/cpu.c. Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx> Cc: Andreas Färber <afaerber@xxxxxxx> Cc: Alexander Graf <agraf@xxxxxxx> Cc: Gleb Natapov <gleb@xxxxxxxxxx> Cc: qemu-ppc@xxxxxxxxxx Cc: kvm@xxxxxxxxxxxxxxx Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit 3e469dbfe413c25d48321c3a19ddfae0727dc6e5 Author: Andrea Arcangeli <aarcange@xxxxxxxxxx> Date: Thu Jul 25 12:11:15 2013 +0200 exec: always use MADV_DONTFORK MADV_DONTFORK prevents fork to fail with -ENOMEM if the default overcommit heuristics decides there's too much anonymous virtual memory allocated. If the KVM secondary MMU is synchronized with MMU notifiers or not, doesn't make a difference in that regard. Secondly it's always more efficient to avoid copying the guest physical address space in the fork child (so we avoid to mark all the guest memory readonly in the parent and so we skip the establishment and teardown of lots of pagetables in the child). In the common case we can ignore the error if MADV_DONTFORK is not available. Leave a second invocation that errors out in the KVM path if MMU notifiers are missing and KVM is enabled, to abort in such case. Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx> Tested-By: Benoit Canet <benoit@xxxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit a9031675b9f757eef0fe8c99284ec0133c032c32 Author: Gabriel Kerneis <gabriel@xxxxxxxxxxxx> Date: Tue Sep 17 18:26:48 2013 +0200 coroutine: fix /perf/nesting coroutine benchmark The /perf/nesting benchmark is broken because the counters are not reset after each iteration. Therefore, nesting is done only on the first iteration, and skipped on every other. This patch fixes the issue, and reduces the number of iterations to make it possible to run the benchmark in a reasonable amount of time. Signed-off-by: Gabriel Kerneis <gabriel@xxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2fcd15eac3223b3907837e8d7f2b3829a16a4c45 Author: Gabriel Kerneis <gabriel@xxxxxxxxxxxx> Date: Tue Sep 17 17:09:39 2013 +0200 coroutine: add qemu_coroutine_yield benchmark Current coroutine performance benchmarks test only coroutine creation, either directly or in a nested way. This patch adds a benchmark to evaluate the performance of qemu_coroutine_yield. Signed-off-by: Gabriel Kerneis <gabriel@xxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0ca6db4f3b3df5c4e5285a48a7709bdced5068de Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Sep 17 21:44:52 2013 +0200 usb: Fix iovec memleak on combined-packet free Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 9adbaad318cddd300c42dbbbc88991cdc9cecd99 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Sep 17 21:44:53 2013 +0200 usb: Also reset max_packet_size on ep_reset Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit b21da4e504fbdb907543a918b190783dc896d8e1 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Sep 17 21:44:51 2013 +0200 xhci: Fix memory leak on xhci_disable_ep The USBPacket-s in the transfers need to be cleaned up so that the memory allocated by the iovec in there gets freed. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 518ad5f2a0754f0a5ce4e478b79f4926ce46111b Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Sep 17 21:44:50 2013 +0200 xhci: Add xhci_epid_to_usbep helper function And use it instead of prying the USBEndpoint out of the packet struct in various places. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 4c5d82ecf1e8fd0720137f7d09fc77d65b51b4d0 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Sep 17 21:44:49 2013 +0200 xhci: Init a transfers xhci, slotid and epid member on epctx alloc Transfers are part of an epctx, which is part of a slot, which is part of a xhci. Transfers cannot dynamically be moved from one epctx to another, so once created their xhci, slotid and epid are constant, so lets set these up at creation time, rather then re-initializing them with the same value each time a transfer gets submitted. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit d063c3112c4cd23a479ee18720c2bd119da2d315 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Mon Sep 16 17:04:27 2013 +0200 xhci: Fix number of streams allocated when using streams According to the xhci spec the total number of streams is 2 ^ (MaxPStreams + 1), and this is also how the Linux xhci driver uses this field. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit b5613fdcb0e03d47852582c252942512f050b5b6 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Sep 10 11:02:59 2013 +0200 usb: remove old usb-host code The usb-host code has been rewritten for qemu 1.5 to use libusb, the old code has been left in as temporary fallback. Now we are two releases further out, targeting the 1.7 release. No major issues with the new code poped up until now. Time to remove it from tre tree. Should we ever need it again for some reason -- git has a copy for us in the history. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 3db1ee7c2af2fbbfe259712e3ce74158bc667ad3 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Sep 12 11:02:20 2013 +0200 qemu-timer: do not take the lock in timer_pending We can deduce the result from expire_time, by making it always -1 if the timer is not in the active_timers list. We need to check against negative times passed to timer_mod_ns; clamping them to zero is not a problem because the only clock that has a zero value at VM startup is QEMU_CLOCK_VIRTUAL, and it is monotonic so it cannot be non-zero. QEMU_CLOCK_HOST, instead, is not monotonic but it cannot go to negative values unless the host time is seriously screwed up and points to the 1960s. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 978f2205c791de0e02c8802a645bea657408abfd Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Sep 12 11:02:19 2013 +0200 qemu-timer: make qemu_timer_mod_ns() and qemu_timer_del() thread-safe Introduce QEMUTimerList->active_timers_lock to protect the linked list of active timers. This allows qemu_timer_mod_ns() to be called from any thread. Note that vm_clock is not thread-safe and its use of qemu_clock_has_timers() works fine today but is also not thread-safe. The purpose of this patch is to eventually let device models set or cancel timers from a vcpu thread without holding the global mutex. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit da718ceb1730bfe6fea0178df979639b14a0646e Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Sep 12 11:02:18 2013 +0200 qemu-timer: drop outdated signal safety comments host_alarm_handler() is invoked from the signal processing thread (currently the iothread). Previously we did processing in a real signal handler with signalfd and therefore needed signal-safe timer code. Today host_alarm_handler() just marks the alarm timer as expired/pending and notifies the main loop using qemu_notify_event(). Therefore these outdated comments about signal safety can be dropped. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a5813077aac7865f69b7ee46a594f3705429f7cd Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Aug 22 11:29:03 2013 +0200 osdep: warn if open(O_DIRECT) on fails with EINVAL Print a warning when opening a file O_DIRECT fails with EINVAL. This saves users a lot of time trying to figure out the EINVAL error, which is typical when attempting to open a file O_DIRECT on Linux tmpfs. Reported-by: Deepak C Shetty <deepakcs@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 975a0015ee380f49a3be744279a6a06ab97e960a Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Aug 22 11:29:02 2013 +0200 libcacard: link against qemu-error.o for error_report() Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7b5ce8db600a5d1842b9cb0cf8e8bb7af87fee10 Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Wed Sep 11 13:58:12 2013 -0400 QMP: qmp-events.txt: alphabetical order fix and other minor changes Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 715c18600ca770a8ada65d9fd77ad6423ab5fce9 Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Wed Sep 11 13:52:51 2013 -0400 QMP: Update qmp-spec.txt Simplify the text, fix some of the examples. Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 52bbff77c4d1c26b5d9f56e1f140523ec931c471 Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Tue Sep 10 17:15:49 2013 -0400 QMP: Update README file Drop unneeded info, fix some of the examples and rename QEMU Monitor Protocol to QEMU Machine Protocol. Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 7537fe0487c3f7991584ca1c4bf9b6c58cd33968 Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Tue Sep 10 17:00:45 2013 -0400 QMP: QMP/ -> docs/qmp/ Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit d076a2adddece29ad33afcce01e441bfc1c6923d Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Tue Sep 10 16:56:14 2013 -0400 QMP: fix qmp-commands.txt generation path This file should be generated in the BUILD_DIR, as all other docs. Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 22f3946bc5db2090ffc4ea41f2b83d09e58b665e Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Tue Sep 10 16:39:23 2013 -0400 QMP: add scripts/qmp Populate it with all scripts stored in QMP/. Also fixes trailing whitespaces in qmp-shell and qmp.py. Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 521e759cf1ca05fc59a8653e48f18f830edbda7e Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Sep 11 13:32:07 2013 +0200 qxl: compile only once Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit b0297b4a82f5ba39f6e75c024f80bc4c20070d27 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Sep 11 13:15:48 2013 +0200 qxl: simplify page dirtying No need to do target page size calculations here, memory_region_set_dirty will care for us. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 60b3b2a55f4b3fb72419ce7e4b44378dc56eed28 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Sep 11 13:08:49 2013 +0200 qxl: simplify qxl_rom_size Nowdays rom size is fixed at 8192 for live migration compat reasons. So we can ditch the pointless math trying to calculate the size needed. Also make the size sanity check fail at compile time not runtime. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 9efc2d8d813b94fde0a2bad6c13850bef7636748 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Sep 11 13:14:25 2013 +0200 qxl: define qxl operating on 4k pages Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f35c934a5add17eb549e3f7f4b8286605eb21e99 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Sep 17 19:33:49 2013 +0200 block/iscsi: Drop iscsi_co_get_block_status for older versions of libiscsi Debian wheezy includes libiscsi-dev 1.4.0 which does not provide SCSI_PROVISIONING_TYPE_DEALLOCATED. Drop iscsi_co_get_block_status in this case to allow compilation without errors. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 92bfedb0b6071c5c59f97c99a0ff79e3a0856bd4 Author: Eduardo Otubo <otubo@xxxxxxxxxxxxxxxxxx> Date: Mon Sep 9 14:04:15 2013 -0300 MAINTAINERS: Add myself to MAINTAINERS file Add myself to the MAINTAINERS file. I'll be looking at qemu-seccomp.c and include/sysemu/seccomp.h. Signed-off-by: Eduardo Otubo <otubo@xxxxxxxxxxxxxxxxxx> Acked-by: Paul Moore <pmoore@xxxxxxxxxx> Message-id: 1378746255-2089-1-git-send-email-otubo@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 46663e5eff4be1d79971f46e51c9bb415ec8f5be Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 17 11:10:47 2013 -0500 hmp: block-stream: fix typo Found this by enabling C++ errors. The bool and enum arguments are mistakenly flipped. Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 6c2679fc19560699679200fb42ab4659bcbe7f79 Merge: 5dc1119 426e3e6 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 17 10:01:24 2013 -0500 Merge remote-tracking branch 'kiszka/queues/slirp' into staging # By Liu Ping Fan (3) and Jan Kiszka (1) # Via Jan Kiszka * kiszka/queues/slirp: slirp: clean up slirp_update_timeout slirp: set mainloop timeout with more precise value slirp: define timeout as macro slirp: make timeout local Message-id: cover.1379415024.git.jan.kiszka@xxxxxxxxxxx commit 5dc11192b23fbb09fab277d58ac3c42b9699a8b0 Merge: ab9cec4 c21bddf Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 17 09:51:40 2013 -0500 Merge remote-tracking branch 'kwolf/for-anthony' into staging # By Max Reitz (16) and others # Via Kevin Wolf * kwolf/for-anthony: (33 commits) qemu-iotests: Fix test 038 block: Assert validity of BdrvActionOps qemu-iotests: Cleanup test image in test number 007 qemu-img: fix invalid JSON coroutine: add ./configure --disable-coroutine-pool qemu-iotests: Adjustments due to error propagation qcow2: Use Error parameter qemu-img create: Emit filename on error block: Error parameter for create functions block: Error parameter for open functions bdrv: Use "Error" for creating images bdrv: Use "Error" for opening images qemu-iotests: add 057 internal snapshot for block device test case hmp: add interface hmp_snapshot_delete_blkdev_internal hmp: add interface hmp_snapshot_blkdev_internal qmp: add interface blockdev-snapshot-delete-internal-sync qmp: add interface blockdev-snapshot-internal-sync qmp: add internal snapshot support in qmp_transaction snapshot: distinguish id and name in snapshot delete snapshot: new function bdrv_snapshot_find_by_id_and_name() ... Message-id: 1379073063-14963-1-git-send-email-kwolf@xxxxxxxxxx commit ab9cec42bf3ed1d9bb574b7de5f3c61da47b3a81 Merge: 7d41364 bff9328 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 17 09:51:23 2013 -0500 Merge remote-tracking branch 'rth/tgt-i386' into staging # By Paolo Bonzini (1) and Peter Maydell (1) # Via Richard Henderson * rth/tgt-i386: target-i386: Only provide CMOV and friends if feature bit set target-i386: fix disassembly with PAE=1, PG=0 Message-id: 1379010496-5875-1-git-send-email-rth@xxxxxxxxxxx commit 7d41364e712f00894759f7dbf2623a8b27b79a0e Merge: 25afd6e f4ff3b7 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 17 09:50:23 2013 -0500 Merge remote-tracking branch 'bonzini/scsi-next' into staging # By Peter Lieven (3) and others # Via Paolo Bonzini * bonzini/scsi-next: spapr-vscsi: Report error on unsupported MAD requests spapr-vscsi: Adding VSCSI capabilities iscsi: split discard requests in multiple parts iscsi: add .bdrv_get_block_status iscsi: add logical block provisioning information to iscsilun hw/scsi/lsi53c895a: Use deposit32 rather than handcoded shift/mask hw/scsi/lsi53c895a: Use sextract32 for sign-extension scsi: Fix scsi_bus_legacy_add_drive() scsi-generic with serial virtio-scsi: Make type virtio-scsi-common abstract spapr-vscsi: add task management scsi: prefer UUID to VM name for the initiator name Message-id: 1378984634-765-1-git-send-email-pbonzini@xxxxxxxxxx commit 25afd6eb150324c70164875853a9aede08c48aff Merge: 7f87af3 b0d768c Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 17 09:49:43 2013 -0500 Merge remote-tracking branch 'kraxel/chardev.7' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * kraxel/chardev.7: chardev: fix pty_chr_timer Message-id: 1378972894-11185-1-git-send-email-kraxel@xxxxxxxxxx commit 426e3e6ce1abdb0d85faefbfac3cf4dcc7f224a3 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Wed Aug 28 19:12:15 2013 +0200 slirp: clean up slirp_update_timeout No need to write out the timeout early, keep it local until we are done. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> commit a42e9c41888bc6a5446ef6bd95745c9fd023f107 Author: Liu Ping Fan <qemulist@xxxxxxxxx> Date: Sun Aug 25 10:01:21 2013 +0800 slirp: set mainloop timeout with more precise value If slirp needs to emulate tcp timeout, then the timeout value for mainloop should be more precise, which is determined by slirp's fasttimo or slowtimo. Achieve this by swap the logic sequence of slirp_pollfds_fill and slirp_update_timeout. Signed-off-by: Liu Ping Fan <pingfank@xxxxxxxxxxxxxxxxxx> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> commit 9b0ca6cc64d3542be35f1ca6174de2ab6af30ed0 Author: Liu Ping Fan <qemulist@xxxxxxxxx> Date: Sun Aug 25 10:01:20 2013 +0800 slirp: define timeout as macro Signed-off-by: Liu Ping Fan <pingfank@xxxxxxxxxxxxxxxxxx> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> commit fe0ff43c9d8ccf45effdade8d40e44aed421187f Author: Liu Ping Fan <qemulist@xxxxxxxxx> Date: Sun Aug 25 10:01:19 2013 +0800 slirp: make timeout local Each slirp has its own time to caculate timeout. Signed-off-by: Liu Ping Fan <pingfank@xxxxxxxxxxxxxxxxxx> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> commit ceae18bd74e8940ff79935a257c72e665b084bcc Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Sat Sep 14 17:51:09 2013 +0200 lsi: add 53C810 variant Currently, treat it exactly as a 53C895A. 53C895A is a 53C810 with more capabilities, so this should work. However, this lets us test different code paths on Linux, which don't use lastest features if it detect a 810, or on some OSes which only support 810 and not 895A (like very old Windows NT versions). Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 689f5ff4376c576681ee581f11e710d6711f06b4 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Sat Sep 14 17:51:08 2013 +0200 lsi: remove todo LSI emulation has been tested with Linux on PPC platform. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0903c35ddeebde56772b39cf08e7a0bae2eb39eb Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Sat Sep 14 17:51:07 2013 +0200 lsi: ignore write accesses to CTEST0 registers 53C895A datasheet says that this register is read/write, and that the value returned on read access is dependant of DMA FIFO state. However, nothing is said for written value. 53C810A datasheet gives more insight about this register: "This was a general purpose read/write register in previous SYM53C8XX family chips. Although it is still a read/write register, Symbios reserves the right to use these bits for future 53C8XX family enhancements." This prevents going to the default case, which prints an error message. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c7ac9f403af37439da0ce650b68bbcb13439768e Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Sat Sep 14 17:51:06 2013 +0200 lsi: check ssid versus sdid only if ssid is valid This prevents some (invalid) error messages on console. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 16b8ed1d09e9535457a09b9faf7a7e6c6e8da255 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Sat Sep 14 17:51:05 2013 +0200 lsi: use constant name instead of its value Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 9f1a029abf15751e32a4b1df99ed2b8315f9072c Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Fri Sep 13 13:58:44 2013 +0200 pci: remove explicit check to 64K ioport size This check is useless, as bigger addresses will be ignored when added to 'io' MemoryRegion, which has a size of 64K. However, some architectures don't use the 'io' MemoryRegion, like the alpha and versatile platforms. They create a PCI I/O region bigger than 64K, so let them handle PCI I/O BARs in the higher range. MST: reinstated work-around for BAR sizing. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c046e8c4a26c902ca1b4f5bdf668a2da6bc75f54 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Sep 11 13:33:31 2013 +0300 piix4: disable io on reset io base register at 0x40 is cleared on reset, but io is not disabled until some other event happens to call pm_io_space_update. Invoke pm_io_space_update directly to make this consistent. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 2028fdf3791e14c5ad156252afa0e792192a3e92 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Sep 2 12:58:57 2013 +0300 piix: use 64 bit window programmed by guest Detect the 64 bit window programmed by firmware and configure properties accordingly. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8b42d730e3401084720f4ba59d1e18a0d6c67dc6 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Sep 2 12:57:36 2013 +0300 q35: use 64 bit window programmed by guest Detect the 64 bit window programmed by firmware and configure properties accordingly. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 438640695723f33be6d0081ac1e690aa40975c39 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Sep 2 11:37:02 2013 +0300 pci: add helper to retrieve the 64-bit range Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c5a22c4344f17169bb20e122e9d935c62aedc063 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Sep 2 11:04:39 2013 +0300 range: add min/max operations on ranges Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit cfe25e2bcada943984e27ee63918fd75dc4563ac Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Sep 2 11:41:37 2013 +0300 range: add Range to typedefs will help simplify header dependencies. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 636228a887c4d5c0dc313bbf936de969b420a91a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Sep 1 13:26:03 2013 +0300 q35: make pci window address/size match guest cfg For Q35, MMCFG address and size are guest configurable. Update w32 property to make it behave accordingly. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c21bddf27fd8029890e9fc2ee314788919eababf Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Sep 13 10:37:12 2013 +0200 qemu-iotests: Fix test 038 Test 038 uses asynchronous I/O, resulting (potentially) in a different output for every run (regarding the order of the I/O accesses). This can be fixed by simply sorting the I/O access messages, since their order is irrelevant anyway (for this asynchonous I/O). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit bff93281a75def2e3197005d72ad5cdc4719383f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Jul 15 18:21:40 2013 +0100 target-i386: Only provide CMOV and friends if feature bit set The instructions CMOVcc, FCMOVcc and F[U]COMI[P] should only be present if the CMOV feature bit is set. Add missing feature bit checks so we correctly fault if emulating a 486 or 586. This fixes bug LP:1201446. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f2f8560c7a5303065a2a3207ec475dfb3a622a0e Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Aug 30 11:58:45 2013 +0200 target-i386: fix disassembly with PAE=1, PG=0 CR4.PAE=1 will not enable paging if CR0.PG=0, but the "if" chain in x86_cpu_get_phys_page_debug says otherwise. Check CR0.PG before everything else. Fixes "-d in_asm" for a code section at the beginning of OVMF. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Max Filippov <jcmvbkbc@xxxxxxxxx> commit 7f87af39dc786a979e7ebba338d0781e366060ed Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:12 2013 +0200 pc_sysfw: Fix ISA BIOS init for ridiculously big flash pc_isa_bios_init() suffers integer overflow for flash larger than INT_MAX. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Message-id: 1375276272-15988-9-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 39228250ce6cf67eb1c3799791d271f53c5c6347 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:11 2013 +0200 exec: Don't abort when we can't allocate guest memory We abort() on memory allocation failure. abort() is appropriate for programming errors. Maybe most memory allocation failures are programming errors, maybe not. But guest memory allocation failure isn't, and aborting when the user asks for more memory than we can provide is not nice. exit(1) instead, and do it in just one place, so the error message is consistent. Tested-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Message-id: 1375276272-15988-8-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit e1e84ba050538bae24393e40b737078ecad99747 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:10 2013 +0200 exec: Clean up unnecessary S390 ifdeffery Another issue missed in commit fdec991 is -mem-path: it needs to be rejected only for old S390 KVM, not for any S390. Not that I personally care, but the ifdeffery in qemu_ram_alloc_from_ptr() annoys me. Note that this doesn't actually make -mem-path work, as the kernel doesn't (yet?) support large pages in the host for KVM guests. Clean it up anyway. Thanks to Christian Borntraeger for pointing out the S390 kernel limitations. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Message-id: 1375276272-15988-7-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 2eb9fbaab56c6350c7d137428f4bd0bc79168214 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:09 2013 +0200 exec: Drop incorrect & dead S390 code in qemu_ram_remap() Old S390 KVM wants guest RAM mapped in a peculiar way. Commit 6b02494 implemented that. When qemu_ram_remap() got added in commit cd19cfa, its code carefully mimicked the allocation code: peculiar way if defined(TARGET_S390X) && defined(CONFIG_KVM), else normal way. For new S390 KVM, we actually want the normal way. Commit fdec991 changed qemu_ram_alloc_from_ptr() accordingly, but forgot to update qemu_ram_remap(). If qemu_ram_alloc_from_ptr() maps RAM the normal way, but qemu_ram_remap() remaps it the peculiar way, remapping changes protection and flags, which it shouldn't. Fortunately, this can't happen, as we never remap on S390. Replace the incorrect code with an assertion. Thanks to Christian Borntraeger for help with assessing the bug's (non-)impact. Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Message-id: 1375276272-15988-6-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 91138037cb341a04a66e4c43b6cb31d5d8a43a73 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:08 2013 +0200 exec: Simplify the guest physical memory allocation hook Make it a generic hook rather than a KVM hook. Less code and ifdeffery. Since the only user of the hook is old S390 KVM, there's hope we can get rid of it some day. Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Message-id: 1375276272-15988-5-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 3435f39513a104294b5e3bbf3612047028d25cfc Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:07 2013 +0200 exec: Reduce ifdeffery around -mem-path Instead of spreading its ifdeffery everywhere, confine it to qemu_ram_alloc_from_ptr(). Everywhere else, simply test block->fd, which is non-negative exactly when block uses -mem-path. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Message-id: 1375276272-15988-4-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 0628c18267bbe8d44f0faf3e71acf0ae31bea7fd Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:06 2013 +0200 exec: Clean up fall back when -mem-path allocation fails With -mem-path, qemu_ram_alloc_from_ptr() first tries to allocate accordingly, but when it fails, it falls back to normal allocation. The fall back allocation code used to be effectively identical to the "-mem-path not given" code, until it started to diverge in commit 432d268. I believe the code still works, but clean it up anyway: drop the special fall back allocation code, and fall back to the ordinary "-mem-path not given" code instead. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Message-id: 1375276272-15988-3-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit dfeaf2abc73429171ecc5b0b26ac4e5a24c047fc Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:05 2013 +0200 exec: Fix Xen RAM allocation with unusual options Issues: * We try to obey -mem-path even though it can't work with Xen. * To implement -machine mem-merge, we call memory_try_enable_merging(new_block->host, size). But with Xen, new_block->host remains null. Oops. Fix by separating Xen allocation from normal allocation. Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Message-id: 1375276272-15988-2-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit aa3fe714f70654da47d9c2659b2d9ee295a9d930 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Sep 12 14:57:27 2013 +0200 block: Assert validity of BdrvActionOps In qmp_transaction, assert that the BdrvActionOps to be used is actually valid. This assertion failing is very improbable, however, it might happen, if a new TransactionActionKind is introduced "out of order" and the actions[] array is not updated. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4aa846f25e7cf14c77f699d8c1dfdfeddb091161 Author: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Date: Thu Sep 12 14:07:59 2013 +0530 qemu-iotests: Cleanup test image in test number 007 qemu-iotests number 007 doesn't do test image cleanup. This will affect those protocols that expect a clean state before every test. Hence ensure that test image is cleaned up in this test. Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c745bfb4300206280ce6156b4bafe765f610057c Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 11 18:47:52 2013 +0200 qemu-img: fix invalid JSON Single quotes for JSON are a QMP-ism, use real JSON in qemu-img output. Reported-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f4ff3b7ba1bcb77d5b5cdbd6e695df793761170b Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Aug 29 18:13:25 2013 +1000 spapr-vscsi: Report error on unsupported MAD requests The existing driver just dropped unsupported requests. This adds error responses to those unhandled requests. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 26573a0c1f0427be168a537abccbcc942e07aa72 Author: Nikunj A. Dadhania <nikunj@xxxxxxxxxxxxxxxxxx> Date: Mon Sep 2 10:33:38 2013 +0530 spapr-vscsi: Adding VSCSI capabilities This implements capabilities exchange between vscsi host and client. As at the moment no capability is supported, put zero flags everywhere and return. Signed-off-by: Nikunj A Dadhania <nikunj@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Nikunj A. Dadhania <nikunj@xxxxxxxxxxxxxxxxxx> commit 65f3e33964bc4bb634d61463814a4ccca794e3c0 Author: Peter Lieven <pl@xxxxxxx> Date: Fri Jul 19 09:19:41 2013 +0200 iscsi: split discard requests in multiple parts Replace .bdrv_aio_discard with .bdrv_co_discard so that discard requests can be split in multiple parts, each for a small amount of sectors. This is useful because we expose a generic API with no limit on the amount of sectors that can be unmapped in one request. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 70c60c089fdc6bf8a79324e492c13e8c08d55942 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Sep 11 16:42:35 2013 +0200 coroutine: add ./configure --disable-coroutine-pool The 'gthread' coroutine backend was written before the freelist (aka pool) existed in qemu-coroutine.c. This means that every thread is expected to exit when its coroutine terminates. It is not possible to reuse threads from a pool. This patch automatically disables the pool when 'gthread' is used. This allows the 'gthread' backend to work again (for example, tests/test-coroutine completes successfully instead of hanging). I considered implementing thread reuse but I don't want quirks like CPU affinity differences due to coroutine threads being recycled. The 'gthread' backend is a reference backend and it's therefore okay to skip the pool optimization. Note this patch also makes it easy to toggle the pool for benchmarking purposes: ./configure --with-coroutine-backend=ucontext \ --disable-coroutine-pool Reported-by: Gabriel Kerneis <gabriel@xxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Gabriel Kerneis <gabriel@xxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2c78857bf6a9b5d06e17533b8f40fee14e087987 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 10 13:59:43 2013 +0200 qemu-iotests: Adjustments due to error propagation When opening/creating images, propagating errors instead of immediately emitting them on occurrence results in errors generally being printed on a single line rather than being split up into multiple ones. This in turn requires adjustments to some test results. Also, test 060 used a sed to filter out the test image directory and format by removing everything from the affected line after a certain keyword; this now also removes the error message itself, which can be fixed by using _filter_testdir and _filter_imgfmt. Finally, _make_test_img in common.rc did not filter out the test image directory etc. from stderr. This has been fixed through a redirection of stderr to stdout (which is already done in _check_test_img and _img_info). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> commit 3ef6c40ad0b350e18c78135ffbdbe209cb479c1f Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Sep 5 09:40:43 2013 +0200 qcow2: Use Error parameter Employ usage of the new Error ** parameter in qcow2_open, qcow2_create and associated functions. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> commit b70d8c237a0e5e829474c3a12c8783893c4e470e Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Sep 6 16:51:03 2013 +0200 qemu-img create: Emit filename on error bdrv_img_create generally does not emit the target filename, although this is pretty important information. Therefore, prepend its error message with the output filename (if an error occurs). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> commit cc84d90ff54c025190dbe49ec5fea1268217c5f2 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Sep 6 17:14:26 2013 +0200 block: Error parameter for create functions Add an Error ** parameter to bdrv_create and its associated functions to allow more specific error messages. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> commit 34b5d2c68eb4082c288e70fb99c61af8f7b96fde Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Sep 5 14:45:29 2013 +0200 block: Error parameter for open functions Add an Error ** parameter to bdrv_open, bdrv_file_open and associated functions to allow more specific error messages. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> commit d5124c00d80b4d948509f2c7f6b54228d9981f75 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Sep 5 14:26:05 2013 +0200 bdrv: Use "Error" for creating images Add an Error ** parameter to BlockDriver.bdrv_create to allow more specific error messages. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> commit 015a1036a74ad29bb6916754911ce25587ff4db3 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Sep 5 14:22:29 2013 +0200 bdrv: Use "Error" for opening images Add an Error ** parameter to BlockDriver.bdrv_open and BlockDriver.bdrv_file_open to allow more specific error messages. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> commit 8023090be592514dea4975428543edd598c65fc3 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:39 2013 +0800 qemu-iotests: add 057 internal snapshot for block device test case Create in transaction and deletion in single command will be tested. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7a4ed2ee4215eee80d2ae02097bbf63a33748fda Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:38 2013 +0800 hmp: add interface hmp_snapshot_delete_blkdev_internal It is hard to make both id and name optional in hmp console as qmp interface, so this interface require user to specify name. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 775ca88e8205248929a3f141925eafe2ec1e3275 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:37 2013 +0800 hmp: add interface hmp_snapshot_blkdev_internal Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 44e3e053af56c1faec79ac9fdd78ef3f0ecd467e Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:36 2013 +0800 qmp: add interface blockdev-snapshot-delete-internal-sync This interface use id and name as optional parameters, to handle the case that one image contain multiple snapshots with same name which may be '', but with different id. Adding parameter id is for historical compatiability reason, and that case is not possible in qemu's new interface for internal snapshot at block device level, but still possible in qemu-img. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f323bc9e8b3b46ad28402995a9dcaaeff3eb5e03 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:35 2013 +0800 qmp: add interface blockdev-snapshot-internal-sync Snapshot ID can't be specified in this interface. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit bbe860104f0544d7863296606e042cc62bf7ab4b Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:34 2013 +0800 qmp: add internal snapshot support in qmp_transaction Unlike savevm, the qmp_transaction interface will not generate snapshot name automatically, saving trouble to return information of the new created snapshot. Although qcow2 support storing multiple snapshots with same name but different ID, here it will fail when an snapshot with that name already exist before the operation. Format such as rbd do not support ID at all, and in most case, it means trouble to user when he faces multiple snapshots with same name, so ban that case. Request with empty name will be rejected. Snapshot ID can't be specified in this interface. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a89d89d3e65800fa4a8e00de7af0ea8272bef779 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:33 2013 +0800 snapshot: distinguish id and name in snapshot delete Snapshot creation actually already distinguish id and name since it take a structured parameter *sn, but delete can't. Later an accurate delete is needed in qmp_transaction abort and blockdev-snapshot-delete-sync, so change its prototype. Also *errp is added to tip error, but return value is kepted to let caller check what kind of error happens. Existing caller for it are savevm, delvm and qemu-img, they are not impacted by introducing a new function bdrv_snapshot_delete_by_id_or_name(), which check the return value and do the operation again. Before this patch: For qcow2, it search id first then name to find the one to delete. For rbd, it search name. For sheepdog, it does nothing. After this patch: For qcow2, logic is the same by call it twice in caller. For rbd, it always fails in delete with id, but still search for name in second try, no change to user. Some code for *errp is based on Pavel's patch. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2ea1dd758c45f8ff12c67ed7934c3ce021eeaf12 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:32 2013 +0800 snapshot: new function bdrv_snapshot_find_by_id_and_name() To make it clear about id and name in searching, add this API to distinguish them. Caller can choose to search by id or name, *errp will be set only for exception. Some code are modified based on Pavel's patch. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d982919d3897f36d79e215c46e3bc27fd6e27bf8 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Sep 5 10:55:54 2013 +0200 qemu-iotests: New test case in 061 Add one test case for zero cluster expansion on qcow2 version downgrade in shared L2 tables (i.e., L2 tables with a refcount > 1) and one for zero expansion on backed clusters in shared L2 tables. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit fd9c577b24818e0051e93c4f1e3db7262869f162 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Fri Sep 6 11:24:34 2013 +0800 qemu-iotests: add tests for runtime fd passing via SCM rights This case will test whether the monitor can receive fd at runtime. To verify better, additional monitor is created to see if qemu can handler two monitor instances correctly. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 30b005d9d75af6388899fad2f462efb8af2b25b3 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Fri Sep 6 11:24:33 2013 +0800 qemu-iotests: add infrastructure of fd passing via SCM This patch make use of the compiled scm helper program to transfer fd via unix socket at runtime. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f93296eaffcb3753f680f2dcffea2637f14f2092 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Fri Sep 6 11:24:32 2013 +0800 qemu-iotests: add unix socket help program This program can do a sendmsg call to transfer fd with unix socket, which is not supported in python2. The built binary will not be deleted in clean, but it is a existing issue in ./tests, which should be solved in another patch. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a8110c3d327cabff8dc258c5c8705903b56c1513 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 3 10:09:55 2013 +0200 qemu-iotest: qcow2 image option amendment Add tests for qemu-img amend on qcow2 image files. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9296b3ed7050cc6e0645fbc3b0aea74406d7eeb2 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 3 10:09:54 2013 +0200 qcow2: Implement bdrv_amend_options Implement bdrv_amend_options for compat, size, backing_file, backing_fmt and lazy_refcounts. Downgrading images from compat=1.1 to compat=0.10 is achieved through handling all incompatible flags accordingly, clearing all compatible and autoclear flags and expanding all zero clusters. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b6481f376bc65894910dd98db3f299d698817106 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 3 10:09:53 2013 +0200 qcow2: Save refcount order in BDRVQcowState Save the image refcount order in BDRVQcowState. This will be relevant for future code supporting different refcount orders than four and also for code that needs to verify a certain refcount order for an opened image. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 32b6444d23d0ff618d73e5b766600cd258066169 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 3 10:09:52 2013 +0200 qcow2-cluster: Expand zero clusters Add functionality for expanding zero clusters. This is necessary for downgrading the image version to one without zero cluster support. For non-backed images, this function may also just discard zero clusters instead of truly expanding them. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e7108feaace8e02b3a4bf010448fc2744f753381 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 3 10:09:51 2013 +0200 qcow2-cache: Empty cache Add a function for emptying a cache, i.e., flushing it and marking all elements invalid. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 6f176b48f9f98820ed192a1355cc1c7c08ddf46b Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 3 10:09:50 2013 +0200 block: Image file option amendment This patch adds the "amend" option to qemu-img which allows changing image options on existing image files. It also adds the generic bdrv implementation which is basically just a wrapper for the image format specific function. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 56e023af805215260c71d44f5b5a98087f4920d2 Author: Tal Kain <tal.kain@xxxxxxxxxxxxxxxxxx> Date: Mon Sep 9 11:14:55 2013 +0200 raw-win32.c: Fix incorrect handling behaviour of small block files It is a valid case that the read data's size is smaller than the requested size since there could be files that are smaller than the minimum block size (For ex. when a VMDK disk descriptor file) Signed-off-by: Tal Kain <tal.kain@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1ebf561c11302f4fbe4afdd82758fe053cf1d5fc Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Sep 6 12:20:08 2013 +0200 qcow2: Discard VM state in active L1 after creating snapshot During savevm, the VM state is written to the active L1 of the image and then a snapshot is taken. After that, the VM state isn't needed any more in the active L1 and should be discarded. This is implemented by this patch. The impact of not discarding the VM state is that a snapshot can never become smaller than any previous snapshot (because it would be padded with old VM state), and more importantly that future savevm operations cause unnecessary COWs (with associated flushes), which makes subsequent snapshots much slower. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 670df5e3b4b5ef830a7c3c970170dbfa11cbb8d2 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Sep 6 12:18:47 2013 +0200 qcow2: Pass discard type to qcow2_discard_clusters() The function will be used internally instead of only being called for guest discard requests. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit b0d768c35e08d2057b63e8e77e7a513c447199fa Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Aug 22 11:43:58 2013 +0200 chardev: fix pty_chr_timer pty_chr_timer first calls pty_chr_update_read_handler(), then clears timer_tag (because it is a one-shot timer). This is the wrong order though. pty_chr_update_read_handler might re-arm time timer, and the new timer_tag gets overwitten in that case. This leads to crashes when unplugging a pty chardev: pty_chr_close thinks no timer is running -> timer isn't canceled -> pty_chr_timer gets called with stale CharDevState -> BOOM. This patch fixes the ordering. Kill the pointless goto while being at it. https://bugzilla.redhat.com/show_bug.cgi?id=994414 Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 54a5c1d5db47b4146490937ed73e3f56022aaba6 Author: Peter Lieven <pl@xxxxxxx> Date: Fri Jul 19 09:19:40 2013 +0200 iscsi: add .bdrv_get_block_status this patch adds a coroutine for .bdrv_co_block_status as well as a generic framework that can be used to build coroutines in block/iscsi. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit f18a7cbb0992a02225d26afd336aaf47de75e11c Author: Peter Lieven <pl@xxxxxxx> Date: Fri Jul 19 09:19:39 2013 +0200 iscsi: add logical block provisioning information to iscsilun Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 57ffcc4c83331cb4b2639a866b6ecc11b3e7092c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Aug 23 17:16:33 2013 +0100 hw/scsi/lsi53c895a: Use deposit32 rather than handcoded shift/mask Use deposit32() rather than handcoded shifts/masks to update the scratch registers. This is cleaner and incidentally avoids a clang sanitizer complaint ("runtime error: left shift of 255 by 24 places cannot be represented in type 'int'"). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 927941059b95c3cc6264241115a23b1d14f1beb0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Aug 23 17:16:32 2013 +0100 hw/scsi/lsi53c895a: Use sextract32 for sign-extension Use sextract32() for doing sign-extension rather than rolling our own implementation. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c24e7517ee4a98e90eee5f0f07708a1fa12326b3 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 23 18:01:58 2013 +0200 scsi: Fix scsi_bus_legacy_add_drive() scsi-generic with serial scsi_bus_legacy_add_drive() creates either a scsi-disk or a scsi-generic device. It sets property "serial" to argument serial unless null. Crashes with scsi-generic, because it doesn't have such the property. Only usb_msd_initfn_storage() passes non-null serial. Reproducer: $ qemu-system-x86_64 -nodefaults -display none -S -usb \ -drive if=none,file=/dev/sg1,id=usb-drv0 \ -device usb-storage,id=usb-msd0,drive=usb-drv0,serial=123 qemu-system-x86_64: -device usb-storage,id=usb-msd0,drive=usb-drv0,serial=123: Property '.serial' not found Aborted (core dumped) Fix by handling exactly like "removable": set the property only when it exists. Cc: qemu-stable@xxxxxxxxxx Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit a27292b5d7545509bfa171922516d2033c570205 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Mon Aug 19 17:53:15 2013 +0200 virtio-scsi: Make type virtio-scsi-common abstract It's the abstract base of virtio-scsi-device and vhost-scsi. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit eb37f14658df23c51f172bddb0c45eecf408927c Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Jul 29 14:49:29 2013 +1000 spapr-vscsi: add task management At the moment the guest kernel issues two types of task management requests to the hypervisor - task about and lun reset. This adds handling for these tasks. As spapr-vscsi starts calling scsi_req_cancel(), free_request callback was implemented. As virtio-vscsi, spapr-vscsi does not handle CLEAR_ACA either as CDB control byte does not seem to be used at all so NACA bit is not set to the guest so the guest has no good reason to call CLEAR_ACA task. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> [Fix choice of UCSOLCNT vs. SCSOLCNT. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 5accc8408f2dac1e00d888e4fe75e6174ba2a940 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Aug 2 17:02:01 2013 +0200 scsi: prefer UUID to VM name for the initiator name The UUID is unique even across multiple hosts, thus it is better than a VM name even if it is less user-friendly. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 2d1fe1873a984d1c2c89ffa3d12949cafc718551 Merge: 6f52e51 6a49fa9 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:46:52 2013 -0500 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20130910' into staging ARM queue: * aarch64 preparation patchset (excluding the defconfigs, so this doesn't actually enable the new targets yet) * minor bugfixes and cleanups * disable "-cpu any" in system emulation mode * fix ARMv7M stack alignment on reset # gpg: Signature made Tue 10 Sep 2013 01:46:11 PM CDT using RSA key ID 14360CDE # gpg: Can't check signature: public key not found # By Alexander Graf (13) and others # Via Peter Maydell * pmaydell/tags/pull-target-arm-20130910: (28 commits) configure: Add handling code for AArch64 targets linux-user: Add AArch64 support linux-user: Allow targets to specify a minimum uname release linux-user: Add AArch64 termbits.h definitions linux-user: Implement cpu_set_tls() and cpu_clone_regs() for AArch64 linux-user: Make sure NWFPE code is 32 bit ARM only linux-user: Add signal handling for AArch64 linux-user: Fix up AArch64 syscall handlers linux-user: Add syscall number definitions for AArch64 linux-user: Add cpu loop for AArch64 linux-user: Don't treat AArch64 cpu names specially target-arm: Add AArch64 gdbstub support target-arm: Add AArch64 translation stub target-arm: Prepare translation for AArch64 code target-arm: Disable 32 bit CPUs in 64 bit linux-user builds target-arm: Add new AArch64CPUInfo base class and subclasses target-arm: Pass DisasContext* to gen_set_pc_im() target-arm: Fix target_ulong/uint32_t confusions target-arm: Export cpu_env target-arm: Extract the disas struct to a header file ... Message-id: 1378839142-7726-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 6f52e51bb7706562634e5dd2755a1e9b8a5037cc Merge: d985bd4 02dc4bf Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:46:44 2013 -0500 Merge remote-tracking branch 'luiz/queue/qmp' into staging # By Cole Robinson # Via Luiz Capitulino * luiz/queue/qmp: qapi-types.py: Fix enum struct sizes on i686 Message-id: 1378822364-13887-1-git-send-email-lcapitulino@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit d985bd4d55555a06c4239eadba4e367880e938ba Merge: a640f07 c58c7b9 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:46:26 2013 -0500 Merge remote-tracking branch 'spice/spice.v73' into staging # By Gerd Hoffmann (2) and Christophe Fergeau (1) # Via Gerd Hoffmann * spice/spice.v73: qxl: fix local renderer qxl: trace io port name spice-core: Use g_strdup_printf instead of snprintf Message-id: 1378807572-27902-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit a640f07c0d03bfa3031af1fc0a32b0d779917d17 Merge: f69f0bc adbecc8 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:46:21 2013 -0500 Merge remote-tracking branch 'kraxel/usb.89' into staging # By Gerd Hoffmann (2) and Miroslav Rezanina (2) # Via Gerd Hoffmann * kraxel/usb.89: ehci: save device pointer in EHCIState Remove dev-bluetooth.c dependency from vl.c Preparation for usb-bt-dongle conditional build usb: sanity check setup_index+setup_len in post_load Message-id: 1378806073-25197-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit f69f0bcac951f3c3089246695874b84ea8967936 Merge: 97fdb94 e2682db Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:46:08 2013 -0500 Merge remote-tracking branch 'mdroth/qga-pull-2013-9-9' into staging # By Tomoki Sekiyama (10) and Paul Burton (1) # Via Michael Roth * mdroth/qga-pull-2013-9-9: QMP/qemu-ga-client: Make timeout longer for guest-fsfreeze-freeze command qemu-ga: Install Windows VSS provider on `qemu-ga -s install' qemu-ga: Call Windows VSS requester in fsfreeze command handler qemu-ga: Add Windows VSS provider and requester as DLL error: Add error_set_win32 and error_setg_win32 qemu-ga: Add configure options to specify path to Windows/VSS SDK Add a script to extract VSS SDK headers on POSIX system checkpatch.pl: Check .cpp files Add c++ keywords to QAPI helper script configure: Support configuring C++ compiler mips_malta: support up to 2GiB RAM Message-id: 1378755701-2051-1-git-send-email-mdroth@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 97fdb9410bb5398fd33f51a37e637d697ace9f73 Merge: 964737e 254c128 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:45:57 2013 -0500 Merge remote-tracking branch 'sstabellini/xen-2013-09-09' into staging # By Anthony PERARD # Via Stefano Stabellini * sstabellini/xen-2013-09-09: pc_q35: Initialize Xen. pc: Initializing ram_memory under Xen. Message-id: alpine.DEB.2.02.1309091718030.6397@xxxxxxxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 964737ea195de1560f3bcf55b8b6d4f7d0d4a619 Merge: ce2b694 8f94b07 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:45:37 2013 -0500 Merge remote-tracking branch 'stefanha/block' into staging # By Paolo Bonzini (21) and others # Via Stefan Hajnoczi * stefanha/block: (42 commits) qemu-iotests: Fixed test case 026 qemu-iotests: Whitespace cleanup dataplane: Fix startup race. block: look for zero blocks in bs->file block: add default get_block_status implementation for protocols raw-posix: report unwritten extents as zero raw-posix: return get_block_status data and flags docs, qapi: document qemu-img map qemu-img: add a "map" subcommand block: return BDRV_BLOCK_ZERO past end of backing file block: use bdrv_has_zero_init to return BDRV_BLOCK_ZERO block: return get_block_status data and flags for formats block: define get_block_status return value block: introduce bdrv_get_block_status API block: make bdrv_has_zero_init return false for copy-on-write-images qemu-img: always probe the input image for allocated sectors block: expect errors from bdrv_co_is_allocated block: remove bdrv_is_allocated_above/bdrv_co_is_allocated_above distinction block: do not use ->total_sectors in bdrv_co_is_allocated block: make bdrv_co_is_allocated static ... Message-id: 1378481953-23099-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit ce2b69417caae3731fb50f67854afa006f624a2d Merge: df71316 45d883d Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:45:18 2013 -0500 Merge remote-tracking branch 'stefanha/net' into staging # By Brad Smith (2) and others # Via Stefan Hajnoczi * stefanha/net: ne2000: mark I/O as LITTLE_ENDIAN vmxnet3: Eliminate __packed redefined warning e1000: add interrupt mitigation support net: Rename send_queue to incoming_queue tap: Use numbered tap/tun devices on all *BSD OS's Message-id: 1378481624-20964-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 6a49fa95c98cd155f7aaf48e5c6fa6bb6adea862 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:22 2013 +0100 configure: Add handling code for AArch64 targets Add the necessary code to configure to handle AArch64 as a target CPU (we already have some code for supporting it as host). Note that this doesn't enable the AArch64 targets yet. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-23-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-12-git-send-email-john.rigby@xxxxxxxxxx [PMM: * don't need to set TARGET_ABI_DIR to aarch64 as that is the default * don't build nwfpe -- this is 32 bit legacy only * rewrite commit message * add aarch64 to the list of "fdt required" targets ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 99033caee6e9b339c89a368b5ed1f73ef17924a9 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:21 2013 +0100 linux-user: Add AArch64 support This patch adds support for AArch64 in all the small corners of linux-user (primarily in image loading and startup code). Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-22-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-11-git-send-email-john.rigby@xxxxxxxxxx [PMM: * removed some unnecessary #defines from syscall.h * catch attempts to use a 32 bit only cpu with aarch64-linux-user * termios stuff moved into its own patch * we specify our minimum uname version here now ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4a24a758101ff726c9bd3b867e12d5580c793af0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 3 20:12:20 2013 +0100 linux-user: Allow targets to specify a minimum uname release For newer target architectures, glibc can be picky about the kernel version: for example, it will not run on an aarch64 system unless the kernel reports itself as at least 3.8.0. Accommodate this by enhancing the existing support for faking the kernel version so that each target can optionally specify a minimum version: if the user doesn't force a specific fake version then we will override with the minimum required version only if the real host kernel version is insufficient. Use this facility to let aarch64 report a minimum of 3.8.0. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-21-git-send-email-peter.maydell@xxxxxxxxxx commit af89c7dba52c509bdb72714139aadbe21a133f6e Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:19 2013 +0100 linux-user: Add AArch64 termbits.h definitions Add the AArch64 termbits.h with all the target's termios related constants and structures. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-20-git-send-email-peter.maydell@xxxxxxxxxx [PMM: split out from another patch] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e2cea499cc2e8da5b2d5753625d2c57685193783 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:18 2013 +0100 linux-user: Implement cpu_set_tls() and cpu_clone_regs() for AArch64 Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-19-git-send-email-peter.maydell@xxxxxxxxxx [PMM: pulled out from another patch; don't use is_a64() here; moved to linux-user from target-arm] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 848d72cdd894e3a883118fd0f1ede14ff66bfa21 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 3 20:12:17 2013 +0100 linux-user: Make sure NWFPE code is 32 bit ARM only On ARM, linux-user emulation includes NWFPE support for emulating the ancient FPA floating point coprocessor. This has long since been superseded by VFP and is only required for legacy binaries. The AArch64 linux-user target doesn't compile in NWFPE support, so make sure the relevant code is protected by suitable ifdefs. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-18-git-send-email-peter.maydell@xxxxxxxxxx commit 1744aea182d0fe20e190d037ccf225cbe05e96ae Author: Andreas Schwab <schwab@xxxxxxx> Date: Tue Sep 3 20:12:16 2013 +0100 linux-user: Add signal handling for AArch64 This patch adds signal handling for AArch64. The code is based on the respective source in the Linux kernel. Signed-off-by: Andreas Schwab <schwab@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-17-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-10-git-send-email-john.rigby@xxxxxxxxxx [PMM: fixed style nits: tabs, long lines; pulled target_signal.h in from a later patch; it fits better here] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 09701199f6d87ebfe609776156108c6dec812cde Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:15 2013 +0100 linux-user: Fix up AArch64 syscall handlers Some syscall handlers have special code for ARM enabled that we don't need on AArch64. Exclude AArch64 in those cases. In other places we can share struct definitions with other targets or have to provide our own. With this patch applied, most syscall definitions in linux-user should be sound for AArch64. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-16-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-9-git-send-email-john.rigby@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c7907301e7df9623bc5216934e30125ce66cfaea Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:14 2013 +0100 linux-user: Add syscall number definitions for AArch64 The AArch64 syscall definitions are all publicly available in the Linux kernel. Let's add them to our linux-user emulation target, so that we can easily handle AArch64 syscalls. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-15-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-8-git-send-email-john.rigby@xxxxxxxxxx [PMM: changes relating to cpu_loop() removed as they are superseded by an earlier patch] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 1861c4543ffa6224d0661036afaa7ec1cf30e8bb Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 3 20:12:13 2013 +0100 linux-user: Add cpu loop for AArch64 Add the main linux-user cpu loop for AArch64. Since AArch64 has a different system call interface, doesn't need to worry about FPA emulation and may in the future keep the prefetch/data abort information in different system registers, it's simplest just to use a completely separate loop from the 32 bit ARM target, rather than peppering it with ifdefs. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-14-git-send-email-peter.maydell@xxxxxxxxxx commit 067d983127da5c05a365230b12f2f557ec721c97 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:12 2013 +0100 linux-user: Don't treat AArch64 cpu names specially 32-bit ARM has a lot of different names for different types of CPUs it supports. On AArch64, we don't have this, so we really don't want to execute the 32-bit logic. Stub it out for AArch64 linux-user guests. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-13-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-7-git-send-email-john.rigby@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 96c04212ba80d4f9630a5e82681285eeb41af9cc Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:11 2013 +0100 target-arm: Add AArch64 gdbstub support We want to be able to debug AArch64 guests. So let's add the respective gdb stub functions and xml descriptions that allow us to do so. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-12-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-6-git-send-email-john.rigby@xxxxxxxxxx [PMM: dropped unused fp regs XML for now; moved 64 bit only functions to new gdbstub64.c; these are hooked up in AArch64CPU, not via ifdefs in ARMCPU] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 14ade10f840deec02d32530e5a64bd5ec275adbd Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:10 2013 +0100 target-arm: Add AArch64 translation stub We should translate AArch64 mode separately from AArch32 mode. In AArch64 mode, registers look vastly different, instruction encoding is completely different, basically the system turns into a different machine. So let's do a simple if() in translate.c to decide whether we can handle the current code in the legacy AArch32 code or in the new AArch64 code. So far, the translation always complains about unallocated instructions. There is no emulator functionality in this patch! Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-11-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-5-git-send-email-john.rigby@xxxxxxxxxx [PMM: * provide no-op versions of a64 functions ifndef TARGET_AARCH64; this lets us avoid #ifdefs in translate.c * insert the missing call to disas_a64_insn() * stash the insn in the DisasContext rather than reloading it in real_unallocated_encoding() ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3926cc8433542e8c9b7cdc438355fb7660838fd0 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:09 2013 +0100 target-arm: Prepare translation for AArch64 code This patch adds all the prerequisites for AArch64 support that didn't fit into split up patches. It extends important bits in the core cpu headers to also take AArch64 mode into account. Add new ARM_TBFLAG_AARCH64_STATE translation buffer flag indicate an ARMv8 cpu running in aarch64 mode vs aarch32 mode. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-10-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-4-git-send-email-john.rigby@xxxxxxxxxx [PMM: * rearranged tbflags so AArch64? is bit 31 and if it is set then 30..0 are freely available for whatever makes most sense for that mode * added version bump since we change VFP migration state * added a comment about how VFP/Neon register state works * physical address space is 48 bits, not 64 * added ARM_FEATURE_AARCH64 flag to identify 64-bit capable CPUs ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 15ee776bf2001883781cc83d456249a60532bb01 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 3 20:12:08 2013 +0100 target-arm: Disable 32 bit CPUs in 64 bit linux-user builds If we're building aarch64-linux-user then the 32 bit CPUs are all unwanted, because they can't possibly execute the 64 bit binaries we will be running; disable them. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-9-git-send-email-peter.maydell@xxxxxxxxxx commit d14d42f19bf3dcef5c81ec2324843121f552a6fc Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 3 20:12:07 2013 +0100 target-arm: Add new AArch64CPUInfo base class and subclasses Create a new AArch64CPU class; all 64-bit capable ARM CPUs are subclasses of this. (Currently we only support one, the "any" CPU used by linux-user.) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-8-git-send-email-peter.maydell@xxxxxxxxxx commit eaed129deaea393640cf6bff006cd5cec3b38d8f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 3 20:12:06 2013 +0100 target-arm: Pass DisasContext* to gen_set_pc_im() We want gen_set_pc_im() to work for both AArch64 and AArch32, but to do this we'll need the DisasContext* so we can tell which mode we're in, so pass it in as a parameter. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-7-git-send-email-peter.maydell@xxxxxxxxxx commit 0a2461fa49e4d2aeb846390e1eb1bdb9e8196ca4 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:05 2013 +0100 target-arm: Fix target_ulong/uint32_t confusions Correct a few places that were using uint32_t or a 32 bit only format string to handle something that should be a target_ulong. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-6-git-send-email-peter.maydell@xxxxxxxxxx [PMM: split out to separate patch; added gen_goto_tb() and gen_set_pc_im() dest params to list of things to change.] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3407ad0e7a6f04905fc6a8ea72be03553e777988 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:04 2013 +0100 target-arm: Export cpu_env The cpu_env tcg variable will be used by both the AArch32 and AArch64 handling code. Unstaticify it, so that both sides can make use of it. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-5-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-3-git-send-email-john.rigby@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f570c61e694d78fc2f6717f4fbb7e820bf72d8dc Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:03 2013 +0100 target-arm: Extract the disas struct to a header file We will need to share the disassembly status struct between AArch32 and AArch64 modes. So put it into a header file that both sides can use. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-4-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-2-git-send-email-john.rigby@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 08307563ff6cf8cb8d2a7927804dfc5c7dbe86d6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 3 20:12:02 2013 +0100 target-arm: Abstract out load/store from a vaddr in AArch32 AArch32 code (ie traditional 32 bit world) expects to be able to pass a vaddr in a TCGv_i32. However when QEMU is compiled with TARGET_LONG_BITS=32 the TCG load/store functions take a TCGv_i64. Abstract out load/store with a 32 bit vaddr so we have a place to put the zero extension of the vaddr and the extension/truncation of the data value. Apart from the function definitions most of this patch is a simple s/tcg_gen_qemu_/gen_aa32_/. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-3-git-send-email-peter.maydell@xxxxxxxxxx commit 4d017979aa1672b40ccc083daf455f8740eead82 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 10 19:09:33 2013 +0100 abitypes.h: Remove incorrect ARM ABI_LLONG_ALIGNMENT The ARM EABI specifies that 64 bit integers should be 8 aligned; remove our incorrect setting of 4 alignment. This has no actual effect since it only set the alignment for the 'abi_ullong' and 'abi_llong' types, which are used only inside code which is MIPS-specific, but it will avoid problems later if we use the types elsewhere. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 031c44e4deedbd7829703654e381ca0b18e78a12 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 10 19:09:33 2013 +0100 pl110: Clarify comment about PL110 ID on VersatilePB Clarify a comment about the ID register value presented by the PL110 variant present on the VersatilePB board (based on testing what the actual hardware does), to indicate that this is not an error in our emulation, and to remove an #if-0. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 78027bb6d9111c8ccd515930cfa05d7f532ecb2a Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Tue Sep 10 19:09:33 2013 +0100 target-arm: Implement qmp query-cpu-definitions Libvirt uses this to introspect available CPU models. Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Message-id: c0bdcd6c7ea6a085a6902ccaa73180fd771c8267.1378303555.git.crobinso@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f62cafd4c87fad7bb9b9544b4cf4991d34764b11 Author: Sebastian Ottlik <ottlik@xxxxxx> Date: Tue Sep 10 19:09:32 2013 +0100 target-arm: fix ARMv7M stack alignment on reset When the initial SP is loaded from the vector table on ARMv7M systems the two least significant bits are ignored as the stack is always aligned at a four byte boundary (see ARM DDI 0403C, B1.4.1 and B1.5.5). So far QEMU did not ignore these bits leading to a stack alignment inconsitent with real hardware for binaries that rely on this behaviour. This patch fixes this issue by masking the two least significant bits when loading the SP. Signed-off-by: Sebastian Ottlik <ottlik@xxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378286595-27072-1-git-send-email-ottlik@xxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 78dbbbe4dff95369c63bf77ee0df23371e1d6602 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 10 19:09:32 2013 +0100 target-arm: Avoid "1 << 31" undefined behaviour Avoid the undefined behaviour of "1 << 31" by using 1U to make the shift be of an unsigned value rather than shifting into the sign bit of a signed integer. For consistency, we make all the CPSR_* constants unsigned, though the only one which triggers undefined behaviour is CPSR_N. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1378391908-22137-3-git-send-email-peter.maydell@xxxxxxxxxx commit 534df156090539854c2ac819dcdb096d01dab5c1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 10 19:09:32 2013 +0100 target-arm: Use sextract32() in branch decode In the decode of ARM B and BL insns, swap the order of the "append 2 implicit zeros to imm24" and the sign extend, and use the new sextract32() utility function to do the latter. This avoids a direct dependency on the undefined C behaviour of shifting into the sign bit of an integer. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1378391908-22137-2-git-send-email-peter.maydell@xxxxxxxxxx commit f5f6d38b7458b8a1a46a750ac131ca8a2d45d946 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 10 19:09:32 2013 +0100 target-arm: Make '-cpu any' available in linux-user mode only Make the 'any' CPU for target-arm available only in linux-user mode. The ARM target provides a CPU named "any", which turns on support for all user-level instruction set extensions we know about. This is intended for linux-user emulation mode, where it is the default CPU type. It makes no sense to try to use this for system emulation, since we don't initialize it with any system-level information like feature register values or implementation specific cp15 registers. (Unsurprisingly, some boards won't boot at all, though you might get lucky in some cases where the guest doesn't happen to prod things that aren't there.) Prevent users from making this command line error by removing the CPU definition from the softmmu build. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Message-id: 1378213995-12945-1-git-send-email-peter.maydell@xxxxxxxxxx commit 02dc4bf5684d3fb46786fab2ecff98214b1df9fe Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Sat Aug 31 18:36:17 2013 -0400 qapi-types.py: Fix enum struct sizes on i686 Unlike other list types, enum wasn't adding any padding, which caused a mismatch between the generated struct size and GenericList struct size. More details in a678e26cbe89f7a27cbce794c2c2784571ee9d21 This crashed qemu if calling qmp query-tpm-types for example, which upsets libvirt capabilities probing. Reproducer on i686: (sleep 5; printf '{"execute":"qmp_capabilities"}\n{"execute":"query-tpm-types"}\n') | ./i386-softmmu/qemu-system-i386 -S -nodefaults -nographic -M none -qmp stdio https://bugs.launchpad.net/qemu/+bug/1219207 Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Tested-by: Richard W.M. Jones <rjones@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit adbecc89731cf3e0ae656d50ea9fa58c589c4bdc Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Sep 9 10:18:17 2013 +0200 ehci: save device pointer in EHCIState We'll need a pointer to the actual pci/sysbus device, stick a pointer to it into the EHCIState struct. https://bugzilla.redhat.com/show_bug.cgi?id=1005495 Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 615fe4de4b3c26619611078960d3103550bde7d0 Author: Miroslav Rezanina <mrezanin@xxxxxxxxxx> Date: Tue Sep 3 11:23:09 2013 +0200 Remove dev-bluetooth.c dependency from vl.c Use usb_legacy_register handling to create bt-dongle device and remove code dependency from vl.c so CONFIG_USB_BLUETOOTH can be disabled. Signed-off-by: Miroslav Rezanina <mrezanin@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 644e1a8a34d2f799bfeefae94b71593a2aa662ae Author: Miroslav Rezanina <mrezanin@xxxxxxxxxx> Date: Tue Sep 3 11:23:08 2013 +0200 Preparation for usb-bt-dongle conditional build To allow disable usb-bt-dongle device using CONFIG_BLUETOOTH option, some of functions in vl.c file has to be made accessible in dev-bluetooth.c. This is pure code moving. Signed-off-by: Miroslav Rezanina <mrezanin@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit c60174e847082ab9f70720f86509a3353f816fad Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Aug 28 17:09:30 2013 +0200 usb: sanity check setup_index+setup_len in post_load Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit c58c7b959b93b864a27fd6b3646ee1465ab8832b Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Sep 5 21:57:19 2013 +0200 qxl: fix local renderer The local spice renderer assumes the primary surface is located at the start of the "ram" bar. This used to be a requirement in qxl hardware revision 1. In revision 2+ this is relaxed. Nevertheless guest drivers continued to use the traditional location, for historical and backward compatibility reasons. The qxl kms driver doesn't though as it depends on qxl revision 4+ anyway. Result is that local rendering is hosed for recent linux guests, you'll get pixel garbage with non-spice ui (gtk, sdl, vnc) and when doing screendumps. Fix that by doing a proper mapping of the guest-specified memory location. https://bugzilla.redhat.com/show_bug.cgi?id=948717 Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 18b203850a859f1d4688baa8a0ddb8e7af55962f Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Sep 5 17:30:05 2013 +0200 qxl: trace io port name Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 6735aa99a43c70c09b53af190b24600a61178b95 Author: Christophe Fergeau <cfergeau@xxxxxxxxxx> Date: Mon Sep 2 15:41:32 2013 +0200 spice-core: Use g_strdup_printf instead of snprintf Several places in spice-core.c were using either g_malloc+snprintf or snprintf+g_strdup to achieve the same result as g_strdup_printf. Signed-off-by: Christophe Fergeau <cfergeau@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e2682db06a6c218f149ff990959c31f3b3d82003 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:40:39 2013 -0400 QMP/qemu-ga-client: Make timeout longer for guest-fsfreeze-freeze command guest-fsfreeze-freeze command can take longer than 3 seconds when heavy disk I/O is running. To avoid unexpected timeout, this changes the timeout to 60 seconds (timeout of pre-commit phase of VSS). Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit f311f2c20a1e33c1e5fdb50ee21e69a5bf26c950 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:40:32 2013 -0400 qemu-ga: Install Windows VSS provider on `qemu-ga -s install' Register QGA VSS provider library into Windows when qemu-ga is installed as Windows service ('-s install' option). It is deregistered when the service is uninstalled ('-s uninstall' option). Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 64c003174039d0c63ea2bef48d600363ce80a58b Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:40:25 2013 -0400 qemu-ga: Call Windows VSS requester in fsfreeze command handler Support guest-fsfreeze-freeze and guest-fsfreeze-thaw commands for Windows guests. When fsfreeze command is issued, it calls the VSS requester to freeze filesystems and applications. On thaw command, it again tells the VSS requester to thaw them. This also adds calling of initialize functions for the VSS requester. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit b39297aedfabe9b2c426cd540413be991500da25 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:40:18 2013 -0400 qemu-ga: Add Windows VSS provider and requester as DLL Adds VSS provider and requester as a qga-vss.dll, which is loaded by Windows VSS service as well as by qemu-ga. "provider.cpp" implements a basic stub of a software VSS provider. Currently, this module only relays a frozen event from VSS service to the agent, and thaw event from the agent to VSS service, to block VSS process to keep the system frozen while snapshots are taken at the host. To register the provider to the guest system as COM+ application, the type library (.tlb) for qga-vss.dll is required. To build it from COM IDL (.idl), VisualC++, MIDL and stdole2.tlb in Windows SDK are required. This patch also adds pre-compiled .tlb file in the repository in order to enable cross-compile qemu-ga.exe for Windows with VSS support. "requester.cpp" provides the VSS requester to kick the VSS snapshot process. Qemu-ga.exe works without the DLL, although fsfreeze features are disabled. These functions are only supported in Windows 2003 or later. In older systems, fsfreeze features are disabled. In several versions of Windows which don't support attribute VSS_VOLSNAP_ATTR_NO_AUTORECOVERY, DoSnapshotSet fails with error VSS_E_OBJECT_NOT_FOUND. In this patch, we just ignore this error. To solve this fundamentally, we need a framework to handle mount writable snapshot on guests, which is required by VSS auto-recovery feature (cleanup phase after a snapshot is taken). Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 20840d4cfe5198cde313ac953279e76f16c5b76d Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:40:11 2013 -0400 error: Add error_set_win32 and error_setg_win32 These functions help maintaining homogeneous formatting of error messages with Windows error code and description (generated by g_win32_error_message()). Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit d9840e2592493c816ad50f4211a9a4ec35371def Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:40:03 2013 -0400 qemu-ga: Add configure options to specify path to Windows/VSS SDK To enable VSS support in qemu-ga for Windows, header files included in VSS SDK are required. The VSS support is enabled by the configure option like below: ./configure --with-vss-sdk="/path/to/VSS SDK" If the path is omitted, it tries to search the headers from default paths and VSS support is enabled only if the SDK is found. VSS support is disabled if --without-vss-sdk or --with-vss-sdk=no is specified. VSS SDK is available from: http://www.microsoft.com/en-us/download/details.aspx?id=23490 To cross-compile using mingw, you need to setup the SDK on Windows environments to extract headers. You can also extract the SDK headers on POSIX environments using scripts/extract-vss-headers and msitools. In addition, --with-win-sdk="/path/to/Windows SDK" option is also added to specify path to Windows SDK, which may be used for native-compile of .tlb file of qemu-ga VSS provider. However, this is usually unnecessary because pre-compiled .tlb file is included. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 24482749c7d6d7bc0106a43ebac124526fb5b376 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:39:57 2013 -0400 Add a script to extract VSS SDK headers on POSIX system VSS SDK(*) setup.exe is only runnable on Windows. This adds a script to extract VSS SDK headers on POSIX-systems using msitools. * http://www.microsoft.com/en-us/download/details.aspx?id=23490 From: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 69d5d21f90516a8b988a88915865b38e543fc994 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:39:50 2013 -0400 checkpatch.pl: Check .cpp files Enable checkpatch.pl to apply the same checks as C source files for C++ files with .cpp extensions. It also adds some exceptions for C++ sources to suppress errors for: - <> used in C++ template arguments (e.g. template <class T>) - :: used to represent namespaces (e.g. SomeClass::method()) - : used in class declaration (e.g. class T : public Super) - ~ used in destructor method name (e.g. T::~T()) - spacing around 'catch' (e.g. catch (...)) Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 6f88009ee505e1e9fbf6b74b2e2fb3e24cd3411b Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:39:43 2013 -0400 Add c++ keywords to QAPI helper script Add c++ keywords to avoid errors in compiling with c++ compiler. This also renames class member of PciDeviceInfo to q_class. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 83f73fce4cf18cf36e99f0e78e8e87dfb6b12a71 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:39:36 2013 -0400 configure: Support configuring C++ compiler Add configuration for C++ compiler in configure and Makefiles. The C++ compiler is choosed as following: - ${CXX}, if it is specified. - ${cross_prefix}g++, if ${cross_prefix} is specified. - Otherwise, c++ is used. Currently, usage of C++ language is only for access to Windows VSS using COM+ services in qemu-guest-agent for Windows. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Micael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 94c2b6aff43cdfcfdfb552773a6b6b973a72ef0b Author: Paul Burton <paul.burton@xxxxxxxxxx> Date: Fri Sep 6 13:57:44 2013 +0100 mips_malta: support up to 2GiB RAM A Malta board can support up to 2GiB of RAM. Since the unmapped kseg0/1 regions are only 512MiB large & the latter 256MiB of those are taken up by the IO region, access to RAM beyond 256MiB must be done through a mapped region. In the case of a Linux guest this means we need to use highmem. The mainline Linux kernel does not support highmem for Malta at this time, however this can be tested using the linux-mti-3.8 kernel branch available from: git://git.linux-mips.org/pub/scm/linux-mti.git You should be able to boot a Linux kernel built from the linux-mti-3.8 branch, with CONFIG_HIGHMEM enabled, using 2GiB RAM by passing "-m 2G" to QEMU and appending the following kernel parameters: mem=256m@0x0 mem=256m@0x90000000 mem=1536m@0x20000000 Note that the upper half of the physical address space of a Malta mirrors the lower half (hence the 2GiB limit) except that the IO region (0x10000000-0x1fffffff in the lower half) is not mirrored in the upper half. That is, physical addresses 0x90000000-0x9fffffff access RAM rather than the IO region, resulting in a physical address space resembling the following: 0x00000000 -> 0x0fffffff RAM 0x10000000 -> 0x1fffffff I/O 0x20000000 -> 0x7fffffff RAM 0x80000000 -> 0x8fffffff RAM (mirror of 0x00000000 -> 0x0fffffff) 0x90000000 -> 0x9fffffff RAM 0xa0000000 -> 0xffffffff RAM (mirror of 0x20000000 -> 0x7fffffff) The second mem parameter provided to the kernel above accesses the second 256MiB of RAM through the upper half of the physical address space, making use of the aliasing described above in order to avoid the IO region and use the whole 2GiB RAM. The memory setup may be seen as 'backwards' in this commit since the 'real' memory is mapped in the upper half of the physical address space and the lower half contains the aliases. On real hardware it would be typical to see the upper half of the physical address space as the alias since the bus addresses generated match the lower half of the physical address space. However since the memory accessible in the upper half of the physical address space is uninterrupted by the IO region it is easiest to map the RAM as a whole there, and functionally it makes no difference to the target code. Due to the requirements of accessing the second 256MiB of RAM through a mapping to the upper half of the physical address space it is usual for the bootloader to indicate a maximum of 256MiB memory to a kernel. This allows kernels which do not support such access to boot on systems with more than 256MiB of RAM. It is also the behaviour assumed by Linux. QEMUs small generated bootloader is modified to provide this behaviour. Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx> Signed-off-by: Yongbok Kim <yongbok.kim@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 254c12825f93f405658ca3366cd34f8a8ad23511 Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> Date: Mon Sep 9 16:15:53 2013 +0000 pc_q35: Initialize Xen. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 04d7bad8a4fb23e6d9af9d06ce3ddc28a251d94d Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> Date: Mon Sep 9 16:15:52 2013 +0000 pc: Initializing ram_memory under Xen. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> CC: qemu-stable@xxxxxxxxxx commit 45d883dcf208160e2db308d1b368beb74f37dc7e Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Mon Sep 2 13:10:34 2013 +0200 ne2000: mark I/O as LITTLE_ENDIAN Now that the memory subsystem is propagating the endianness correctly, the ne2000 device should have its I/O ports marked as LITTLE_ENDIAN, as PCI devices are little endian. This makes the ne2000 NIC to work again on PowerPC. Cc: qemu-stable@xxxxxxxxxx Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3dbb9786e9f5fa8429824818b6f799d8f65d1199 Author: Brad Smith <brad@xxxxxxxxxxxx> Date: Fri Aug 23 12:28:25 2013 -0400 vmxnet3: Eliminate __packed redefined warning This eliminates a warning about __packed being redefined as exposed by the vmxnet3 code. __packed is not used anywhere in the vmxnet3 code. CC hw/net/vmxnet3.o In file included from hw/net/vmxnet3.c:29: hw/net/vmxnet3.h:37:1: warning: "__packed" redefined In file included from /usr/include/stdlib.h:38, from /buildbot-qemu/default_openbsd_current/build/include/qemu-common.h:26, from /buildbot-qemu/default_openbsd_current/build/include/hw/hw.h:5, from hw/net/vmxnet3.c:18: /usr/include/sys/cdefs.h:209:1: warning: this is the location of the previous definition Signed-off-by: Brad Smith <brad@xxxxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e9845f0985f088dd01790f4821026df0afba5795 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Fri Aug 2 18:30:52 2013 +0200 e1000: add interrupt mitigation support This patch partially implements the e1000 interrupt mitigation mechanisms. Using a single QEMUTimer, it emulates the ITR register (which is the newer mitigation register, recommended by Intel) and approximately emulates RADV and TADV registers. TIDV and RDTR register functionalities are not emulated (RDTR is only used to validate RADV, according to the e1000 specs). RADV, TADV, TIDV and RDTR registers make up the older e1000 mitigation mechanism and would need a timer each to be completely emulated. However, a single timer has been used in order to reach a good compromise between emulation accuracy and simplicity/efficiency. The implemented mechanism can be enabled/disabled specifying the command line e1000-specific boolean parameter "mitigation", e.g. qemu-system-x86_64 -device e1000,mitigation=on,... ... For more information, see the Software developer's manual at http://download.intel.com/design/network/manuals/8254x_GBe_SDM.pdf. Interrupt mitigation boosts performance when the guest suffers from an high interrupt rate (i.e. receiving short UDP packets at high packet rate). For some numerical results see the following link http://info.iet.unipi.it/~luigi/papers/20130520-rizzo-vm.pdf Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> (for pc-* machines) Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 067404be626d03656788adb7deff8072ca84299f Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Fri Aug 2 21:47:08 2013 +0200 net: Rename send_queue to incoming_queue Each networking client has a queue for packets that could not yet be delivered to that client. Calling this queue "send_queue" is highly confusing as it has nothing to to with packets send from this client but to it. Avoid this confusing by renaming it to "incoming_queue". Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit aa4f082f7526d39dac8e2ca64d192d858014ee10 Author: Brad Smith <brad@xxxxxxxxxxxx> Date: Sat Aug 3 22:20:41 2013 -0400 tap: Use numbered tap/tun devices on all *BSD OS's The following patch simplifies the *BSD tap/tun code and makes use of numbered tap/tun interfaces on all *BSD OS's. NetBSD has a patch in their pkgsrc tree to make use of this feature and DragonFly also supports this as well. Signed-off-by: Brad Smith <brad@xxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8f94b077877151de93a63c73f796897309568ddb Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Sep 4 13:16:05 2013 +0200 qemu-iotests: Fixed test case 026 The reference output for test case 026 hasn't been updated in a long time and it's one of the "known failing" cases. This patch updates the reference output so that unintentional changes can be reliably detected again. The problem with this test case is that it produces different output depending on whether -nocache is used or not. The solution of this patch is to actually have two different reference outputs. If nnn.out.nocache exists, it is used as the reference output for -nocache; otherwise, nnn.out stays valid for both cases. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 79e40ab10e1f4450c11ab8430cb2547146ded639 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Sep 4 13:16:04 2013 +0200 qemu-iotests: Whitespace cleanup These scripts used to have a four characters indentation, with eight consecutive spaces converted into a tab. Convert everything into spaces. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8caf907f07688972e5e7cd11526079b1665d6dba Author: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Date: Wed Sep 4 14:16:15 2013 +0200 dataplane: Fix startup race. Avoid trying to setup dataplane again if dataplane setup is already in progress. This may happen if an eventfd is triggered during setup. I saw this occasionally with an experimental s390 irqfd implementation: virtio_blk_handle_output -> virtio_blk_data_plane_start -> virtio_ccw_set_host_notifier ... -> virtio_queue_set_host_notifier_fd_handler -> virtio_queue_host_notifier_read -> virtio_queue_notify_vq -> virtio_blk_handle_output -> virtio_blk_data_plane_start -> vring_setup -> hostmem_init -> memory_listener_register -> BOOM As virtio-ccw tries to follow what virtio-pci does, it might be triggerable for other platforms as well. Signed-off-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5daa74a6ebce7543aaad178c4061dc087bb4c705 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:38 2013 +0200 block: look for zero blocks in bs->file Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 918e92d71b38306a6bf4fedfd1109367f1425587 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:37 2013 +0200 block: add default get_block_status implementation for protocols Protocols return raw data, so you can assume the offsets to pass through unchanged. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f5f7abcfd50bca38ae278a9c7a3ed60fba3d76dc Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:36 2013 +0200 raw-posix: report unwritten extents as zero These are created for example with XFS_IOC_ZERO_RANGE. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 63390a8d14c9006f42bdaab22291c9c97676322d Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:35 2013 +0200 raw-posix: return get_block_status data and flags Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit facd6e2b5c0217f9d9eeb2ee497dda28009518bd Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:34 2013 +0200 docs, qapi: document qemu-img map Eric Blake also requested including the output in qapi-schema.json, so that it is published through the introspection mechanism. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4c93a13b5daf9bd5fca1a547661b0fb9a2f0ca52 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:33 2013 +0200 qemu-img: add a "map" subcommand This command dumps the metadata of an entire chain, in either tabular or JSON format. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f0ad5712d5d15ff272b9e107910be4aae468fb3d Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:32 2013 +0200 block: return BDRV_BLOCK_ZERO past end of backing file If the sectors are unallocated and we are past the end of the backing file, they will read as zero. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 415b5b013ce74126e71459b922a92377918ae2ef Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:31 2013 +0200 block: use bdrv_has_zero_init to return BDRV_BLOCK_ZERO Alternatively, this could use a "discard zeroes data" flag returned by bdrv_get_info. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4bc74be997a72922170f4f272fd5e8074a3ecc27 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:30 2013 +0200 block: return get_block_status data and flags for formats Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4333bb71405f58a8dc8d3255feb3ca5960b0daf8 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:29 2013 +0200 block: define get_block_status return value Define the return value of get_block_status. Bits 0, 1, 2 and 9-62 are valid; bit 63 (the sign bit) is reserved for errors. Bits 3-8 are left for future extensions. The return code is compatible with the old is_allocated API: if a driver only returns 0 or 1 (aka BDRV_BLOCK_DATA) like is_allocated used to, clients of is_allocated will not have any change in behavior. Still, we will return more precise information in the next patches and the new definition of bdrv_is_allocated is already prepared for this. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b6b8a33354a448ee421f57676c1a93a536a63269 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:28 2013 +0200 block: introduce bdrv_get_block_status API For now, bdrv_get_block_status is just another name for bdrv_is_allocated. The next patches will add more flags. This also touches all block drivers with a mostly mechanical rename. The sole exception is cow; because it calls cow_co_is_allocated from the read code, we keep that function and make cow_co_get_block_status a wrapper. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 11212d8fa08a4e5bd56bb4f6877f9a4c0439a02b Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:27 2013 +0200 block: make bdrv_has_zero_init return false for copy-on-write-images This helps implementing is_allocated on top of get_block_status. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e4a86f88cc6b214c37b4abe9160e41f0338ce4cd Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:26 2013 +0200 qemu-img: always probe the input image for allocated sectors qemu-img convert can assume "that sectors which are unallocated in the input image are present in both the output's and input's base images". However it is only doing this if the output image returns true for bdrv_has_zero_init(). Testing bdrv_has_zero_init() does not make much sense if the output image is copy-on-write, because a copy-on-write image is never initialized to zero (it is initialized to the content of the backing file). There is nothing here that makes has_zero_init images special. The input and output must be equal for the operation to make sense, and that's it. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d663640c04f2aab810915c556390211d75457704 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:25 2013 +0200 block: expect errors from bdrv_co_is_allocated Some bdrv_is_allocated callers do not expect errors, but the fallback in qcow2.c might make other callers trip on assertion failures or infinite loops. Fix the callers to always look for errors. Cc: qemu-stable@xxxxxxxxxx Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4f5786376e41980e78af45a123c56ebdc5295099 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:24 2013 +0200 block: remove bdrv_is_allocated_above/bdrv_co_is_allocated_above distinction Now that bdrv_is_allocated detects coroutine context, the two can use the same code. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 617ccb466e1937a5c99332ce77a47ebd29861ae4 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:23 2013 +0200 block: do not use ->total_sectors in bdrv_co_is_allocated This is more robust when the device has removable media. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bdad13b9deec47d5d9eaf7f43867d19a79471244 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:22 2013 +0200 block: make bdrv_co_is_allocated static bdrv_is_allocated can detect coroutine context and go through a fast path, similar to other block layer functions. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit df2a6f29a5019707d69f6eeb30cf792841cae5aa Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:21 2013 +0200 block: keep bs->total_sectors up to date even for growable block devices If a BlockDriverState is growable, after every write we need to check if bs->total_sectors might have changed. With this change, bdrv_getlength does not need anymore a system call. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e641c1e81e54fc14908ff6785ef7d51e42c2e1bb Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:20 2013 +0200 cow: do not call bdrv_co_is_allocated As we change bdrv_is_allocated to gather more information from bs and bs->file, it will become a bit slower. It is still appropriate for online jobs, but not for reads/writes. Call the internal function instead. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 26ae980492920e417bc91761cc85950f18e41f85 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:19 2013 +0200 cow: make writes go at a less indecent speed Only sync once per write, rather than once per sector. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 276cbc7f2fc1bd3810887995dbc9cbb739c975bf Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:18 2013 +0200 cow: make reads go at a decent speed Do not do two reads for each sector; load each sector of the bitmap and use bitmap operations to process it. Writes are still dog slow! Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0ca0b0d5f8a87dbc6daa5095771d036d0e6dc5b4 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 3 15:49:39 2013 +0200 qmp: Documentation for BLOCK_IMAGE_CORRUPTED Add an appropriate entry describing this event and its parameters into qmp-events.txt. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit fa510ebffa1fd509323e2e0888e369e23adbb508 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:51 2013 +0800 block: use BDS ref for block jobs Block jobs used drive_get_ref(drive_get_by_blockdev(bs)) to avoid BDS being deleted. Now we have BDS reference count, and block jobs don't care about dinfo, so replace them to get cleaner code. It is also the safe way when BDS has no drive info. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 38b54b6dc18ae7e2a32e5ae38b312fb13f0584c8 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:50 2013 +0800 nbd: use BlockDriverState refcnt Previously, nbd calls drive_get_ref() on the drive of bs. A BDS doesn't always have associated dinfo, which nbd doesn't care either. We already have BDS ref count, so use it to make it safe for a BDS w/o blockdev. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c0777fe18b08c3a6de0c53325d6b9b75ebb9de9a Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:49 2013 +0800 xen_disk: simplify blk_disconnect with refcnt We call bdrv_attach_dev when initializing whether or not bs is created locally, so call bdrv_detach_dev and let the refcnt handle the lifecycle. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8442cfd0346de849264494c5adedbac12553867e Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:48 2013 +0800 migration: omit drive ref as we have bdrv_ref now block-migration.c does not actually use DriveInfo anywhere. Hence it's safe to drive ref code, we really only care about referencing BDS. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4f6fd3491cf0f768b135ed2e242bd1d1d2a2efec Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:47 2013 +0800 block: make bdrv_delete() static Manage BlockDriverState lifecycle with refcnt, so bdrv_delete() is no longer public and should be called by bdrv_unref() if refcnt is decreased to 0. This is an identical change because effectively, there's no multiple reference of BDS now: no caller of bdrv_ref() yet, only bdrv_new() sets bs->refcnt to 1, so all bdrv_unref() now actually delete the BDS. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 9fcb025146676ab376e6159b58f5a5ddb67bf03c Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:46 2013 +0800 block: implement reference count for BlockDriverState Introduce bdrv_ref/bdrv_unref to manage the lifecycle of BlockDriverState. They are unused for now but will used to replace bdrv_delete() later. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 13c91cb7e28b47f5c4227f7e88a1378570117704 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:45 2013 +0800 iscsi: use bdrv_new() instead of stack structure BlockDriverState structure needs bdrv_new() to initialize refcnt, don't allocate a local structure variable and memset to 0, becasue with coming refcnt implementation, bdrv_unref will crash if bs->refcnt not initialized to 1. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3d34c6cd99f434126365150c2535bbf93b94f891 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:44 2013 +0800 vvfat: use bdrv_new() to allocate BlockDriverState we need bdrv_new() to properly initialize BDS, don't allocate memory manually. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a94a3fac19c37c093203e9e01c3a54e92e1dc701 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Thu Aug 29 17:48:16 2013 +0100 aio / timers: fix build of test/test-aio.c on non-linux platforms tests/test-aio.c used pipe2 which is Linux only. Use qemu_pipe and qemu_set_nonblock for portabillity. Addition of O_CLOEXEC is a harmless bonus. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 68dc036488dfea170627a55e6ee3dfd7f2c2063e Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Sep 1 22:59:25 2013 +0200 w32: Fix access to host devices (regression) QEMU failed to open host devices like \\.\PhysicalDrive0 (first hard disk) since some time (commit 8a79380b8ef1b02d2abd705dd026a18863b09020?). Those devices use hdev_open which did not use the latest API for options. This resulted in a fatal runtime error: Block protocol 'host_device' doesn't support the option 'filename' Duplicate code from raw_open to fix this. Cc: qemu-stable@xxxxxxxxxx Reported-by: David Brenner <david.brenner3@xxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b2e10493c71160d88bb823cae9a92e806a79b9d6 Author: Alexandre Derumier <aderumier@xxxxxxxxx> Date: Mon Sep 2 19:07:24 2013 +0100 add qemu-img convert -n option (skip target volume creation) Add a -n option to skip volume creation on qemu-img convert. This is useful for targets such as rbd / ceph, where the target volume may already exist; we cannot always rely on qemu-img convert to create the image, as dependent on the output format, there may be parameters which are not possible to specify through the qemu-img convert command line. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Alexandre Derumier <aderumier@xxxxxxxxx> Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b3f3a30f387f34308b3e4d910a2824e69c34182f Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Sep 2 16:36:15 2013 +0200 qemu-iotests: Adjust test result 039 The moved OFLAG_COPIED check in qcow2_check_refcounts results in a different output from test 039 (mismatches are now found after the general refcount check (as far as any remain)). This patch adjusts the expected test result accordingly. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2024c1df43eae0d2e35663da0c6e8c51290a386e Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Mon Sep 2 14:14:41 2013 +0200 block: Add iops_size to do the iops accounting for a given io size. This feature can be used in case where users are avoiding the iops limit by doing jumbo I/Os hammering the storage backend. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3e9fab690d59ac15956c3733fe0794ce1ae4c4af Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Mon Sep 2 14:14:40 2013 +0200 block: Add support for throttling burst max in QMP and the command line. The max parameter of the leaky bucket throttling algorithm can be used to allow the guest to do bursts. The max value is a pool of I/O that the guest can use without being throttled at all. Throttling is triggered once this pool is empty. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit cc0681c45430a1f1a4c2d06e9499b7775afc9a18 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Mon Sep 2 14:14:39 2013 +0200 block: Enable the new throttling code in the block layer. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f17cfe813c40792cc1622ba447581c906beb091e Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Mon Sep 2 14:14:38 2013 +0200 throttle: Add units tests Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5ddfffbdc5e024014b77816dab88d372ad95a5b0 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Mon Sep 2 14:14:37 2013 +0200 throttle: Add a new throttling API implementing continuous leaky bucket. Implement the continuous leaky bucket algorithm devised on IRC as a separate module. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit df7131623daf4823e087eb1128f6c1c351519774 Merge: 863a834 2641689 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Sep 5 13:38:53 2013 -0500 Merge remote-tracking branch 'bonzini/iommu-for-anthony' into staging # By Jan Kiszka (2) and others # Via Paolo Bonzini * bonzini/iommu-for-anthony: exec: do tcg_commit only when tcg_enabled Revert "memory: Return -1 again on reads from unsigned regions" memory: Provide separate handling of unassigned io ports accesses exec: check offset_within_address_space for register subpage exec: fix writing to MMIO area with non-power-of-two length Message-id: 1378401455-583-1-git-send-email-pbonzini@xxxxxxxxxx commit 2641689a37144b201814f39046e36eb285498cbe Author: liguang <lig.fnst@xxxxxxxxxxxxxx> Date: Wed Sep 4 14:37:33 2013 +0800 exec: do tcg_commit only when tcg_enabled Signed-off-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 68a7439a150d6b4da99082ab454b9328b151bc25 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Mon Sep 2 18:43:31 2013 +0200 Revert "memory: Return -1 again on reads from unsigned regions" This reverts commit 9b8c69243585a32d14b9bb9fcd52c37b0b5a1b71. The commit was wrong: We only return -1 on invalid accesses, not on valid but unbacked ones. This broke various corner cases. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 3bb28b7208b349e7a1b326e3c6ef9efac1d462bf Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Mon Sep 2 18:43:30 2013 +0200 memory: Provide separate handling of unassigned io ports accesses Accesses to unassigned io ports shall return -1 on read and be ignored on write. Ensure these properties via dedicated ops, decoupling us from the memory core's handling of unassigned accesses. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 88266249701032211c1d7449460d063fbc01bf12 Author: Hu Tao <hutao@xxxxxxxxxxxxxx> Date: Thu Aug 29 18:21:16 2013 +0800 exec: check offset_within_address_space for register subpage If offset_within_address_space falls in a page, then we register a subpage. So check offset_within_address_space rather than offset_within_region. Cc: qemu-stable@xxxxxxxxxx Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> Cc: Richard Henderson <rth@xxxxxxxxxxx> Cc: "Andreas Färber" <afaerber@xxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Cc: Blue Swirl <blauwirbel@xxxxxxxxx> Signed-off-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 098178f2749a63fbbb1a626dcc7d939d5cb2bde7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Jul 29 14:27:39 2013 +0200 exec: fix writing to MMIO area with non-power-of-two length The problem is introduced by commit 2332616 (exec: Support 64-bit operations in address_space_rw, 2013-07-08). Before that commit, memory_access_size would only return 1/2/4. Since alignment is already handled above, reduce l to the largest power of two that is smaller than l. Cc: qemu-stable@xxxxxxxxxx Reported-by: Oleksii Shevchuk <alxchk@xxxxxxxxx> Tested-by: Oleksii Shevchuk <alxchk@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 863a83415750a2ee75ac1fb31405c11e71bf990b Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Sep 5 09:40:02 2013 -0500 Update mailmap This makes get_maintainers.pl behave a little better. Reported-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 386a5a1e0057e220f79c48fe3689e3dfb17f1b09 Author: Amit Shah <amit.shah@xxxxxxxxxx> Date: Wed Aug 28 15:24:05 2013 +0530 char: remove watch callback on chardev detach from frontend If a frontend device releases the chardev (via unplug), the chr handlers are set to NULL via qdev's exit callbacks invoking qemu_chr_add_handlers(). If the chardev had a pending operation, a callback will be invoked, which will try to access data in the just-released frontend, causing a segfault. Ensure the callbacks are disabled when frontends release chardevs. This was seen when a virtio-serial port was unplugged when heavy guest->host IO was in progress (causing a callback to be registered). In the window in which the throttling was active, unplugging ports caused a qemu segfault. https://bugzilla.redhat.com/show_bug.cgi?id=985205 CC: <qemu-stable@xxxxxxxxxx> Reported-by: Sibiao Luo <sluo@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Amit Shah <amit.shah@xxxxxxxxxx> commit 26da70c72524eb22c946ab19ec98a217b8252f7e Author: Amit Shah <amit.shah@xxxxxxxxxx> Date: Wed Aug 28 15:23:37 2013 +0530 char: use common function to disable callbacks on chardev close This deduplicates code used a lot of times. CC: <qemu-stable@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Amit Shah <amit.shah@xxxxxxxxxx> commit 7ba9addc165b37b764baa08c02518b15b2361707 Author: Amit Shah <amit.shah@xxxxxxxxxx> Date: Wed Aug 28 15:18:29 2013 +0530 char: move backends' io watch tag to CharDriverState All the backends implement an io watcher tag for callbacks. Move it to CharDriverState from each backend's struct to make accessing the tag from backend-neutral functions easier. This will be used later to cancel a callback on chardev detach from a frontend. CC: <qemu-stable@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Amit Shah <amit.shah@xxxxxxxxxx> commit aaa6a40194e9f204cb853f64ef3c1e170bb014e8 Merge: bb7d4d8 5e891bf Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 3 12:33:32 2013 -0500 Merge remote-tracking branch 'afaerber/tags/qom-cpu-for-anthony' into staging QOM CPUState refactorings / X86CPU * Conversion of global CPU list to QTAILQ - preparing for CPU hot-unplug * Document X86CPU magic numbers for CPUID cache info # gpg: Signature made Tue 03 Sep 2013 10:59:22 AM CDT using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Andreas Färber (3) and Eduardo Habkost (1) # Via Andreas Färber * afaerber/tags/qom-cpu-for-anthony: target-i386: Use #defines instead of magic numbers for CPUID cache info cpu: Replace qemu_for_each_cpu() cpu: Use QTAILQ for CPU list a15mpcore: Use qemu_get_cpu() for generic timers commit bb7d4d82b63bbde06c5584f94bfd9ba3b3e5ff3f Merge: 5a93d5c ca0eca9 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 3 12:32:45 2013 -0500 Merge remote-tracking branch 'kwolf/for-anthony' into staging # By Max Reitz (11) and others # Via Kevin Wolf * kwolf/for-anthony: (26 commits) qemu-iotests: Overlapping cluster allocations qcow2_check: Mark image consistent qcow2-refcount: Repair shared refcount blocks qcow2-refcount: Repair OFLAG_COPIED errors qcow2-refcount: Move OFLAG_COPIED checks qcow2: Employ metadata overlap checks qcow2: Metadata overlap checks qcow2: Add corrupt bit qemu-iotests: Snapshotting zero clusters qcow2-refcount: Snapshot update for zero clusters option: Add assigned flag to QEMUOptionParameter gluster: Abort on AIO completion failure block: Remove old raw driver switch raw block driver from "raw.o" to "raw_bsd.o" raw_bsd: register bdrv_raw raw_bsd: add raw_create_options raw_bsd: introduce "special members" raw_bsd: add raw_create() raw_bsd: emit debug events in bdrv_co_readv() and bdrv_co_writev() add skeleton for BSD licensed "raw" BlockDriver ... Message-id: 1378111792-20436-1-git-send-email-kwolf@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 5a93d5c2abc719bd44f6c9fbeed88d3cae712606 Merge: 9ea0f58 fcdda21 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 3 12:31:43 2013 -0500 Merge remote-tracking branch 'mjt/trivial-patches' into staging # By Stefan Weil (6) and others # Via Michael Tokarev * mjt/trivial-patches: aio / timers: use g_usleep() not sleep() adlib: sort offsets in portio registration qmp: fix integer usage in examples tci: Remove function tcg_out64 (fix broken build) target-arm: Report unimplemented opcodes (LOG_UNIMP) pflash_cfi02.c: fix debug macro configure: Remove unneeded redirections of stderr (pkg-config --exists) configure: Remove unneeded redirections of stderr (pkg-config --cflags, --libs) configure: Don't write .pyc files by default (python -B) curl: qemu_bh_new() can never return NULL slirp/arp_table.c: Avoid shifting into sign bit of signed integers configure: disable clang -Wstring-plus-int warning rdma: silly ipv6 bugfix misc: Fix some typos in names and comments slirp: Port redirection option behave differently on Linux and Windows Message-id: 1378119695-14568-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 9ea0f58fc723daeb9e1dba9a762269e8cbbd1b73 Merge: 9889e04 31efd2e Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 3 12:31:30 2013 -0500 Merge remote-tracking branch 'kraxel/usb.88' into staging # By Gerd Hoffmann (10) and Marcel Apfelbaum (1) # Via Gerd Hoffmann * kraxel/usb.88: usb/dev-hid: Modified usb-tablet category from Misc to Input Revert "usb-hub: report status changes only once" usb-hub: add tracepoint for status reports usb: parallelize usb3 streams uas: add property for request logging xhci: reset port when disabling slot xhci: emulate intr endpoint intervals correctly xhci: fix endpoint interval calculation xhci: add port to slot_address tracepoint xhci: add tracepoint for endpoint state changes xhci: remove leftover debug printf Message-id: 1378117055-29620-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 9889e04ac193cad7fa0526573ce0cc752dcabb99 Merge: 5cff81f 23fe2b3 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 3 12:31:07 2013 -0500 Merge remote-tracking branch 'mst/tags/for_anthony' into staging pc,pci,virtio fixes and cleanups This includes pc and pci cleanups and enhancements, and a virtio bugfix for level interrupts. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Sun 01 Sep 2013 03:15:36 AM CDT using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Michael S. Tsirkin (3) and others # Via Michael S. Tsirkin * mst/tags/for_anthony: virtio_pci: fix level interrupts with irqfd pc: reduce duplication, fix PIIX descriptions hw: Clean up bogus default boot order pci: add config space access traces pc: fix regression for 64 bit PCI memory pci: Introduce helper to retrieve a PCI device's DMA address space Message-id: 1378023590-11109-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 5cff81f098a57762ab937bfbedb298e658af2c7f Merge: 545825d 520902a Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 3 12:30:51 2013 -0500 Merge remote-tracking branch 'afaerber/tags/qom-devices-for-anthony' into staging QOM device refactorings * Fix QOM and ISA documentation errors * Extend object_initialize() et al. to check the instance size # gpg: Signature made Fri 30 Aug 2013 02:19:48 PM CDT using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Andreas Färber (14) and others # Via Andreas Färber * afaerber/tags/qom-devices-for-anthony: isa: Fix documentation of isa_register_portio_list() qom: Assert instance size in object_initialize_with_type() qom: Pass available size to object_initialize() qdev: Pass size to qbus_create_inplace() virtio-mmio: Pass size to virtio_mmio_bus_new() virtio-ccw: Pass size to virtio_ccw_bus_new() s390-virtio-bus: Pass size to virtio_s390_bus_new() virtio-pci: Pass size to virtio_pci_bus_new() usb: Pass size to usb_bus_new() scsi: Pass size to scsi_bus_new() pci: Pass size to pci_bus_new_inplace() ide: Pass size to ide_bus_new() ipack: Pass size to ipack_bus_new_inplace() intel-hda: Pass size to hda_codec_bus_init() qom: Fix object_initialize_with_type() argument name in documentation virtio: Remove unnecessary OBJECT() casts object: Fix typo in qom/object.h commit 5e891bf8fd509c4d83cb95d352d88effb20720b1 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Tue Aug 27 12:24:37 2013 -0300 target-i386: Use #defines instead of magic numbers for CPUID cache info This is an attempt to make the CPUID cache topology code clearer, by replacing the magic numbers in the code with #defines, and moving all the cache information to the same place in the file. I took care of comparing the assembly output of compiling target-i386/cpu.c before and after applying this change, to make sure not a single bit was changed on cpu_x86_cpuid() before and after applying this patch (unfortunately I had to manually check existing differences, because of __LINE__ expansions on object_class_dynamic_cast_assert() calls). This even keeps the code bug-compatible with the previous version: today the cache information returned on AMD cache information leaves (CPUID 0x80000005 & 0x80000006) do not match the information returned on CPUID leaves 2 and 4. The L2 cache information on CPUID leaf 2 also doesn't match the information on CPUID leaf 2. The new constants should make it easier to eventually fix those inconsistencies. All inconsistencies I have found are documented in code comments. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 38fcbd3f08375eb2986b9b63ccd4f593e71aa99d Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Jul 7 19:50:23 2013 +0200 cpu: Replace qemu_for_each_cpu() It was introduced to loop over CPUs from target-independent code, but since commit 182735efaf956ccab50b6d74a4fed163e0f35660 target-independent CPUState is used. A loop can be considered more efficient than function calls in a loop, and CPU_FOREACH() hides implementation details just as well, so use that instead. Suggested-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit bdc44640cb33c90809376a262df871a1144d339a Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jun 24 23:50:24 2013 +0200 cpu: Use QTAILQ for CPU list Introduce CPU_FOREACH(), CPU_FOREACH_SAFE() and CPU_NEXT() shorthand macros. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 27013bf20d5d93ac75d398aa3608604e8ad91b5a Author: Andreas Färber <afaerber@xxxxxxx> Date: Wed Aug 21 18:36:35 2013 +0200 a15mpcore: Use qemu_get_cpu() for generic timers This simplifies the loop and aids with refactoring of CPU list. Requested-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 545825d4cda03ea292b7788b3401b99860efe8bc Merge: 32f3bd6 6fb5874 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Tue Sep 3 01:35:43 2013 +0200 Merge branch 'tcg-next' of git://github.com/rth7680/qemu * 'tcg-next' of git://github.com/rth7680/qemu: (29 commits) tcg-i386: Make use of zero-extended memory helper routines tcg: Introduce zero and sign-extended versions of load helpers exec: Split softmmu_defs.h target: Include softmmu_exec.h where forgotten exec: Rename USUFFIX to LSUFFIX tcg-i386: Don't perform GETPC adjustment in TCG code exec: Reorganize the GETRA/GETPC macros configure: Allow x32 as a host tcg-i386: Adjust tcg_out_tlb_load for x32 tcg-i386: Use intptr_t appropriately tcg: Fix jit debug for x32 tcg: Use appropriate types in tcg_reg_alloc_call tcg: Change tcg_out_ld/st offset to intptr_t tcg: Change tcg_gen_exit_tb argument to uintptr_t tcg: Use uintptr_t in TCGHelperInfo tcg: Change relocation offsets to intptr_t tcg: Change memory offsets to intptr_t tcg: Change frame pointer offsets to intptr_t tcg: Define TCG_ptr properly tcg: Define TCG_TYPE_PTR properly ... commit 32f3bd6d4d6d6f835cbc2b9241fe8c32d2898d73 Merge: 3207bf2 7e47226 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Tue Sep 3 01:35:25 2013 +0200 Merge branch 'ppc-for-upstream' of git://github.com/agraf/qemu * 'ppc-for-upstream' of git://github.com/agraf/qemu: PPC: spapr: iommu: rework traces spapr: add "stop-self" RTAS call required to support hot CPU unplug PPC: KVM: Compile fix for qemu_notify_event pseries: Add H_SET_MODE hcall to change guest exception endianness xics: move registration of global state to realize() spapr-pci: rework MSI/MSIX target-ppc: Use #define instead of opencoding SLB valid bit spapr-pci: fix config space access to support bridges target-ppc: fix bit extraction for FPBF and FPL ppc405_boards: Don't enforce presence of firmware for qtest ppc405_uc: Disable debug output ppc405_boards: Disable debug output ppc: virtex_ml507: QEMU_OPTION_dtb support for this machine. disas/ppc.c: Fix little endian disassembly target-ppc: POWER7 supports the MSR_LE bit target-ppc: USE LPCR_ILE to control exception endian on POWER7 pseries: Fix stalls on hypervisor virtual console PPC: E500: Generate device tree on reset commit 3207bf2549a1a84c577d2f6a481192566a059163 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Thu Aug 15 17:57:59 2013 +0200 tcg/mips: only enable ext8s/ext16s ops on MIPS32R2 On MIPS ext8s and ext16s ops are implemented with a dedicated instruction only on MIPS32R2, otherwise the same kind of implementation than at TCG level (shift left followed by shift right) is used. Change that by only implementing the ext8s and ext16s ops on MIPS32R2 so that optimizations can be done by the optimizer. Use an inline version to avoid having to test again for MIPS32R2 instructions. Keep the shift implementation for the ld/st routines. Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit df81ff51d50b22c52e609e13d5292d09e4634659 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Aug 28 13:51:40 2013 +0200 tcg/mips: inline bswap16/bswap32 ops Use an inline version for the bswap16 and bswap32 ops to avoid testing for MIPS32R2 instructions availability, as these ops are only available in that case. Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 988902fc3bc599f7431461b790f3d63d3a2357f9 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Thu Aug 15 17:57:59 2013 +0200 tcg/mips: detect available host instructions at runtime Now that TCG supports enabling and disabling ops at runtime, it's possible to detect the available host instructions at runtime, and enable the corresponding ops accordingly. Unfortunately it's not easy to probe for available instructions on MIPS, the information is partially available in /proc/cpuinfo, and not available in AUXV. This patch therefore probes for the instructions by trying to execute them and by catching a possible SIGILL signal. Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 6fb5874590589585cdcad4ca2431d9d8d4d491b1 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Aug 29 15:00:16 2013 -0700 tcg-i386: Make use of zero-extended memory helper routines For 8 and 16-bit unsigned loads, rely on the zero-extension from the helper and use a smaller 32-bit move insn. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c8f94df5934afd9b2011773aaee0fdef714ff573 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 27 14:09:14 2013 -0700 tcg: Introduce zero and sign-extended versions of load helpers Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e58eb534133f8ccaa957a33a06ccdb9129f2c842 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 27 13:13:44 2013 -0700 exec: Split softmmu_defs.h The _cmmu helpers can be moved to exec-all.h. The helpers that are used from TCG will shortly need access to tcg_target_long so move their declarations into tcg.h. This requires minor include adjustments to all TCG backends. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b1669e5e321a0a96a07ec1f7a82ce8f4b25ddfd5 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 27 13:03:27 2013 -0700 target: Include softmmu_exec.h where forgotten Several targets forgot to include softmmu_exec.h, which would break them with a header cleanup to follow. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 701e3a5cc02fd52ba59894781e78d433ec043772 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 27 11:31:48 2013 -0700 exec: Rename USUFFIX to LSUFFIX In a following patch, there will be confusion between multiple "unsigned" suffixes; rename this one so as to imply "load". Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5bcebc253c1637d3a5b957abc7460c49a670c4de Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 27 10:47:49 2013 -0700 tcg-i386: Don't perform GETPC adjustment in TCG code Since we now perform it inside the helper, no need to do it here. This also lets us perform a tail-call from the store slow path to the helper. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0f842f8a246f2b5b51a11c13f933bf7a90ae8e96 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 27 10:22:54 2013 -0700 exec: Reorganize the GETRA/GETPC macros Always define GETRA; use __builtin_extract_return_addr, rather than having a special case for s390. Split GETPC_ADJ out of GETPC; use 2 universally, rather than having a special case for arm. Rename GETPC_LDST to GETRA_LDST to indicate that it does not contain the GETPC_ADJ value. Likewise with GETPC_EXT to GETRA_EXT. Perform the GETPC_ADJ adjustment inside helper_ret_ld/st. This will allow backends to pass along the "true" return address rather than the massaged GETPC value. In the meantime, double application of GETPC_ADJ does not hurt, since the call insn in all ISAs is at least 4 bytes long. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c72b26ec92eb93a92852ab1d23acb5a945de5062 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 12:20:05 2013 -0700 configure: Allow x32 as a host Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d5dad3be314dfec80ebb1c69266ae62edfea1850 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 16:50:38 2013 -0700 tcg-i386: Adjust tcg_out_tlb_load for x32 Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 357e3d8a297003f9d79f08e45a79a73eb2d12f5b Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 15:37:16 2013 -0700 tcg-i386: Use intptr_t appropriately Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit edee2579ae3722d28756ce04ec665ea9522d8600 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 17:20:30 2013 -0700 tcg: Fix jit debug for x32 Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d3452f1f40956e50142d32afbc021c53026a1770 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 17:12:38 2013 -0700 tcg: Use appropriate types in tcg_reg_alloc_call Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a05b5b9be0fec96c89e00abaa964be7ce9e661ac Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 17:07:26 2013 -0700 tcg: Change tcg_out_ld/st offset to intptr_t Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8cfd04959a023f87e1e6727e608a20f168441370 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 15:53:10 2013 -0700 tcg: Change tcg_gen_exit_tb argument to uintptr_t And update all users. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 48bc6bab479e5abb542119f3974603afd882c246 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 15:38:41 2013 -0700 tcg: Use uintptr_t in TCGHelperInfo Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2ba7fae29ec63acf2ce77d20d4146fa224bf2338 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 15:30:10 2013 -0700 tcg: Change relocation offsets to intptr_t Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2f2f244d02a2cb28db7ce790576ade08fc3a54bf Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 15:17:25 2013 -0700 tcg: Change memory offsets to intptr_t Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e2c6d1b42d34539120c3cee159dcd9e32cba7d3b Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 15:12:31 2013 -0700 tcg: Change frame pointer offsets to intptr_t Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8b73d49f53e1a1d1571ac783ec028ff27befd93e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 15:07:08 2013 -0700 tcg: Define TCG_ptr properly Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d289837eef3550ac156082d812231ec5dfe79501 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 14:48:46 2013 -0700 tcg: Define TCG_TYPE_PTR properly Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 78cd7b835e13bee4416782b6ed41e9bef76e3cfc Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 14:41:29 2013 -0700 tcg: Allow TCG_TARGET_REG_BITS to be specified independantly There are several hosts for which it would be useful to use the available 64-bit registers in a 32-bit pointer environment. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3e9bd63acf145bb2d3da277ee85167878ade53bd Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 14:40:25 2013 -0700 tcg: Fix next_tb type in cpu_exec Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 04d5a1da70dfe1a3a5ac5b5a8e7a7b8136d3a985 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 14:35:34 2013 -0700 tcg: Change tcg_qemu_tb_exec return to uintptr_t Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b93949ef6a5dea2b22987f2aa3028068e751a7e4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 14:22:50 2013 -0700 tcg: Change flush_icache_range arguments to uintptr_t Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 35aa3fb38753bd1557af8370994ce6c5b599e65c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 13:53:25 2013 -0700 qtest: Fix FMT_timeval vs time_t Since FMT_timeval unconditionally uses %ld for both tv_sec and tv_usec, and already casts tv_usec to long, also cast tv_sec to long. Cc: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 01547f7f9283e416578323e5d5df3327ed4df3ee Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 15:22:46 2013 -0700 tcg: Constant fold div, rem Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 32f5717f07e5f801e482052311d21a4223fc78f1 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 14:46:08 2013 -0700 tcg-ppc64: Implement muluh, mulsh Using these instead of mulu2 and muls2 lets us avoid having to argument overlap analysis in the backend. Normal register allocation will DTRT. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3c9a8f17560794ad23889318cc42894c6e592cc3 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 14:41:43 2013 -0700 tcg-mips: Implement mulsh, muluh With the optimization in tcg_liveness_analysis, we can avoid the MFLO when it is unused. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 03271524b66dfc979cc0412bdb5d8d617426b644 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 14:35:56 2013 -0700 tcg: Add muluh and mulsh opcodes Use them in places where mulu2 and muls2 are used. Optimize mulx2 with dead low part to mulxh. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 31efd2e883018b4c079ad082105bc161fbb3fef8 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Aug 22 20:11:36 2013 +0300 usb/dev-hid: Modified usb-tablet category from Misc to Input usb-tablet device was wrongly assigned to Misc category Reported-by: Markus Armbruster <armbru@xxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit bdebd6ee81f4d849aa8541c289203e3992450db0 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Aug 27 17:00:04 2013 +0200 Revert "usb-hub: report status changes only once" This reverts commit a309ee6e0a256f690760abfba44fceaa52a7c2f3. This isn't in line with the usb specification and adds regressions, win7 fails to drive the usb hub for example. Was added because it "solved" the issue of hubs interacting badly with the xhci host controller. Now with the root cause being fixed in xhci (commit <FIXME>) we can revert this one. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit b8cbc1374acdc1d8081f1dc57ef1249d263cf389 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Aug 27 16:59:37 2013 +0200 usb-hub: add tracepoint for status reports Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit c96c41ed0d38d68a6c8b6f84751afebafeae31be Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Aug 27 15:25:24 2013 +0200 usb: parallelize usb3 streams usb3 bulk endpoints with streams are implicitly pipelined now, so the requests will actually be processed in parallel. Also allow them to complete out-of-order. Fixes stalls in the uas driver. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 1556a8fc38dbf4e950c50427192a3a37cdea3cba Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Aug 27 14:54:44 2013 +0200 uas: add property for request logging Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5c67dd7b4884979a2613a4702ac1ab68b0e6a16e Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Aug 28 11:47:09 2013 +0200 xhci: reset port when disabling slot Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 4d7a81c06f5f17e019a2d3a18300500bd64f6f40 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Aug 28 11:38:44 2013 +0200 xhci: emulate intr endpoint intervals correctly Respect the interval for interrupt endpoints, so we don't finish transfers as fast as possible but at the rate configured by the guest. Fixes guest deadlocks triggered by interrupt storms. Cc: Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit ca7162782a293f525633e5816470498dd86a51cf Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Aug 28 11:39:02 2013 +0200 xhci: fix endpoint interval calculation Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 65d81ed402d3b78b6ffbade36a09ea53e41614d2 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Aug 28 11:46:45 2013 +0200 xhci: add port to slot_address tracepoint Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 1c82392a158471355aa6d1922df2d1545bb16b95 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Apr 24 15:01:25 2013 +0200 xhci: add tracepoint for endpoint state changes Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5219042274fa2f993c25202680eeaea42193389d Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Aug 27 14:47:15 2013 +0200 xhci: remove leftover debug printf Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit ca0eca91b65c34d6e5f5c77d5c18ed3de5b26139 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 14:34:31 2013 +0200 qemu-iotests: Overlapping cluster allocations A new test on corrupted images with overlapping cluster allocations. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 24530f3e060c71b6c57c7a70336f08a13a8b0a3d Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 14:34:30 2013 +0200 qcow2_check: Mark image consistent If no corruptions remain after an image repair (and no errors have been encountered), clear the corrupt flag in qcow2_check. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit afa50193cde574528a130a25544fd6f3aa8da069 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Sep 2 09:25:10 2013 +0200 qcow2-refcount: Repair shared refcount blocks If the refcount of a refcount block is greater than one, we can at least try to repair that problem by duplicating the affected block. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7e472264e9e2727bc7d08fe6f012db76e1c1a193 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Aug 29 18:05:00 2013 +1000 PPC: spapr: iommu: rework traces This converts old style fprintf to traces. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> [agraf: change patch subject] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 59760f2dba6b5729bbbef113c0dc142bf9ec94d3 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Aug 30 16:11:56 2013 +1000 spapr: add "stop-self" RTAS call required to support hot CPU unplug PAPR+ requires two RTAS calls to be supported by the hypervisor in order to allow hotplugging VCPUs from the guest. The "start-cpu" RTAS call was already there but "stop-self" was not. This adds the "stop-self" RTAS call. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 7bb438b6a102766ac58e1a2981f8749e4515aa01 Author: Alexander Graf <agraf@xxxxxxx> Date: Thu Aug 29 02:00:16 2013 +0200 PPC: KVM: Compile fix for qemu_notify_event The function qemu_notify_event is defined by a header that we don't include in the PPC KVM code. Include it to get the code building again. target-ppc/kvm_ppc.c: In function 'kvmppc_timer_hack': target-ppc/kvm_ppc.c:26:5: error: implicit declaration of function 'qemu_notify_event' [-Werror=implicit-function-declaration] target-ppc/kvm_ppc.c:26:5: error: nested extern declaration of 'qemu_notify_event' [-Werror=nested-externs] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 42561bf2e464a2d682707af1640fc2db1e937c42 Author: Anton Blanchard <anton@xxxxxxxxx> Date: Mon Aug 19 21:04:20 2013 +1000 pseries: Add H_SET_MODE hcall to change guest exception endianness H_SET_MODE is used for controlling various partition settings. One of these settings is the endianness a guest takes its exceptions in. Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> [agraf: fix whitespace] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 33a0e5d8c555091eef6944595d8787cb9274e451 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Aug 19 15:55:21 2013 +1000 xics: move registration of global state to realize() Registration of global state belongs into realize so move it there. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit f1c2dc7c866a939c39c14729290a21309a1c8a38 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Jul 12 17:38:24 2013 +1000 spapr-pci: rework MSI/MSIX On the sPAPR platform a guest allocates MSI/MSIX vectors via RTAS hypercalls which return global IRQ numbers to a guest so it only operates with those and never touches MSIMessage. Therefore MSIMessage handling is completely hidden in QEMU. Previously every sPAPR PCI host bridge implemented its own MSI window to catch msi_notify()/msix_notify() calls from QEMU devices (virtio-pci or vfio) and route them to the guest via qemu_pulse_irq(). MSIMessage used to be encoded as: .addr - address within the PHB MSI window; .data - the device index on PHB plus vector number. The MSI MR write function translated this MSIMessage to a global IRQ number and called qemu_pulse_irq(). However the total number of IRQs is not really big (at the moment it is 1024 IRQs starting from 4096) and even 16bit data field of MSIMessage seems to be enough to store an IRQ number there. This simplifies MSI handling in sPAPR PHB. Specifically, this does: 1. remove a MSI window from a PHB; 2. add a single memory region for all MSIs to sPAPREnvironment and spapr_pci_msi_init() to initialize it; 3. encode MSIMessage as: * .addr - a fixed address of SPAPR_PCI_MSI_WINDOW==0x40000000000ULL; * .data as an IRQ number. 4. change IRQ allocator to align first IRQ number in a block for MSI. MSI uses lower bits to specify the vector number so the first IRQ has to be aligned. MSIX does not need any special allocator though. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Anthony Liguori <aliguori@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit a3cedb541ca3ecc82040f597a4054419fdb22fa5 Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 20 16:19:24 2013 +0530 target-ppc: Use #define instead of opencoding SLB valid bit Use SLB_ESID_V instead of (1 << 27) in the code Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5dac82ce0d8716b54f73f96bf50811644a76e5c2 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Wed Aug 21 16:02:15 2013 +1000 spapr-pci: fix config space access to support bridges spapr-pci config space accessors use find_dev() to find a PCI device. However find_dev() only searched on a primary bus and did not do recursive search through secondary buses so config space access was not possible for devices other that on a primary bus. This fixed find_dev() by using the PCI API pci_find_device() function. This effectively enabled pci bridges on spapr. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 779f659021d1754117bce1aab9370dc22f37ae07 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Thu Aug 15 13:32:38 2013 +0200 target-ppc: fix bit extraction for FPBF and FPL Bit extraction for the FP BF and L field of the MTFSFI and MTFSF instructions is wrong and doesn't match the reference manual (which explain the bit number in big endian format). It has been broken in commit 7d08d85645def18eac2a9d672c1868a35e0bcf79. This patch fixes this, which in turn fixes the problem reported by Khem Raj about the floor() function of libm. Reported-by: Khem Raj <raj.khem@xxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> CC: qemu-stable@xxxxxxxxxx (1.6) Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit ad9990acc5ac29ce505fbb2b955928ce335eddfd Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 5 15:27:23 2013 +0200 ppc405_boards: Don't enforce presence of firmware for qtest Adopt error_report() while at it. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 0d84382ed96cb2cfc3bc5be34d3a045eeb69c9dc Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 5 15:27:22 2013 +0200 ppc405_uc: Disable debug output Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit bf2ed917d77489189e7bcfea629ca030c8e2639d Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 5 15:27:21 2013 +0200 ppc405_boards: Disable debug output Also move one stray debug output into an #ifdef. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit daf285b6063f20c328f03d6185bbfe9b81ce5fe2 Author: Efimov Vasily <real@xxxxxxxxx> Date: Wed Aug 14 17:26:08 2013 +0400 ppc: virtex_ml507: QEMU_OPTION_dtb support for this machine. QEMU has 'dtb' option for specifing the device tree file for the kernel. The patch adds support for this option to the 'virtex_ml507' machine implementation. Signed-off-by: Efimov Vasily <real@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 95f5b6e3af28a24f97b25649e12f586e19e8a4a1 Author: Anton Blanchard <anton@xxxxxxxxx> Date: Wed Aug 7 10:47:03 2013 +1000 disas/ppc.c: Fix little endian disassembly Use info->endian to select the endian of the instruction to be disassembled. Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Reviewed-by: Anthony Liguori <aliguori@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit bb429d224733c263456c105eab93cd2b5e55add2 Author: Anton Blanchard <anton@xxxxxxxxx> Date: Wed Aug 7 10:47:00 2013 +1000 target-ppc: POWER7 supports the MSR_LE bit Add MSR_LE to the msr_mask for POWER7. Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Reviewed-by: Anthony Liguori <aliguori@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 1e0c7e554e449abb7bf759339ca2cf8cda232532 Author: Anton Blanchard <anton@xxxxxxxxx> Date: Wed Aug 7 10:47:01 2013 +1000 target-ppc: USE LPCR_ILE to control exception endian on POWER7 On POWER7, LPCR_ILE is used to control what endian guests take their exceptions in so use it instead of MSR_ILE. Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Reviewed-by: Anthony Liguori <aliguori@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 7770b6f78a2d655e03852a5de238f5926c92be6a Author: Anton Blanchard <anton@xxxxxxxxx> Date: Tue Aug 13 14:10:04 2013 +1000 pseries: Fix stalls on hypervisor virtual console A number of users are reporting stalls when using the pseries hypervisor virtual console. A simple test case is to paste 15 or 17 characters at a time into the console. Pasting 15 characters at a time works fine but pasting 17 characters hangs for a random amount of time. Other activity (network, qemu monitor etc) unblocks it. If qemu-char tries to send more than 16 characters at once, vty_can_receive returns false. At this point we have to wait for the guest to consume that output. Everything is good so far. The problem occurs when the the guest does consume the output. We need to signal back to the qemu-char layer that we are ready for more input. Without this we block until something else kicks us (eg network activity). Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 28290f37e20cda27574f15be9e9499493e3d0fe8 Author: Alexander Graf <agraf@xxxxxxx> Date: Fri Jul 19 12:56:24 2013 +0200 PPC: E500: Generate device tree on reset Today we generate the device tree once on machine initialization and then store the finalized blob in memory to reload it on reset. This is bad for 2 reasons. First we potentially waste a bunch of RAM for no good reason, as we have all information required to regenerate the device tree available anyways. The second reason is even more important. On machine init when we generate the device tree for the first time, we don't have all of the devices fully initialized yet. But the device tree needs to potentially walk devices to put information about them into the device tree. Move the generation into a reset function. That way we just generate it new every time we reset, solving both of the above issues. Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit fcdda211f9239f4218f96cdc336a482f7103d90b Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Thu Aug 29 23:32:14 2013 +0100 aio / timers: use g_usleep() not sleep() sleep() apparently doesn't exist under mingw. Use g_usleep for portability. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2b21fb57af305f17841d79e7e2e02ad1aec3f5ca Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Wed Aug 14 11:49:04 2013 +0200 adlib: sort offsets in portio registration This fixes the following assert when -device adlib is used: ioport.c:240: portio_list_add: Assertion `pio->offset >= off_last' failed. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 586b546657da7a762106abb5056d90a140d1a2f5 Author: Eric Blake <eblake@xxxxxxxxxx> Date: Fri Aug 30 14:44:11 2013 -0600 qmp: fix integer usage in examples Per the qapi schema, block_set_io_throttle takes most arguments as ints, not strings. * qmp-commands.hx (block_set_io_throttle): Use correct type. Fix whitespace and a copy-paste bug in the process. Signed-off-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit a32b12741bf45bf3f46bffe5a79cb2548a060cd8 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Aug 28 19:28:06 2013 +0200 tci: Remove function tcg_out64 (fix broken build) Commit ac26eb69a311396668809eadbf7ff4e623447d4c added tcg_out64 to tcg/tcg.c. tcg/tci/tcg-target.c already had a nearly identical implementation which is now removed to fix a compiler error. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit e0c270d946dc8efd723129b6a9d956b3084b55b1 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Aug 28 06:39:56 2013 +0200 target-arm: Report unimplemented opcodes (LOG_UNIMP) These unimplemented opcodes are handled like illegal opcodes, but they are used in existing code. We should at least report when they are executed. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 56f99ea19b5ae71cfdc0bd147cba372da3b63c44 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Wed Aug 28 07:59:37 2013 +0400 pflash_cfi02.c: fix debug macro If PFLASH_DEBUG is enabled then we have some build errors: hw/block/pflash_cfi02.c: In function â??pflash_timerâ??: hw/block/pflash_cfi02.c:128:5: error: expected â??)â?? before string constant hw/block/pflash_cfi02.c:128:5: error: too few arguments to function â??fprintfâ?? This patch fixes the problem. Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 65d5d3f92246f056a45e4ddc6f13487de39cd47c Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Aug 27 21:09:13 2013 +0200 configure: Remove unneeded redirections of stderr (pkg-config --exists) Predicate options (--exists, --atleast-version, ...) of pkg-config dont't print error messages to stderr, so redirecting stderr is not necessary. Combining a predicate option with --modversion is not necessary for tests. Instead of testing with --modversion, --exists can be used. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ca871ec8612cc0e95a02de83a3bdd01514e5733b Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Aug 27 21:09:12 2013 +0200 configure: Remove unneeded redirections of stderr (pkg-config --cflags, --libs) For existing libraries, pkg-config --cflags and pkg-config --libs won't print error messages to stderr, so redirecting stderr is not necessary. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 1d984a67a95d88f3e708b077dab8adeb47c38c93 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Aug 27 15:12:41 2013 +0200 configure: Don't write .pyc files by default (python -B) When a Python script is run, Python normally writes bytecode into a .pyc file. QEMU's build process uses several Python scripts which are called from configure or make. The generated .pyc files take disk space without being of much use, because those scripts are short, not time critical and only called a few times. Python's option -B disables writing of .pyc files. QEMU now uses "python -B" as default, but it is still possible to choose a different call by passing --python=PYTHON to configure. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 5b21a2ae4dea72d9aa68e0385fc0548971e929f4 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Aug 26 13:38:50 2013 +0200 curl: qemu_bh_new() can never return NULL Drop error code path which cannot be taken since qemu_bh_new() does not return NULL. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ed6bc28e8a448b9005af50eed12893c5f7711c6e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Aug 23 17:36:48 2013 +0100 slirp/arp_table.c: Avoid shifting into sign bit of signed integers "0xf << 28" shifts right into the sign bit, since 0xf is a signed integer. Use the 'U' suffix to force an unsigned shift to avoid this undefined behaviour and a clang sanitizer warning. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Acked-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 714290979abf551d5116346e4fbd3d54eb24bd12 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Aug 5 20:16:40 2013 +0100 configure: disable clang -Wstring-plus-int warning Some versions of clang will warn about adding integers to strings: disas/i386.c:4753:23: error: adding 'char' to a string does not append to the string [-Werror,-Wstring-plus-int] oappend ("%es:" + intel_syntax); ~~~~~~~^~~~~~~~~~~~~~ disas/i386.c:4753:23: note: use array indexing to silence this warning oappend ("%es:" + intel_syntax); ^ & [ ] disas/i386.c uses this idiom to to skip a "%" prefix if using intel rather than AT&T syntax. This seems like a reasonable thing to do, and I don't think anybody contributing to QEMU is likely to believe that '+' is a string concatenation operator in C, so just disable -Wstring-plus-int. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit c89aa2f1851b08c3efa8a1070c0a6b9a36e1227f Author: Michael R. Hines <mrhines@xxxxxxxxxx> Date: Sun Aug 18 22:27:08 2013 -0400 rdma: silly ipv6 bugfix My bad - but it's very important for us to warn the user that IPv6 is broken on RoCE in linux right now, until linux releases a fixed version. Signed-off-by: Michael R. Hines <mrhines@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 4c293dc6e4cf0421e13870962e1e8ccbb810b2a6 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Aug 18 19:40:06 2013 +0200 misc: Fix some typos in names and comments Most typos were found using a modified version of codespell: accross -> across issueing -> issuing TICNT_THRESHHOLD -> TICNT_THRESHOLD bandwith -> bandwidth VCARD_7816_PROPIETARY -> VCARD_7816_PROPRIETARY occured -> occurred gaurantee -> guarantee sofware -> software Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit efcb7e45290ecc8633f7c5bdf02ac86f6289fa7d Author: Taimoor Mirza <tmirza@xxxxxxxxxxxxxxxx> Date: Thu Aug 15 23:13:28 2013 +0500 slirp: Port redirection option behave differently on Linux and Windows port redirection code uses SO_REUSEADDR socket option before binding to host port. Behavior of SO_REUSEADDR is different on Windows and Linux. Relaunching QEMU with same host and guest port redirection values on Linux throws error but on Windows it does not throw any error. Problem is discussed in http://lists.gnu.org/archive/html/qemu-devel/2013-04/msg03089.html Signed-off-by: Taimoor Mirza <tmirza@xxxxxxxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 23fe2b3f9e7df8da53ac1bc32c6875254911d7f4 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Sep 1 11:03:45 2013 +0300 virtio_pci: fix level interrupts with irqfd commit 62c96360ae7f2c7a8b029277fbb7cb082fdef7fd virtio-pci: fix level interrupts only helps systems without irqfd: on systems with irqfd support we passed in flag requesting irqfd even when msix is disabled. As a result, for level interrupts we didn't install an fd handler so unmasking an fd had no effect. Fix this up. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a0dba644c139907ccf6735c505fbd254010d6938 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Aug 27 09:48:06 2013 +0300 pc: reduce duplication, fix PIIX descriptions We have a lot of code duplication between machine types, this increases with each new machine type and each new field. This has already introduced a minor bug: description for pc-1.3 says "Standard PC" while description for pc-1.4 is "Standard PC (i440FX + PIIX, 1996)" which makes you think 1.3 is somehow more standard, or newer, while in fact it's a revision of the same PC. This patch addresses this issue by using macros, along the lines used by PC_COMPAT_X_X - only for non-property options. The approach can extend to non-PC machine types. Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 520902a656f21bdd4f212bfa55bc35c3e567affc Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Tue Aug 13 12:38:34 2013 +0200 isa: Fix documentation of isa_register_portio_list() Commit b40acf9 (ioport: Switch dispatching to memory core layer, 2013-06-24) removed all instances of old_portio. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5b9237f67c499fa4e20bb9bd29c7ce54afe79cb7 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 30 18:28:37 2013 +0200 qom: Assert instance size in object_initialize_with_type() This catches objects initializing beyond allocated memory, e.g., when subtypes get extended with instance state of their own. Suggested-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 213f0c4f619dda7a56612353009e6f30d3348206 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 19:37:12 2013 +0200 qom: Pass available size to object_initialize() To be passed on to object_initialize_with_type(). Acked-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> (virtio-ccw) Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit fb17dfe0575243a3f60dcefca37fa82ae682f146 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sat Aug 24 00:02:27 2013 +0200 qdev: Pass size to qbus_create_inplace() To be passed to object_initialize(). Since commit 39355c3826f5d9a2eb1ce3dc9b4cdd68893769d6 the argument is void*, so drop some superfluous (BusState *) casts or direct parent field usages. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit e5f720391e0628131cb6548b3d27be6aa56ae7d4 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:33:55 2013 +0200 virtio-mmio: Pass size to virtio_mmio_bus_new() To be passed to qbus_create_initialize(). Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 1bf4d7aad61f47b3da52c4aff239fd94be320727 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:27:30 2013 +0200 virtio-ccw: Pass size to virtio_ccw_bus_new() To be passed to qbus_create_inplace(). Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Acked-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5d6c0c49136e2615c0cd60cda523e8dc8cd65ed7 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:25:57 2013 +0200 s390-virtio-bus: Pass size to virtio_s390_bus_new() To be passed to qbus_create_inplace(). Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ac7af1120f589a5385e39b3decc3d2d944a4d656 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:35:18 2013 +0200 virtio-pci: Pass size to virtio_pci_bus_new() To be passed to qbus_create_inplace(). Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c889b3a55d5d1d18042693cbe2f8f05465914ff4 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:32:04 2013 +0200 usb: Pass size to usb_bus_new() To be passed to qbus_create_inplace(). Use DEVICE() cast to avoid a direct parent field access. Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit b1187b51ff5563135da0a9e5c855d7876ab1a926 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:30:03 2013 +0200 scsi: Pass size to scsi_bus_new() To be passed to qbus_create_inplace(). Use DEVICE() casts instead of direct parent field access. Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit dd301ca607feddab3b44f927cd36aee004c40e1a Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:23:55 2013 +0200 pci: Pass size to pci_bus_new_inplace() To be passed to qbus_create_inplace(). Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c6baf942e084e0bc40ee37c8d8672ac9c5ea270b Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:18:50 2013 +0200 ide: Pass size to ide_bus_new() To be passed to qbus_create_inplace(). Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 77cbb28a5b90dbd183e1139734bcc2ac9ecbdd6a Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:07:28 2013 +0200 ipack: Pass size to ipack_bus_new_inplace() To be passed to qbus_create_inplace(). Simplify DEVICE() cast to avoid parent field access. Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ab809e84a722f8fa1bcdeac5e3ebae10d90fb788 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:05:16 2013 +0200 intel-hda: Pass size to hda_codec_bus_init() To be passed to qbus_create_inplace(). Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 53caad9a31bed10f59c70406001b9217bda2d111 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sat Aug 24 01:12:33 2013 +0200 qom: Fix object_initialize_with_type() argument name in documentation @obj -> @data. Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit e65177a87f22b98b3b82433d05a18a2c4a3714da Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Aug 23 14:38:55 2013 +0100 virtio: Remove unnecessary OBJECT() casts There's no need to cast the first argument of object_initialize() to Object. Remove these unnecessary casts. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 70392912eddf4e19801b2e96c0156fea634b4e59 Author: Peter Chubb <peter.chubb@xxxxxxxxxxxx> Date: Wed Aug 7 12:31:55 2013 +1000 object: Fix typo in qom/object.h There's been a cut-and-paste error, it looks like, in the documentation in qom/object.h. Signed-off-by: Peter Chubb <peter.chubb@xxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 4ff78e0dbcd5c795962567fdc1b31e9e03c55b07 Merge: b95fdc0 7ca0e06 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Fri Aug 30 12:26:04 2013 -0500 Merge remote-tracking branch 'luiz/queue/qmp' into staging # By Wenchao Xia (15) and Stefan Weil (1) # Via Luiz Capitulino * luiz/queue/qmp: monitor: improve auto complete of "help" for single command in sub group monitor: allow "help" show message for single command in sub group monitor: support sub command in auto completion monitor: refine monitor_find_completion() monitor: support sub command in help monitor: refine parse_cmdline() monitor: code move for parse_cmdline() monitor: avoid direct use of global variable *mon_cmds monitor: split off monitor_data_init() monitor: call sortcmdlist() only one time monitor: avoid use of global *cur_mon in readline_completion() monitor: avoid use of global *cur_mon in monitor_find_completion() monitor: avoid use of global *cur_mon in block_completion_it() monitor: avoid use of global *cur_mon in file_completion() monitor: avoid use of global *cur_mon in cmd_completion() monitor: Add missing attributes to local function Message-id: 1377865357-6742-1-git-send-email-lcapitulino@xxxxxxxxxx commit b95fdc0e99e9b5c98bb8e2aee9eaffe160f1031b Merge: b5d54bd 7f7f975 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Fri Aug 30 12:25:56 2013 -0500 Merge remote-tracking branch 'borntraeger/tags/kdump' into staging This is a set of patches dealing with kdump support for s390x/kvm. kdump on s390x uses subcode 1 of diagnose 0x308 to put the hardware in a defined state. This is different from a full reset, since it does not touch all CPU registers. These patches define the cpu resets, the subsystem reset a load function and also wires up the "nmi" command to issue a RESTART interrupt as defined in the z/Architecture principles of operation. This allows recent guest kernels with properly setup userspace to trigger kdump: - via guest crash - via nmi from the host # gpg: Signature made Fri 30 Aug 2013 07:19:18 AM CDT using RSA key ID B5A61C7C # gpg: Can't check signature: public key not found # By Christian Borntraeger (5) and Eugene (jno) Dvurechenski (2) # Via Christian Borntraeger * borntraeger/tags/kdump: s390: wire up nmi command to raise a RESTART interrupt on S390 s390: Implement load normal reset s390/cpu: split CPU reset into architectured functions s390: provide a cpu load normal function s390: provide I/O subsystem reset s390/kvm: basic implementation of diagnose 308 subcode 6 s390x/kvm: Fix switch/case indentation for handle_diag Message-id: 1377810649-47484-1-git-send-email-borntraeger@xxxxxxxxxx commit e23e400ec62a03dea58ddb38479b4f1ef86f556d Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 14:34:28 2013 +0200 qcow2-refcount: Repair OFLAG_COPIED errors Since the OFLAG_COPIED checks are now executed after the refcounts have been repaired (if repairing), it is safe to assume that they are correct but the OFLAG_COPIED flag may be not. Therefore, if its value differs from what it should be (considering the according refcount), that discrepancy can be repaired by correctly setting (or clearing that flag. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4f6ed88c03c4026e31ce152ea760a0da839f0dda Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 14:34:27 2013 +0200 qcow2-refcount: Move OFLAG_COPIED checks Move the OFLAG_COPIED checks out of check_refcounts_l1 and check_refcounts_l2 and after the actual refcount checks/fixes (since the refcounts might actually change there). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit cf93980e775b709ec8f33f55846e6dcf1c7a612c Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 14:34:26 2013 +0200 qcow2: Employ metadata overlap checks The pre-write overlap check function is now called before most of the qcow2 writes (aborting it on collision or other error). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a40f1c2add4d5f58d594f810fe36cabcf32bc4b0 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 14:34:25 2013 +0200 qcow2: Metadata overlap checks Two new functions are added; the first one checks a given range in the image file for overlaps with metadata (main header, L1 tables, L2 tables, refcount table and blocks). The second one should be used immediately before writing to the image file as it calls the first function and, upon collision, marks the image as corrupt and makes the BDS unusable, thereby preventing further access. Both functions take a bitmask argument specifying the structures which should be checked for overlaps, making it possible to also check metadata writes against colliding with other structures. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 69c98726537627e708abb8fcb33e3a2b10e40bf1 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 14:34:24 2013 +0200 qcow2: Add corrupt bit This adds an incompatible bit indicating corruption to qcow2. Any image with this bit set may not be written to unless for repairing (and subsequently clearing the bit if the repair has been successful). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 449df7063815489a0b091bcb3afa9ae80ae3acbf Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 10:40:15 2013 +0200 qemu-iotests: Snapshotting zero clusters This test creates an image with unallocated zero clusters, then creates a snapshot. Afterwards, there should be neither any errors nor leaks. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8b81a7b6ba8686f35f9cb0acdd54004d63206f03 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 10:40:14 2013 +0200 qcow2-refcount: Snapshot update for zero clusters Account for all cluster types in qcow2_update_snapshot_refcounts; this prevents this function from updating the refcount of unallocated zero clusters which effectively led to wrong adjustments of the refcount of cluster 0 (the main qcow2 header). This in turn resulted in images with (unallocated) zero clusters having a cluster 0 refcount greater than one after creating a snapshot. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d4ca092a423f1f853a99357bab01a168bb57d625 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Aug 29 11:15:44 2013 +0200 option: Add assigned flag to QEMUOptionParameter Adds an "assigned" flag to QEMUOptionParameter which is cleared at the beginning of parse_option_parameters and set on (successful) set_option_parameter and set_option_parameter_int. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9faa574f7d07109e2256c0b4b63e8711d650f2d8 Author: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 13:45:41 2013 +0530 gluster: Abort on AIO completion failure Currently if gluster AIO callback thread fails to notify the QEMU thread about AIO completion, we try graceful recovery by marking the disk drive as inaccessible. This error recovery code is race-prone as found by Asias and Stefan. However as found out by Paolo, this kind of error is impossible and hence simplify the code that handles this error recovery. Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e5b1d99f5528315dc77aab369ae060d7cbad1e2a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Aug 28 15:15:52 2013 +0200 block: Remove old raw driver This is unused code now. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7a6d3fc594d1166ec78a6b74ba76753078de0de5 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Wed Aug 21 12:41:23 2013 +0200 switch raw block driver from "raw.o" to "raw_bsd.o" "Incoming" function prototypes and "outgoing" function calls must match reality. Implemented using the "struct BlockDriver" definition in "include/block/block_int.h", and gcc errors & warnings. v1->v2: On 08/20/13 09:51, Kevin Wolf wrote: > Am 18.08.2013 um 16:29 hat Paolo Bonzini geschrieben: >> Il 16/08/2013 16:15, Laszlo Ersek ha scritto: >>> +static int raw_reopen_prepare(BDRVReopenState *reopen_state, >>> + BlockReopenQueue *queue, Error **errp) >>> { >>> - return bdrv_reopen_prepare(bs->file); >>> + BDRVReopenState tmp = *reopen_state; >>> + >>> + tmp.bs = tmp.bs->file; >>> + return bdrv_reopen_prepare(&tmp, queue, errp); >>> } >> >> This should just return zero, my fault. > > Which is because bdrv_reopen_queue() already queues bs->file for reopen. > The simple return 0; implementation is shared by all other format drivers > that support reopening images. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 775d6afd5cd66f2154a81f5de9d3dd7297a35072 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Wed Aug 21 12:41:22 2013 +0200 raw_bsd: register bdrv_raw On 08/05/13 15:03, Paolo Bonzini wrote: > > [...] > > 5) Formats are registered with bdrv_register (takes a BlockDriver*). You > also need to pass the caller of bdrv_register to block_init. Fill in the BlockDriver structure with the raw_*() functions that have been added to "block/raw_bsd.c", in the order the fields are defined in "include/block/block_int.h". I needed more explanation / naming examples for registering the driver than what Paolo gave me, so I copied / adapted from "block/qcow2.c". The parts I took as basis for modification are blamed on commit 5efa9d5a8b18841c9c62208a494d7f519238979a Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sat May 9 17:03:42 2009 -0500 Convert block infrastructure to use new module init functionality commit 20d97356c9df6d68fbd37d6334fdb7063f24eab6 Author: Blue Swirl <blauwirbel@xxxxxxxxx> Date: Fri Apr 23 20:19:47 2010 +0000 Fix OpenBSD build Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit ff369a483df89cc6ca510b0c3ab9afe9cf0bdfdc Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Wed Aug 21 12:41:21 2013 +0200 raw_bsd: add raw_create_options On 08/05/13 15:03, Paolo Bonzini wrote: > > [...] > > 4) There is another member, .create_options, which is an array of > QEMUOptionParameter structs, terminated by an all-zero item. The only > option you need is for the virtual disk size. You will find something > to copy from in other block drivers, for example block/qcow2.c. Code taken and adapted from "block/qcow2.c", as suggested. The code being copied/modified is blamed on commit 20d97356c9df6d68fbd37d6334fdb7063f24eab6 Author: Blue Swirl <blauwirbel@xxxxxxxxx> Date: Fri Apr 23 20:19:47 2010 +0000 Fix OpenBSD build and commit 7c80ab3f21f0b1342f23057d4345ae266c7348d9 Author: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx> Date: Fri Dec 17 16:02:39 2010 +0100 block/qcow2.c: rename qcow_ functions to qcow2_ Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 01dd96d8f4f253ee29b4e0362a73c5f43bdc0b18 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Wed Aug 21 12:41:20 2013 +0200 raw_bsd: introduce "special members" On 08/05/13 15:03, Paolo Bonzini wrote: > > [...] > > 3) These members are special > > .format_name is the string "raw" > .bdrv_open raw_open should set bs->sg to bs->file->sg and return 0 > .bdrv_close raw_close should do nothing > .bdrv_probe raw_probe should just return 1. v1->v2: On 08/20/13 10:11, Kevin Wolf wrote: > Am 16.08.2013 um 16:15 hat Laszlo Ersek geschrieben: >> +static int raw_probe(void) >> +{ >> + return 1; >> +} > > Maybe add a comment here like "smallest possible positive score so that > raw is used if and only if no other block driver works". Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1565262c370195f1d7781d98f78fa002ab16b385 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Wed Aug 21 12:41:19 2013 +0200 raw_bsd: add raw_create() On 08/05/13 15:03, Paolo Bonzini wrote: > > [...] > > 2) This is also a simple forwarder function: > > .bdrv_create > > but there is no BlockDriverState argument so the forwarded-to function > does not have a bs->file argument either. The forwarded-to function is > bdrv_create_file. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9eaafd90d14b6049cc1d0e0b6c712459d447363c Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Wed Aug 21 12:41:18 2013 +0200 raw_bsd: emit debug events in bdrv_co_readv() and bdrv_co_writev() On 08/05/13 15:03, Paolo Bonzini wrote: > > [...] > > 1) BlockDriver is a struct in which these function members are > interesting: > > .bdrv_reopen_prepare > .bdrv_co_readv > .bdrv_co_writev > .bdrv_co_is_allocated > .bdrv_co_write_zeroes > .bdrv_co_discard > .bdrv_getlength > .bdrv_get_info > .bdrv_truncate > .bdrv_is_inserted > .bdrv_media_changed > .bdrv_eject > .bdrv_lock_medium > .bdrv_ioctl > .bdrv_aio_ioctl > .bdrv_has_zero_init > > They should be implemented as simple forwarders (see above). There are > 16 functions listed here, you can easily see how this already accounts > for 100+ SLOC roughly... > > The implementations of bdrv_co_readv and bdrv_co_writev should also call > BLKDBG_EVENT on bs->file too, before forwarding to bs->file. The events > to be generated are BLKDBG_READ_AIO and BLKDBG_WRITE_AIO. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e1c66c6d82fe5988d66531febc27ef8480c44c8a Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Wed Aug 21 12:41:17 2013 +0200 add skeleton for BSD licensed "raw" BlockDriver On 08/05/13 15:03, Paolo Bonzini wrote: > > > ----- Original Message ----- >> From: "Laszlo Ersek" <lersek@xxxxxxxxxx> >> To: "Paolo Bonzini" <pbonzini@xxxxxxxxxx> >> Sent: Monday, August 5, 2013 2:43:46 PM >> Subject: Re: [PATCH 1/2] raw: add license header >> >> On 08/02/13 00:27, Paolo Bonzini wrote: >>> On 08/01/2013 10:13 AM, Christoph Hellwig wrote: >>>> On Wed, Jul 31, 2013 at 08:19:51AM +0200, Paolo Bonzini wrote: >>>>> Most of the block layer is under the BSD license, thus it is >>>>> reasonable to license block/raw.c the same way. CCed people should >>>>> ACK by replying with a Signed-off-by line. >>>> >>>> The coded was intended to be GPLv2. >>> >>> Laszlo, would you be willing to do clean-room reverse engineering? >>> >>> (No rants, please. :)) >> >> What's the scope exactly? > > It's quite small, it's a file full of forwarders like > > static void raw_foo(BlockDriverState *bs) > { > return bdrv_foo(bs->file); > } > > It's 170 lines of code, all as boring as this. I only picked you > because I'm quite certain you have never seen the file (and the answer > confirmed it). > > Basically: > > 1) BlockDriver is a struct in which these function members are > interesting: > > .bdrv_reopen_prepare > .bdrv_co_readv > .bdrv_co_writev > .bdrv_co_is_allocated > .bdrv_co_write_zeroes > .bdrv_co_discard > .bdrv_getlength > .bdrv_get_info > .bdrv_truncate > .bdrv_is_inserted > .bdrv_media_changed > .bdrv_eject > .bdrv_lock_medium > .bdrv_ioctl > .bdrv_aio_ioctl > .bdrv_has_zero_init > > They should be implemented as simple forwarders (see above). > There are 16 functions listed here, you can easily see how this > already accounts for 100+ SLOC roughly... > > The implementations of bdrv_co_readv and bdrv_co_writev should also > call BLKDBG_EVENT on bs->file too, before forwarding to bs->file. The > events to be generated are BLKDBG_READ_AIO and BLKDBG_WRITE_AIO. > > 2) This is also a simple forwarder function: > > .bdrv_create > > but there is no BlockDriverState argument so the forwarded-to function > does not have a bs->file argument either. The forwarded-to function > is bdrv_create_file. > > 3) These members are special > > .format_name is the string "raw" > .bdrv_open raw_open should set bs->sg to bs->file->sg and return 0 > .bdrv_close raw_close should do nothing > .bdrv_probe raw_probe should just return 1. > > 4) There is another member, .create_options, which is an array of > QEMUOptionParameter structs, terminated by an all-zero item. The only > option you need is for the virtual disk size. You will find something > to copy from in other block drivers, for example block/qcow2.c. > > 5) Formats are registered with bdrv_register (takes a BlockDriver*). > You also need to pass the caller of bdrv_register to block_init. > > 6) I'm not sure how to organize the patch series, so I'll leave this to > your creativity. I guess in this case move/copy detection of git should > be disabled. I would definitely include this spec in the commit > message as a proof of clean-room reverse engineering. > > 7) Remember a BSD header like the one in block.c. > > Paolo This patch implements the email up to the paragraph ending with "100+ SLOC roughly". The skeleton is generated from the list there, with a simple shell loop using "sed" and the raw_foo() template. The BSD license block is copied (and reflowed) from "util/qemu-progress.c". Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 127c84e1a52f11bf418cc2d3bf804da5091a190a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Aug 23 17:35:45 2013 +0100 block/qcow2.h: Avoid "1LL << 63" (shifts into sign bit) The expression "1LL << 63" tries to shift the 1 into the sign bit of a 'long long', which provokes a clang sanitizer warning: runtime error: left shift of 1 by 63 places cannot be represented in type 'long long' Use "1ULL << 63" as the definition of QCOW_OFLAG_COPIED instead to avoid this. For consistency, we also update the other QCOW_OFLAG definitions to use the ULL suffix rather than LL, though only the shift by 63 is undefined behaviour. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit cccc30b4ad5d9835f5525d94210c8de26f4f5f94 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Aug 28 16:12:20 2013 +0200 qemu-iotests: Update reference output for 051 Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c0447d870b25cd95af2630ab3d376321bd6e820a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Aug 28 09:50:40 2013 +0200 Revert "block: Disable driver-specific options for 1.6" This reverts commit 8afaefb8919dc8746a57c450a758717c516c7b0a. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 015370301fd90ea5d17522eba00ae2797569ce8b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Jul 2 12:18:18 2013 +0200 qapi-types.py: Split off generate_struct_fields() Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 09da4a72926e2d0af0e5f0cb967ab0dd345311f4 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Apr 15 10:59:42 2013 +0200 block: Remove redundant assertion The failing condition is checked immediately before the assertion, so keeping the assertion is kind of redundant. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9117b47717ad208b12786ce88eacb013f9b3dd1c Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Aug 19 10:38:01 2013 +0200 qcow2: Change default for new images to compat=1.1 By the time that qemu 1.7 will be released, enough time will have passed since qemu 1.1, which is the first version to understand version 3 images, that changing the default shouldn't hurt many people any more and the benefits of using the new format outweigh the pain. qemu-iotests already runs with compat=1.1 by default. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 7f7f975295bc19829b3bd26cadc7f1c9eadb7c6b Author: Eugene (jno) Dvurechenski <jno@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 5 15:50:07 2012 +0100 s390: wire up nmi command to raise a RESTART interrupt on S390 There is the 'nmi' command that is used to trigger a guest dump via kdump feature on x86. s390 uses RESTART interrupt to trigger kdump. So, this patch provides a mean to use 'nmi' command on s390 to raise RESTART interrupt. The CPU to receive the RESTART interrupt is the "default" one. There is an infrastructure to select the "default" CPU using 'cpu' command. The 'info cpus' command can be used to see which one is the "default". In order to wire up the RESTART to 'nmi' command we had to: 1. implement the kvm_s390_cpu_restart function by exporting the existing code 2. implement s390_cpu_restart function as kvm-aware wrapper 3. modify the qmp_inject_nmi function to enable (for s390) the scan for "default" CPU and call s390_cpu_restart for it; 3. fix some messages. Signed-off-by: Eugene (jno) Dvurechenski <jno@xxxxxxxxxxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> commit f077847572708bbb3dd22bbc91ac6a277046e827 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Thu Jul 25 16:57:45 2013 +0200 s390: Implement load normal reset kdump on s390 uses a load normal reset to bring the system in a defined state by doing a subsystem reset. The issuing CPUs will have an initial CPU reset, all other CPUs will have a CPU reset as defined in POP (no register content will change). Implement this as architectured. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit f5ae2a4fd8d573cfebaf24220e2920bb5074d9a6 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Fri Jun 28 10:51:09 2013 +0200 s390/cpu: split CPU reset into architectured functions s390 provides several CPU resets: - CPU reset, clears interrupts, stop processing, clears TLB, but does not touch registers - initial CPU reset, like CPU reset, but also clears PSW, prefix, FPC, timer and control registers. It does not touch gprs, fprs and acrs (!) - Power on reset: the full monty wire up CPUClass reset to the full monty, but provide the lesser resets as part of S390CPUClass. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 7ca0e061044615e39eab2b22b8fc2791a4d77c34 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:27 2013 +0800 monitor: improve auto complete of "help" for single command in sub group Now special case "help *" in auto completion can work with sub commands, such as "help info u*". Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 129be006d63ba90b788de6b1610892e02ef5eaba Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:26 2013 +0800 monitor: allow "help" show message for single command in sub group A new parameter type 'S' is introduced to allow user input any string. "help info block" works normal now. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d903a779cf2f1fa5cd12076411a00b835f1b7b26 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:25 2013 +0800 monitor: support sub command in auto completion This patch allows auto completion work normal for sub command case, "info block [DEVICE]" can auto complete now, by re-enter the completion function. In original code "info" is treated as a special case, now it is treated as a sub command group, global variable info_cmds is not used any more. "help" command is still treated as a special case, since it is not a sub command group but want to auto complete command in root command table. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit c35b6400338897847bbab1b0f65d89552636579a Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:24 2013 +0800 monitor: refine monitor_find_completion() In order to support sub command in auto completion, a reentrant function is needed, so monitor_find_completion() is split into two parts. The first part does parsing of user input which need to be done only once, the second part does the auto completion job according to the parsing result, which contains the necessary code to support sub command and works as the reentrant function. The global "info_cmds" is still used in second part, which will be replaced by sub command code later. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 66855495fbcca9411a21e6eba6a3a0385007c96d Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:23 2013 +0800 monitor: support sub command in help The old code in help_cmd() uses global 'info_cmds' and treats it as a special case. Actually 'info_cmds' is a sub command group of 'mon_cmds', in order to avoid direct use of it, help_cmd() needs to change its work mechanism to support sub command and not treat it as a special case any more. To support sub command, help_cmd() will first parse the input and then call help_cmd_dump(), which works as a reentrant function. When it meets a sub command, it simply enters the function again. Since help dumping needs to know whole input to printf full help message include prefix, for example, "help info block" need to printf prefix "info", so help_cmd_dump() takes all args from input and extra parameter arg_index to identify the progress. Another function help_cmd_dump_one() is introduced to printf the prefix and command's help message. Now help supports sub command, so later if another sub command group is added in any depth, help will automatically work for it. Still "help info block" will show error since command parser reject additional parameter, which can be improved later. "log" is still treated as a special case. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit dcc70cdf0932172fc5cf27617a3b033ca58d0176 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:22 2013 +0800 monitor: refine parse_cmdline() Since this function will be used by help_cmd() later, so improve it to make it more generic and easier to use. free_cmdline_args() is added too as paired function to free the result. One change of this function is that, when the valid args in input exceed the limit of MAX_ARGS, it fails now, instead of return with MAX_ARGS of parsed args in old code. This should not impact much since it is rare that user input many args in monitor's "help" and auto complete scenario. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit f5438c0500bb22c97b30987d2e0eab953416c7c5 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:21 2013 +0800 monitor: code move for parse_cmdline() help_cmd() need this function later, so move it. get_str() is called by parse_cmdline() so it is moved also. Some code style error reported by check script, is also fixed. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 7717239dc1778e94a6210e62e1ec2ba720168eec Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:20 2013 +0800 monitor: avoid direct use of global variable *mon_cmds New member *cmd_table is added in structure Monitor to avoid direct usage of *mon_cmds. Now monitor have an associated command table, when global variable *info_cmds is also discarded, structure Monitor would gain full control about how to deal with user input. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit b01fe89e91268c6b02720735643020746610e6d8 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:19 2013 +0800 monitor: split off monitor_data_init() In qmp_human_monitor_command(), the monitor need to initialized for basic functionalities, and later more init code will be added, so split off this function. Note that it is different with QMP mode monitor which accept json string from monitor's input, qmp_human_monitor_command() retrieve the human style command from QMP input, then send the command to a normal mode monitor. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d038317c357efef9d8d362e526c5f5071f505a04 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:18 2013 +0800 monitor: call sortcmdlist() only one time It doesn't need to be done for every monitor, so change it. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d1a9756ab8c2c2578cbcb325efffe0b0af916944 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:17 2013 +0800 monitor: avoid use of global *cur_mon in readline_completion() Now all completion functions do not use *cur_mon any more, instead they use rs->mon. In short, structure ReadLineState decide where the complete action would be taken now. Tested with the case that qemu have two telnet monitors, auto completion function works normal. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d2674b2cf7db7dce865f3c2b89f0e36d1657a3b5 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:16 2013 +0800 monitor: avoid use of global *cur_mon in monitor_find_completion() Parameter *mon is added, and local variable *mon added in previous patch is removed. The caller readline_completion(), pass rs->mon as value, which should be initialized in readline_init() called by monitor_init(). Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 599a926abcf581732d449163a96fd9a4cc80091a Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:15 2013 +0800 monitor: avoid use of global *cur_mon in block_completion_it() Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit cb8f68b104f8d14f0ad856012cac7bd27f183799 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:14 2013 +0800 monitor: avoid use of global *cur_mon in file_completion() Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit cd5c6bba1b75d4faebb58345d2661d5e42600fab Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:13 2013 +0800 monitor: avoid use of global *cur_mon in cmd_completion() A new local variable *mon is added in monitor_find_completion() to make compile pass, which will be removed later in conversion patch for monitor_find_completion(). Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 9c3175cc15fbe8d3528375d1389dad40b19b7665 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Aug 22 21:30:09 2013 +0200 monitor: Add missing attributes to local function Function expr_error gets a format string and variable arguments like printf. It also never returns. Add the necessary attributes. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 29c6157ca7bfa036a8c59805c1a1d76ba9a2a851 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Thu Jul 25 16:45:51 2013 +0200 s390: provide a cpu load normal function Some code needs to perform an IPL-like bootup that mimics the ESA (31bit) restart. Provide a cpu class method that does so. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> commit 4e872a3fb024f0d742ef6b48be3afaab2c4453fc Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Thu Jul 25 16:37:37 2013 +0200 s390: provide I/O subsystem reset Provide a function that resets the I/O subsystem. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> commit 268846ba93de2529630d623b6ded72cee1221106 Author: Eugene (jno) Dvurechenski <jno@xxxxxxxxxxxxxxxxxx> Date: Wed Jun 19 17:27:15 2013 +0200 s390/kvm: basic implementation of diagnose 308 subcode 6 Linux uses a check for subcode 6 to decide if other subcodes are available. Provide a minimal implementation for subcode 6, as well as for subcode 5. Signed-off-by: Eugene (jno) Dvurechenski <jno@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> [Move code from kvm.c into misc_helper.c] commit 39fbc5c62ce83f34e7f5b62238305d83ce8b4489 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Fri Aug 30 11:06:56 2013 +0200 s390x/kvm: Fix switch/case indentation for handle_diag This alignes case statements to switch statements in the handle_diag function as mandated by coding style. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit b5d54bd42158b90b239bb6ce9c13072eb3a53fd2 Merge: e560992 821c808 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Aug 29 17:21:51 2013 -0500 Merge remote-tracking branch 'qemu-kvm/uq/master' into stable-1.5 * qemu-kvm/uq/master: kvm-stub: fix compilation kvm: shorten the parameter list for get_real_device() kvm: i386: fix LAPIC TSC deadline timer save/restore kvm-all.c: max_cpus should not exceed KVM vcpu limit kvm: Simplify kvm_handle_io kvm: x86: fix setting IA32_FEATURE_CONTROL with nested VMX disabled kvm: add KVM_IRQFD_FLAG_RESAMPLE support kvm: migrate vPMU state target-i386: remove tabs from target-i386/cpu.h Initialize IA32_FEATURE_CONTROL MSR in reset and migration Conflicts: target-i386/cpu.h target-i386/kvm.c aliguori: fixup trivial conflicts due to whitespace and added cpu argument Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit e560992f21437380857ae490c907810d99459df5 Merge: 3e998a7 92f1623 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Aug 29 17:20:17 2013 -0500 Merge remote-tracking branch 'sweil/mingw' into stable-1.5 # By Stefan Weil # Via Stefan Weil * sweil/mingw: gtk: Remove unused include statements which are not portable w32: Add an icon resource w32: Fix broken out-of-tree builds (missing version.o) Message-id: 1377607132-21336-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 3e998a778846de4ea24188278f18e4191a56412e Merge: 584950f 1ae2757 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Aug 29 17:19:19 2013 -0500 Merge remote-tracking branch 'mst/tags/for_anthony' into stable-1.5 pc,pci,virtio fixes and cleanups This includes pc and pci cleanups, future-proofing of ROM files, and a virtio bugfix correcting splice on virtio console. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Mon 26 Aug 2013 01:34:20 AM CDT using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Markus Armbruster (5) and others # Via Michael S. Tsirkin * mst/tags/for_anthony: virtio: virtqueue_get_avail_bytes: fix desc_pa when loop over the indirect descriptor table pc_piix: Kill pc_init1() memory region args pc: pc_compat_1_4() now can call pc_compat_1_5() pc: Create pc_compat_*() functions pc: Kill pc_init_pci_1_0() pc: Don't explode QEMUMachineInitArgs into local variables needlessly pc: Don't prematurely explode QEMUMachineInitArgs ppc: Don't duplicate QEMUMachineInitArgs in PPCE500Params ppc: Don't explode QEMUMachineInitArgs into local variables needlessly sun4: Don't prematurely explode QEMUMachineInitArgs q35: Add PCIe switch to example q35 configuration loader: store FW CFG ROM files in RAM arch_init: align MR size to target page size pc: cleanup 1.4 compat support Message-id: 1377535318-30491-1-git-send-email-mst@xxxxxxxxxx commit 584950fd4e4d6ca580800e46f1b41cf1b0b4236c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Aug 29 08:21:37 2013 -0700 tcg-i386: Remove abort from GETPC_LDST Indeed, remove it entirely and remove the is_tcg_gen_code check from GETPC_EXT. Fixes https://bugs.launchpad.net/qemu/+bug/1218098 wherein a call to a "normal" helper function performed a sequence of tail calls all the way into the memory helper functions, leading to a stack frame in which the memory helper function appeared to be called directly from tcg. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 951fab990db05d47ab9da5e72521e406c73a3eb9 Author: James Hogan <james.hogan@xxxxxxxxxx> Date: Tue Aug 27 17:48:36 2013 +0100 target-mips: fix get_physical_address() #if 0 build error In get_physical_address() is a qemu_log() call inside an #if 0 block. When enabled the following build error is hit: target-mips/helper.c In function â??get_physical_addressâ??: target-mips/helper.c:220:13: error: format â??%xâ?? expects argument of type â??unsigned intâ??, but argument 5 has type â??hwaddrâ?? [-Werror=format] Fix the *physical (hwaddr) formatting by using "%"HWADDR_PRIx instead of TARGET_FMT_lx. Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx> Cc: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Yongbok Kim <yongbok.kim@xxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 821c808bd1863efc2c1e977800ae77db633a185c Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Aug 27 17:13:44 2013 +0200 kvm-stub: fix compilation Non-KVM targets fail compilation on the uq/master branch. Fix the prototype of kvm_irqchip_add_irqfd_notifier to match the one in kvm-all.c. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit c16547326988cc321c9bff43ed91cbe753e52892 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 13:13:50 2013 +0200 hw: Clean up bogus default boot order We set default boot order "cad" in every single machine definition except "pseries" and "moxiesim", even though very few boards actually care for boot order, and "cad" makes sense for even fewer. Machines that care: * pc and its variants Accept up to three letters 'a', 'b' (undocumented alias for 'a'), 'c', 'd' and 'n'. Reject all others (fatal with -boot). * nseries (n800, n810) Check whether order starts with 'n'. Silently ignored otherwise. * prep, g3beige, mac99 Extract the first character the machine understands (subset of 'a'..'f'). Silently ignored otherwise. * spapr Accept an arbitrary string (vl.c restricts it to contain only 'a'..'p', no duplicates). * sun4[mdc] Use the first character. Silently ignored otherwise. Strip characters these machines ignore from their default boot order. For all other machines, remove the unused default boot order alltogether. Note that my rename of QEMUMachine member boot_order to default_boot_order and QEMUMachineInitArgs member boot_device to boot_order has a welcome side effect: it makes every use of boot orders visible in this patch, for easy review. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 3bf4dfdd1110de84ca0cecff0679cf7da90bfbfe Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Wed Aug 21 14:42:06 2013 +1000 pci: add config space access traces This adds pci_cfg_read and pci_cfg_write traces for config spaces accesses. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 92f1623663a8797e68a043ec401a740746439f29 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Aug 18 09:26:34 2013 +0200 gtk: Remove unused include statements which are not portable These include files don't exist for MinGW and are not needed for Linux (and hopefully for other hosts as well), so remove them. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 487cddb2bf3f429953dc5b3252d2a3b83d7200c5 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Aug 17 09:32:04 2013 +0200 w32: Add an icon resource The QEMU mascot which was already used for the NSIS installer is now used for all QEMU executables. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 7e75e33e7886314490305f181065b8b4ec916a8a Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Fri Aug 16 21:51:53 2013 +0200 w32: Fix broken out-of-tree builds (missing version.o) Commit 0b516ef0dfad9a7b34c675c98e8ec92ab4d38466 added version.o to all executables, but broke out-of-tree builds: for those builds the pattern rule %.o: %.rc from rules.mak does not match, so version.o was no longer built. Adding explicit build rules fixes this. Reported-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Tested-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 1466cef32dd5e7ef3c6477e96d85d92302ad02e3 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Aug 27 08:37:26 2013 +0300 pc: fix regression for 64 bit PCI memory commit 398489018183d613306ab022653552247d93919f pc: limit 64 bit hole to 2G by default introduced a way for management to control the window allocated to the 64 bit PCI hole. This is useful, but existing management tools do not know how to set this property. As a result, e.g. specifying a large ivshmem device with size > 4G is broken by default. For example this configuration no longer works: -device ivshmem,size=4294967296,chardev=cfoo -chardev socket,path=/tmp/sock,id=cfoo,server,nowait Fix this by detecting that hole size was not specified and defaulting to the backwards-compatible value of 1 << 62. Cc: qemu-stable@xxxxxxxxxx Cc: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9eda7d373e9c691c070eddcbe3467b991f67f6bd Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Sat Aug 10 01:09:08 2013 +1000 pci: Introduce helper to retrieve a PCI device's DMA address space A PCI device's DMA address space (possibly an IOMMU) is returned by a method on the PCIBus. At the moment that only has one caller, so the method is simply open coded. We'll need another caller for VFIO, so this patch introduces a helper/wrapper function. If IOMMU is not set, the pci_device_iommu_address_space() function returns the parent's IOMMU skipping the "bus master" address space as otherwise proper emulation would require more effort for no benefit. Signed-off-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> [aik: added inheritance from parent if iommu is not set for the current bus] Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 401c227b0a1134245ec61c6c5a9997cfc963c8e4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Jul 25 07:16:52 2013 -1000 tcg-i386: Use new return-argument ld/st helpers Discontinue the jump-around-jump-to-jump scheme, trading it for a single immediate move instruction. The two extra jumps always consume 7 bytes, whereas the immediate move is either 5 or 7 bytes depending on where the code_gen_buffer gets located. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit aac1fb0576e5bea72681e91c38caffc17741eb80 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Jul 26 08:29:15 2013 -1000 tcg: Tidy softmmu_template.h Avoid a loop in the tlb_fill path; the fill will either succeed or generate an exception. Inline the slow_ld/st function; it was a complete copy of the main helper except for the actual cross-page unaligned code, and the compiler was inlining it anyway. Add unlikely markers optimizing for the most common case of simple tlb miss. Make sure the compiler can optimize away the unaligned paths for a 1 byte access. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e25c3887e6ac50e7a0c42a2f597b088a27d5bb5d Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jul 24 14:54:12 2013 -1000 tcg: Add mmu helpers that take a return address argument Allow the code that tcg generates to be less obtuse, passing in the return address directly instead of computing it in the helper. Maintain the old entrance point unchanged as an alternate entry point. Delete the helper_st*_cmmu prototypes; the implementations did not exist. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c6f29ff096d9e956df94db20fe49275c35f601fb Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Jul 25 06:33:33 2013 -1000 tcg-i386: Tidy qemu_ld/st slow path Use existing stack space for arguments; don't push/pop. Use less ifdefs and more C ifs. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8023ccda079624221e618efeb537b41c70407469 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Jul 25 10:00:41 2013 -1000 tcg-i386: Try pc-relative lea for constant formation Use a 7 byte lea before the ultimate 10 byte movq. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ac26eb69a311396668809eadbf7ff4e623447d4c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Jul 25 09:42:17 2013 -1000 tcg-i386: Add and use tcg_out64 No point in splitting the write into 32-bit pieces. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2bb8656dadcaa521a9699ab2a2632b68da36c998 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 09:46:38 2013 -0700 tcg: Tidy generated code for tcg_outN Aliasing was forcing s->code_ptr to be re-read after the store. Keep the pointer in a local variable to help the compiler. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f7ad538e1ea130c8b6f3abb06ad6c856242c799e Merge: e3f024a b10577d Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Aug 26 09:19:50 2013 -0500 Merge remote-tracking branch 'stefanha/block' into staging # By Alex Bligh (32) and others # Via Stefan Hajnoczi * stefanha/block: (42 commits) win32-aio: drop win32_aio_flush_cb() aio-win32: replace incorrect AioHandler->opaque usage with ->e aio / timers: remove dummy_io_handler_flush from tests/test-aio.c aio / timers: Remove legacy interface aio / timers: Switch entire codebase to the new timer API aio / timers: Add scripts/switch-timer-api aio / timers: Add test harness for AioContext timers aio / timers: convert block_job_sleep_ns and co_sleep_ns to new API aio / timers: Convert rtc_clock to be a QEMUClockType aio / timers: Remove main_loop_timerlist aio / timers: Rearrange timer.h & make legacy functions call non-legacy aio / timers: Add qemu_clock_get_ms and qemu_clock_get_ms aio / timers: Remove legacy qemu_clock_deadline & qemu_timerlist_deadline aio / timers: Remove alarm timers aio / timers: Add documentation and new format calls aio / timers: Use all timerlists in icount warp calculations aio / timers: Introduce new API timer_new and friends aio / timers: On timer modification, qemu_notify or aio_notify aio / timers: Convert mainloop to use timeout aio / timers: Convert aio_poll to use AioContext timers' deadline ... Message-id: 1377202298-22896-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit e3f024aec29a2e3eff46138687e2ecba7631c645 Merge: 42eed42 73c30df Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Aug 26 09:19:36 2013 -0500 Merge remote-tracking branch 'afaerber/tags/0.15-maintainer-for-anthony' into staging MAINTAINERS update for stable-0.15 # gpg: Signature made Thu 22 Aug 2013 10:59:31 AM CDT using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Andreas Färber # Via Andreas Färber * afaerber/tags/0.15-maintainer-for-anthony: MAINTAINERS: Take over 0.15 maintenance commit 1ae2757c6c4525c9b42f408c86818f843bad7418 Author: yinyin <yin.yin@xxxxxxxxxxx> Date: Thu Aug 22 14:47:16 2013 +0800 virtio: virtqueue_get_avail_bytes: fix desc_pa when loop over the indirect descriptor table virtqueue_get_avail_bytes: when found a indirect desc, we need loop over it. /* loop over the indirect descriptor table */ indirect = 1; max = vring_desc_len(desc_pa, i) / sizeof(VRingDesc); num_bufs = i = 0; desc_pa = vring_desc_addr(desc_pa, i); But, It init i to 0, then use i to update desc_pa. so we will always get: desc_pa = vring_desc_addr(desc_pa, 0); the last two line should swap. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Yin Yin <yin.yin@xxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 42eed424e1ea6469ce73cb2fdddb0d31bebb686a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 16 23:29:47 2013 -0700 disas-objdump: Pass --adjust-vma to objdump This gives the dumped blob its correct address during disassembly, which makes pc-relative insns much easier to interpret. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 8dc6d24091edc34be1f989a2d92703130760401f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 16 23:29:46 2013 -0700 disas: Add disas-objdump.pl The script massages the output produced for architectures that are not supported internally by qemu though an external objdump program for disassembly. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit c46ffd57a3e2c36c241b4c676aa7d9c706eb2dc3 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 16 23:29:45 2013 -0700 disas: Implement fallback to dump object code as hex The OBJD-[HT] tags will be used by a script to run the hex blob through objdump --disassemble. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 867c47cbba5d5ff8f27cc22634f30da56d09c2c4 Author: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx> Date: Thu Aug 22 18:40:12 2013 +0200 kvm: shorten the parameter list for get_real_device() get_real_device() has 5 parameters with the last 4 is contained in the first structure. This patch removes the last 4 parameters and directly use them from the first parameter. Acked-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Signed-off-by: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit b10577df13fa4a1b38ea6c1ea7b66c6dfd90a07a Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Aug 22 15:28:36 2013 +0200 win32-aio: drop win32_aio_flush_cb() The io_flush argument to qemu_aio_set_event_notifier() has been removed since the block layer learnt to drain requests by itself. Fix the Windows build for win32-aio.o by updating the qemu_aio_set_event_notifier() call and dropping win32_aio_flush_cb(). Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8b2d42d273ed0df2a34cfa29f47bc1f8cc3abb26 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Aug 22 15:28:35 2013 +0200 aio-win32: replace incorrect AioHandler->opaque usage with ->e The AioHandler->opaque field does not exist in aio-win32.c. The code that uses it was incorrectly copied from aio-posix.c. For Windows we can use AioHandler->e to match against AioContext->notifier. This patch fixes the Windows build for aio-win32.o. Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 91c68f143d6e707c5783b162292dce38ae358c19 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Thu Aug 22 19:59:16 2013 +0100 aio / timers: remove dummy_io_handler_flush from tests/test-aio.c Remove dummy_io_handler_flush from tests/test-aio.c as it does nothing now. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b4049b74b97f30fe944c63b5f158ec9e87bd2593 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:09 2013 +0100 aio / timers: Remove legacy interface Remove the legacy interface from include/qemu/timers.h. Ensure struct QEMUClock is not exposed at all. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bc72ad67543f5c5d39c005ff0ca72da37642a1fb Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:08 2013 +0100 aio / timers: Switch entire codebase to the new timer API This is an autogenerated patch using scripts/switch-timer-api. Switch the entire code base to using the new timer API. Note this patch may introduce some line length issues. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit fe10ab540bcc2c5e4ac15ae686008c4a17a95c69 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:07 2013 +0100 aio / timers: Add scripts/switch-timer-api Add scripts/switch-timer-api to programatically rewrite source files to use the new timer system. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b53edf971f060389179b2935ca09e2cd9f9a728b Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:06 2013 +0100 aio / timers: Add test harness for AioContext timers Add a test harness for AioContext timers. The g_source equivalent is unsatisfactory as it suffers from false wakeups. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7483d1e54700156e4c22e2e1b5d85de6eb92fdcf Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:05 2013 +0100 aio / timers: convert block_job_sleep_ns and co_sleep_ns to new API Convert block_job_sleep_ns and co_sleep_ns to use the new timer API. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 884f17c235095af99b92dd8cd10bb824a5b0f777 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:04 2013 +0100 aio / timers: Convert rtc_clock to be a QEMUClockType Convert rtc_clock to be a QEMUClockType Move rtc_clock users to use the new API Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7bf8fbde449600926370f744b2b3d9cc819ca74f Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:03 2013 +0100 aio / timers: Remove main_loop_timerlist Now we have timerlistgroups implemented and main_loop_tlg, we no longer need the concept of a default timer list associated with each clock. Remove it and simplify initialisation of clocks and timer lists. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 40daca54cd94678273c81dca8c0adefa297da5ea Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:02 2013 +0100 aio / timers: Rearrange timer.h & make legacy functions call non-legacy Rearrange timer.h so it is in order by function type. Make legacy functions call non-legacy functions rather than vice-versa. Convert cpus.c to use new API. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 55a197dab4d26e6dcd2b539320b7daf68cf8c967 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:01 2013 +0100 aio / timers: Add qemu_clock_get_ms and qemu_clock_get_ms Add utility functions qemu_clock_get_ms and qemu_clock_get_us Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 63111b69cce420886ba7bfb8e367bd6c6969c1b6 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:00 2013 +0100 aio / timers: Remove legacy qemu_clock_deadline & qemu_timerlist_deadline Remove qemu_clock_deadline and qemu_timerlist_deadline now we are using the ns functions throughout. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6d327171551a12b937c5718073b9848d0274c74d Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:59 2013 +0100 aio / timers: Remove alarm timers Remove alarm timers from qemu-timers.c now we use g_poll / ppoll instead. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 54904d2a9165bd34dee0f076826b308be2498fe0 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:58 2013 +0100 aio / timers: Add documentation and new format calls Add documentation for existing qemu timer calls. Add new format calls of the format timer_XXX rather than qemu_XXX_timer for consistency. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ac70aafc28bec4d1014082f0c6659a368c5a95bd Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:57 2013 +0100 aio / timers: Use all timerlists in icount warp calculations Notify all timerlists derived from vm_clock in icount warp calculations. When calculating timer delay based on vm_clock deadline, use all timerlists. For compatibility, maintain an apparent bug where when using icount, if no vm_clock timer was set, qemu_clock_deadline would return INT32_MAX and always set an icount clock expiry about 2 seconds ahead. NB: thread safety - when different timerlists sit on different threads, this will need some locking. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a3a726ae09cdf6d277ac88cd725cf50d5849db2c Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:56 2013 +0100 aio / timers: Introduce new API timer_new and friends Introduce new API for creating timers - timer_new and _ns, _ms, _us derivatives. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b1bbfe72ec1ebf302d97f886cc646466c0abd679 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:55 2013 +0100 aio / timers: On timer modification, qemu_notify or aio_notify On qemu_mod_timer_ns, ensure qemu_notify or aio_notify is called to end the appropriate poll(), irrespective of use_icount value. On qemu_clock_enable, ensure qemu_notify or aio_notify is called for all QEMUTimerLists attached to the QEMUClock. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7b595f35d89d73bc69c35bf3980a89c420e8a44b Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:54 2013 +0100 aio / timers: Convert mainloop to use timeout Convert mainloop to use timeout from default timerlist group (i.e. the current 3 static timers) main-loop.c produces a (possibly spurious) warning about multiple iterations. Adapt the way this works for a signed timeout and make the warning a bit safer. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 438e1f47e7db042a10458f70aaa6197aff5d84df Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:53 2013 +0100 aio / timers: Convert aio_poll to use AioContext timers' deadline Convert aio_poll to use deadline based on AioContext's timers. aio_poll has been changed to return accurately whether progress has occurred. Prior to this commit, aio_poll always returned true if g_poll was entered, whether or not any progress was made. This required a change to tests/test-aio.c where an assert was backwards. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4e29e8311a53025a06433382768b82111c0bb80c Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:52 2013 +0100 aio / timers: Add aio_timer_init & aio_timer_new wrappers Add aio_timer_init and aio_timer_new wrapper functions. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 533a8cf3506172fe1966abc6875c65494378321e Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:51 2013 +0100 aio / timers: aio_ctx_prepare sets timeout from AioContext timers Calculate the timeout in aio_ctx_prepare taking into account the timers attached to the AioContext. Alter aio_ctx_check similarly. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d5541d86806acc2e1a3cf9e1402370ba884e9fe1 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:50 2013 +0100 aio / timers: Add a notify callback to QEMUTimerList Add a notify pointer to QEMUTimerList so it knows what to notify on a timer change. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit dae21b98b973e8d878a92b44f70a51aa8d4c739b Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:49 2013 +0100 aio / timers: Add QEMUTimerListGroup to AioContext Add a QEMUTimerListGroup each AioContext (meaning a QEMUTimerList associated with each clock is added) and delete it when the AioContext is freed. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 754d6a544d044bddeef87e9a63b4f511f59f3c4e Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:48 2013 +0100 aio / timers: Add QEMUTimerListGroup and helper functions Add QEMUTimerListGroup and helper functions, to represent a QEMUTimerList associated with each clock. Add a default QEMUTimerListGroup representing the default timer lists which are not associated with any other object (e.g. an AioContext as added by future patches). Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6a1751b7aad6e38e9d1ae6bcea72fa28bf6cc5fb Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:47 2013 +0100 aio / timers: Untangle include files include/qemu/timer.h has no need to include main-loop.h and doing so causes an issue for the next patch. Unfortunately various files assume including timers.h will pull in main-loop.h. Untangle this mess. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ff83c66eccf5b5f6b6530d504e3be41559250dcb Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:46 2013 +0100 aio / timers: Split QEMUClock into QEMUClock and QEMUTimerList Split QEMUClock into QEMUClock and QEMUTimerList so that we can have more than one QEMUTimerList associated with the same clock. Introduce a main_loop_timerlist concept and make existing qemu_clock_* calls that actually should operate on a QEMUTimerList call the relevant QEMUTimerList implementations, using the clock's default timerlist. This vastly reduces the invasiveness of this change and means the API stays constant for existing users. Introduce a list of QEMUTimerLists associated with each clock so that reenabling the clock can cause all the notifiers to be called. Note the code to do the notifications is added in a later patch. Switch QEMUClockType to an enum. Remove global variables vm_clock, host_clock and rt_clock and add compatibility defines. Do not fix qemu_next_alarm_deadline as it's going to be deleted. Add qemu_clock_use_for_deadline to indicate whether a particular clock should be used for deadline calculations. When use_icount is true, vm_clock should not be used for deadline calculations as it does not contain a nanosecond count. Instead, icount timeouts come from the execution thread doing aio_notify or qemu_notify as appropriate. This function is used in the next patch. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f9a976b7408f061fc7fc48b14d16797ed6f8fd97 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:45 2013 +0100 aio / timers: Make qemu_run_timers and qemu_run_all_timers return progress Make qemu_run_timers and qemu_run_all_timers return progress so that aio_poll etc. can determine whether a timer has been run. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit cd758dd0acaaf1f76f9727d4409915f3293db07a Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:44 2013 +0100 aio / timers: Add prctl(PR_SET_TIMERSLACK, 1, ...) to reduce timer slack Where supported, called prctl(PR_SET_TIMERSLACK, 1, ...) to set one nanosecond timer slack to increase precision of timer calls. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4e0c6529fcb5ccbed5eb2c4f094264eb447d49ea Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:43 2013 +0100 aio / timers: add ppoll support with qemu_poll_ns Add qemu_poll_ns which works like g_poll but takes a nanosecond timeout. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 73c30df69ce1f6767a7dba29b2411329de102847 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Apr 13 17:54:02 2012 +0200 MAINTAINERS: Take over 0.15 maintenance SUSE is shipping qemu-kvm 0.15.1 with SLES 11 SP2 so we will be actively tracking all KVM-related issues. Therefore upgrade to Supported. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5211333bf77d5199d5f27cd306b2798d90a4c8fc Merge: 9fe4806 21e0043 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Aug 22 09:29:25 2013 -0500 Merge remote-tracking branch 'luiz/queue/qmp' into staging # By Laszlo Ersek (8) and others # Via Luiz Capitulino * luiz/queue/qmp: scripts/qapi.py: Avoid syntax not supported by Python 2.4 monitor: print the invalid char in error message OptsVisitor: introduce unit tests, with test cases for range flattening add "test-int128" and "test-bitops" to .gitignore OptsVisitor: don't try to flatten overlong integer ranges OptsVisitor: opts_type_uint64(): recognize intervals when LM_IN_PROGRESS OptsVisitor: rebase opts_type_uint64() to parse_uint_full() OptsVisitor: opts_type_int(): recognize intervals when LM_IN_PROGRESS OptsVisitor: introduce list modes for interval flattening OptsVisitor: introduce basic list modes Convert stderr message calling error_get_pretty() to error_report() Message-id: 1377015041-6567-1-git-send-email-lcapitulino@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 9fe480695ad8c9126ac8f318a0241e10aad7a25b Merge: ecfe10c 7717f24 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Aug 22 09:29:13 2013 -0500 Merge remote-tracking branch 'jliu/or32' into staging # By Jia Liu # Via Jia Liu * jliu/or32: hw/openrisc: Avoid undefined shift in openrisc_pic_cpu_handler() hw/openrisc: Fix masking in openrisc_pic_cpu_handler() hw/openrisc: Avoid using uninitialised variable 'entry' Message-id: 1377050811-11116-1-git-send-email-proljc@xxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 043a7e1f8f66f3089ef0158aea00203e4591ba8d Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:42 2013 +0100 aio / timers: Consistent treatment of disabled clocks for deadlines Make treatment of disabled clocks consistent in deadline calculation Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 02a03a9f12ec2fe68c9fed84fa8607a5326e2b65 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:41 2013 +0100 aio / timers: add qemu-timer.c utility functions Add utility functions to qemu-timer.c for nanosecond timing. Add qemu_clock_deadline_ns to calculate deadlines to nanosecond accuracy. Add utility function qemu_soonest_timeout to calculate soonest deadline. Add qemu_timeout_ns_to_ms to convert a timeout in nanoseconds back to milliseconds for when ppoll is not used. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 58ac56b9ad53b006396523639bb7d7043edc56bf Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:40 2013 +0100 aio / timers: Rename qemu_new_clock and expose clock types Rename qemu_new_clock to qemu_clock_new. Expose clock types. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e93379b039030c68d85693a4bee2b76f814108d2 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:39 2013 +0100 aio / timers: Rename qemu_timer_* functions Rename four functions in preparation for new API. Rename qemu_timer_expired to timer_expired Rename qemu_timer_expire_time_ns to timer_expire_time_ns Rename qemu_timer_pending to timer_pending Rename qemu_timer_expired_ns to timer_expired_ns Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 04d542c8b826a1196ca4f03f5a35d83035976bd1 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Aug 19 18:54:28 2013 +0800 vmdk: support vmfs files VMware ESX hosts also use different create and extent types for flat files, respectively "vmfs" and "VMFS". This is not documented, but it can be found at http://kb.vmware.com/kb/10002511 (Recreating a missing virtual machine disk (VMDK) descriptor file). Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit daac8fdc68c5f0118ce24fcac5873ddaa0d0c9f9 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Aug 19 18:54:27 2013 +0800 vmdk: support vmfsSparse files VMware ESX hosts use a variant of the VMDK3 format, identified by the vmfsSparse create type ad the VMFSSPARSE extent type. It has 16 KB grain tables (L2) and a variable-size grain directory (L1). In addition, the grain size is always 512, but that is not a problem because it is included in the header. The format of the extents is documented in the VMDK spec. The format of the descriptor file is not documented precisely, but it can be found at http://kb.vmware.com/kb/10026353 (Recreating a missing virtual machine disk (VMDK) descriptor file for delta disks). With these patches, vmfsSparse files only work if opened through the descriptor file. Data files without descriptor files, as far as I could understand, are not supported by ESX. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> -- v2: Rebase to patch 01. Change le64_to_cpu to le32_to_cpu. Rename vmdk_open_vmdk3 to vmdk_open_vmfs_sparse, which represents the current usage of this format. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f6b61e54bdd5b9ef46837c15547e1819b3bb4f37 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Aug 19 18:54:26 2013 +0800 vmdk: fix L1 and L2 table size in vmdk3 open VMDK3 header has the field l1dir_size, but vmdk_open_vmdk3 hardcoded the value. This patch honors the header field. And the L2 table size is 4096 according to VMDK spec[1], instead of 1 << 9 (512). [1]: http://www.vmware.com/support/developer/vddk/vmdk_50_technote.pdf?src=vmdk Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b0651b8c246d0d9e6ad0831b3e34fd756016ad7e Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Aug 19 18:54:25 2013 +0800 vmdk: Move l1_size check into vmdk_add_extent() This header check is common to VMDK3 and VMDK4, so move it into vmdk_add_extent(). Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7780d47211bde838c7f7e9330608e5397219066e Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Aug 22 15:36:59 2013 +0800 block: better error message for read only format name When user tries to use read-only whitelist format in the command line option, failure message was "'foo' invalid format". It might be invalid only for writable, but valid for read-only, so it is confusing. Give the user easier to understand information. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 893a8f6220368a9ebff9a74bd48359928545cf6a Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Tue Aug 6 09:53:40 2013 +0800 block: Produce zeros when protocols reading beyond end of file While Asias is debugging an issue creating qcow2 images on top of non-file protocols. It boils down to this example using NBD: $ qemu-io -c 'open -g nbd+unix:///?socket=/tmp/nbd.sock' -c 'read -v 0 512' Notice the open -g option to set bs->growable. This means you can read/write beyond end of file. Reading beyond end of file is supposed to produce zeroes. We rely on this behavior in qcow2_create2() during qcow2 image creation. We create a new file and then write the qcow2 header structure using bdrv_pwrite(). Since QCowHeader is not a multiple of sector size, block.c first uses bdrv_read() on the empty file to fetch the first sector (should be all zeroes). Here is the output from the qemu-io NBD example above: $ qemu-io -c 'open -g nbd+unix:///?socket=/tmp/nbd.sock' -c 'read -v 0 512' 00000000: ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ................ 00000010: ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ................ 00000020: ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ................ ... We are not zeroing the buffer! As a result qcow2 image creation on top of protocols is not guaranteed to work even when file creation is supported by the protocol. [Adapted this patch to use bs->zero_beyond_eof. -- Stefan] Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Signed-off-by: Asias He <asias@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0d51b4debee6fb322751a57097a1d675c7a7c38d Author: Asias He <asias@xxxxxxxxxx> Date: Thu Aug 22 15:24:14 2013 +0800 block: Introduce bs->zero_beyond_eof In 4146b46c42e0989cb5842e04d88ab6ccb1713a48 (block: Produce zeros when protocols reading beyond end of file), we break qemu-iotests ./check -qcow2 022. This happens because qcow2 temporarily sets ->growable = 1 for vmstate accesses (which are stored beyond the end of regular image data). We introduce the bs->zero_beyond_eof to allow qcow2_load_vmstate() to disable ->zero_beyond_eof temporarily in addition to enable ->growable. [Since the broken patch "block: Produce zeros when protocols reading beyond end of file" has not been merged yet, I have applied this fix *first* and will then apply the next patch to keep the tree bisectable. -- Stefan] Suggested-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Asias He <asias@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1e0995561959645e218bb5e4afb6ad3d47b33396 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Aug 21 15:14:45 2013 -0300 pc_piix: Kill pc_init1() memory region args All callers always use the same values (get_system_memory(), get_system_io()), so the parameters are pointless. If one day we decide to eliminate get_system_memory() and get_system_io(), we will be able to do that more easily by adding the values to struct QEMUMachineInitArgs. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 396f79f45ea75bd1c421522f29b4f91d490df7cc Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Aug 21 15:14:44 2013 -0300 pc: pc_compat_1_4() now can call pc_compat_1_5() It just needs to set has_pvpanic=false after calling it. This way, it won't be a special case anymore. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 89b439f3136644b07c2e25bb4ceeb9466ae23fe5 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Aug 21 15:14:43 2013 -0300 pc: Create pc_compat_*() functions Making the older compat functions call the newer compat functions at the beginning allows the older functions undo what's done by newer compat functions. e.g.: pc_compat_1_4() will be able to call pc_compat_1_5() and then set has_pvpanic=false. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 43a52ce65736adf9def7c2a9e5ba409814eb5dae Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Aug 21 15:14:42 2013 -0300 pc: Kill pc_init_pci_1_0() The pc_init_pci_1_2()/pc_init_pci_1_0() split was made on commit 6fd028f64f662c801fd5a54d0e3a1d2baeee93ea, in preparation for commit 9953f8822cc316eec9962f0a2858c3439a80adec. The latter was reverted, so there's no reason to keep two separate functions that do exactly the same, anymore. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Cc: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 3b6fb9cab2e64804cdab5a61d1298ffd8b8dff85 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Aug 21 15:14:41 2013 -0300 pc: Don't explode QEMUMachineInitArgs into local variables needlessly Don't explode when the variable is used just a few times, and never changed. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 5650f5f48bfe2a684138505aae008dc4440202f1 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Aug 21 15:14:40 2013 -0300 pc: Don't prematurely explode QEMUMachineInitArgs Don't explode QEMUMachineInitArgs before passing it to pc_init1(). Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 92238367450d26eced103736ae555997ea3162c2 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 13:13:49 2013 +0200 ppc: Don't duplicate QEMUMachineInitArgs in PPCE500Params Pass on the generic arguments unadulterated, and the machine-specific ones as separate argument. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit ee87e32f830b4e22c02038de963bb9f72b55896f Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 13:13:48 2013 +0200 ppc: Don't explode QEMUMachineInitArgs into local variables needlessly Don't explode when the variable is used just once, and never changed. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 6b63ef4d0f225810b74281e6689a4d5695860c08 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 13:13:47 2013 +0200 sun4: Don't prematurely explode QEMUMachineInitArgs Don't explode QEMUMachineInitArgs before passing it to sun4m_hw_init(), sun4uv_init(). Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8ad1898cf1f5314731123afce057e5cf74fd2f01 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Aug 19 10:38:01 2013 +0200 qcow2: Change default for new images to compat=1.1 By the time that qemu 1.7 will be released, enough time will have passed since qemu 1.1, which is the first version to understand version 3 images, that changing the default shouldn't hurt many people any more and the benefits of using the new format outweigh the pain. qemu-iotests already runs with compat=1.1 by default. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4b38e989b43e84c485f676f2039f21b15da439fe Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Tue Aug 20 12:21:57 2013 -0600 q35: Add PCIe switch to example q35 configuration Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 7717f248eebdcfe6de400404d0cf65dcb3633308 Author: Jia Liu <proljc@xxxxxxxxx> Date: Wed Aug 21 09:31:36 2013 +0800 hw/openrisc: Avoid undefined shift in openrisc_pic_cpu_handler() In C99 signed shift (1 << 31) is undefined behavior, since the result exceeds INT_MAX. Use 1U instead and move the shift after the check. Signed-off-by: Xi Wang <xi.wang@xxxxxxxxx> Acked-by: Jia Liu <proljc@xxxxxxxxx> commit ed396e2b2d256c1628de7c11841b509455a76c03 Author: Jia Liu <proljc@xxxxxxxxx> Date: Wed Aug 21 09:23:10 2013 +0800 hw/openrisc: Fix masking in openrisc_pic_cpu_handler() Consider the masking of PICSR and PICMR: ((cpu->env.picsr && (1 << i)) && (cpu->env.picmr && (1 << i))) To correctly mask bits, we should use the bitwise AND "&" rather than the logical AND "&&". Also, the loop is not necessary for masking. Simply use (cpu->env.picsr & cpu->env.picmr). Signed-off-by: Xi Wang <xi.wang@xxxxxxxxx> Acked-by: Jia Liu <proljc@xxxxxxxxx> commit b6d9766ddf5453e79e0c66c9348728ba44ba115f Author: Jia Liu <proljc@xxxxxxxxx> Date: Wed Aug 21 08:54:29 2013 +0800 hw/openrisc: Avoid using uninitialised variable 'entry' clang warns that cpu_openrisc_load_kernel() can use 'entry' uninitialized: hw/openrisc/openrisc_sim.c:69:9: error: variable 'entry' is used uninitialized whenever '&&' condition is false [-Werror,-Wsometimes-uninitialized] if (kernel_filename && !qtest_enabled()) { ^~~~~~~~~~~~~~~ hw/openrisc/openrisc_sim.c:91:19: note: uninitialized use occurs here cpu->env.pc = entry; ^~~~~ Fix this by not attempting to change the CPU's starting PC unless we actually loaded a kernel. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> commit 04920fc0faa4760f9c4fc0e73b992b768099be70 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Aug 19 17:26:55 2013 +0300 loader: store FW CFG ROM files in RAM ROM files that are put in FW CFG are copied to guest ram, by BIOS, but they are not backed by RAM so they don't get migrated. Each time we change two bytes in such a ROM this breaks cross-version migration: since we can migrate after BIOS has read the first byte but before it has read the second one, getting an inconsistent state. Future-proof this by creating, for each such ROM, an MR serving as the backing store. This MR is never mapped into guest memory, but it's registered as RAM so it's migrated with the guest. Naturally, this only helps for -M 1.7 and up, older machine types will still have the cross-version migration bug. Luckily the race window for the problem to trigger is very small, which is also likely why we didn't notice the cross-version migration bug in testing yet. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit 0851c9f75ccb0baf28f5bf901b9ffe3c91fcf969 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Aug 19 17:26:52 2013 +0300 arch_init: align MR size to target page size Migration code assumes that each MR is a multiple of TARGET_PAGE_SIZE: MR size is divided by TARGET_PAGE_SIZE, so if it isn't migration never completes. But this isn't really required for regions set up with memory_region_init_ram, since that calls qemu_ram_alloc which aligns size up using TARGET_PAGE_ALIGN. Align MR size up to full target page sizes, this way migration completes even if we create a RAM MR which is not a full target page size. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit c0b4cc1f9f4df9d7459dc778e64f00a4e781fd88 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Aug 18 16:50:02 2013 +0300 pc: cleanup 1.4 compat support Make 1.4 compat code call the 1.6 one, reducing code duplication. Add comment explaining why we can't make 1.4 call 1.5 as usual. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> commit 7477cd3897082d2650d520a4e9aa7f8affa3dd5d Author: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Date: Mon Aug 19 14:13:42 2013 -0300 kvm: i386: fix LAPIC TSC deadline timer save/restore The configuration of the timer represented by MSR_IA32_TSCDEADLINE depends on: - APIC LVT Timer register. - TSC value. Change the order to respect the dependency. Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 7dc52526850849e8e0fe56ced809d0798481a2f6 Author: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Date: Mon Aug 12 16:56:31 2013 -0300 kvm-all.c: max_cpus should not exceed KVM vcpu limit maxcpus, which specifies the maximum number of hotpluggable CPUs, should not exceed KVM's vcpu limit. Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> [Reword message. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 354678c5ce162649906e4e1be2859f3df372668f Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Aug 13 14:43:57 2013 +0200 kvm: Simplify kvm_handle_io Now that cpu_in/out is just a wrapper around address_space_rw, we can also call the latter directly. As host endianness == guest endianness, there is no need for the memory access helpers st*_p/ld*_p as well. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit df67696e97d3edd0cb1683bf2eb3b3236bd9a5ed Author: Liu Jinsong <jinsong.liu@xxxxxxxxx> Date: Mon Aug 19 09:33:30 2013 +0800 kvm: x86: fix setting IA32_FEATURE_CONTROL with nested VMX disabled This patch is to fix the bug https://bugs.launchpad.net/qemu-kvm/+bug/1207623 IA32_FEATURE_CONTROL is pointless if not expose VMX or SMX bits to cpuid.1.ecx of vcpu. Current qemu-kvm will error return when kvm_put_msrs or kvm_get_msrs. Signed-off-by: Liu Jinsong <jinsong.liu@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit ecfe10c9a6f9bc77d0e4b7eb5d0f5d61e8fbaed8 Merge: 9176e8f 2300581 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Aug 20 11:23:52 2013 -0500 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20130820' into staging target-arm queue # gpg: Signature made Tue 20 Aug 2013 08:56:28 AM CDT using RSA key ID 14360CDE # gpg: Can't check signature: public key not found # By Peter Maydell (20) and Peter Chubb (1) # Via Peter Maydell * pmaydell/tags/pull-target-arm-20130820: (21 commits) hw/timer/imx_epit: Simplify and fix imx_epit implementation default-configs: Fix A9MP and A15MP config names hw/cpu/a15mpcore: Wire generic timer outputs to GIC inputs target-arm: Implement the generic timer target-arm: Support coprocessor registers which do I/O target-arm: Allow raw_read() and raw_write() to handle 64 bit regs hw/arm/pic_cpu: Remove the now-unneeded arm_pic_init_cpu() hw/arm/xilinx_zynq: Don't use arm_pic_init_cpu() hw/arm/vexpress: Don't use arm_pic_init_cpu() hw/arm/versatilepb: Don't use arm_pic_init_cpu() hw/arm/strongarm: Don't use arm_pic_init_cpu() hw/arm/realview: Don't use arm_pic_init_cpu() hw/arm/omap*: Don't use arm_pic_init_cpu() hw/arm/musicpal: Don't use arm_pic_init_cpu() hw/arm/kzm: Don't use arm_pic_init_cpu() hw/arm/integratorcp: Don't use arm_pic_init_cpu() hw/arm/highbank: Don't use arm_pic_init_cpu() hw/arm/exynos4210: Don't use arm_pic_init_cpu() hw/arm/armv7m: Don't use arm_pic_init_cpu() target-arm: Make IRQ and FIQ gpio lines on the CPU object ... Message-id: 1377007680-4934-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 21e0043bada1a24ae2ba6cd0051e104c0cbf9634 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 15:50:15 2013 +0100 scripts/qapi.py: Avoid syntax not supported by Python 2.4 The Python "except Foo as x" syntax was only introduced in Python 2.6, but we aim to support Python 2.4 and later. Use the old-style "except Foo, x" syntax instead, thus fixing configure/compile on systems with older Python. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 277acfe8b38de35be8cb6e274678b5a7919c2d44 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Aug 20 10:58:21 2013 +0800 monitor: print the invalid char in error message It's more friendly to print which char is invalid to user, especially when user tries to input a float value and expect the monitor to round it to int. Since we don't round float number when we look for a integer, telling which char is invalid is less confusing. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 3953e3a5d34fa7caffc3e32eae4270b2d810d966 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:40 2013 +0200 OptsVisitor: introduce unit tests, with test cases for range flattening According to commit 4f193e34 ("tests: Use qapi-schema-test.json as schema parser test") the "tests/qapi-schema/qapi-schema-test.out" file must be updated as well. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 99351c8472f76552c059a5dd382860229d647c4f Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:39 2013 +0200 add "test-int128" and "test-bitops" to .gitignore "test-int128" was probably missed in commit 6046c620 ("int128: optimize and add test cases"). "test-bitops" was probably missed in commit 3464700f ("tests: Add test-bitops.c with some sextract tests"). Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 15a849be100b54776bcf63193c3fea598666030f Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:38 2013 +0200 OptsVisitor: don't try to flatten overlong integer ranges Prevent mistyped command line options from incurring high memory and CPU usage at startup. 64K elements in a range should be enough for everyone (TM). The OPTS_VISITOR_RANGE_MAX macro is public so that unit tests can construct corner cases with it. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 581a8a800070500527f6c75e5d6b75134c2b5a9d Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:37 2013 +0200 OptsVisitor: opts_type_uint64(): recognize intervals when LM_IN_PROGRESS When a well-formed range value, bounded by unsigned integers, is encountered while processing a repeated option, enter LM_UNSIGNED_INTERVAL and return the low bound. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 62d090e23fc17e4e60725ead0dff8902f8e66b52 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:36 2013 +0200 OptsVisitor: rebase opts_type_uint64() to parse_uint_full() Simplify the code in preparation for the next patch. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 1e1c555a49175e2298eaa156e008a92d207bf812 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:35 2013 +0200 OptsVisitor: opts_type_int(): recognize intervals when LM_IN_PROGRESS When a well-formed range value, bounded by signed integers, is encountered while processing a repeated option, enter LM_SIGNED_INTERVAL and return the low bound. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d8754f40acb2d30e4735cdcd21a16e7ac29264a3 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:34 2013 +0200 OptsVisitor: introduce list modes for interval flattening The new modes are equal-rank, exclusive alternatives of LM_IN_PROGRESS. Teach opts_next_list(), opts_type_int() and opts_type_uint64() to handle them. Also enumerate explicitly what functions are valid to call in what modes: - opts_next_list() is valid to call while flattening a range, - opts_end_list(): ditto, - lookup_scalar() is invalid to call during flattening; generated qapi traversal code must continue asking for the same kind of signed/unsigned list element until the interval is fully flattened, - processed(): ditto. List mode restrictions are always formulated in positive / inclusive sense. The restrictions for lookup_scalar() and processed() are automatically satisfied by current qapi traversals if the schema to build is compatible with OptsVisitor. The new list modes are not entered yet. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d95704341280fc521dc2b16bbbc5858f6647e2c3 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:33 2013 +0200 OptsVisitor: introduce basic list modes We're going to need more state while processing a list of repeated options. This change eliminates "repeated_opts_first" and adds a new state variable: list_mode repeated_opts repeated_opts_first -------------- ------------- ------------------- LM_NONE NULL false LM_STARTED non-NULL true LM_IN_PROGRESS non-NULL false Additionally, it is documented that lookup_scalar() and processed(), both called by opts_type_XXX(), are invalid in LM_STARTED -- generated qapi code calls opts_next_list() to allocate the very first link before trying to parse a scalar into it. List mode restrictions are expressed in positive / inclusive form. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 4a44d85e28bd282f53ccf0fa933dd71b8744a229 Author: Seiji Aguchi <seiji.aguchi@xxxxxxx> Date: Mon Aug 5 15:40:44 2013 -0400 Convert stderr message calling error_get_pretty() to error_report() Convert stderr messages calling error_get_pretty() to error_report(). Timestamp is prepended by -msg timstamp option with it. Per Markus's comment below, A conversion from fprintf() to error_report() is always an improvement, regardless of error_get_pretty(). http://marc.info/?l=qemu-devel&m=137513283408601&w=2 But, it is not reasonable to convert them at one time because fprintf() is used everwhere in qemu. So, it should be done step by step with avoiding regression. Signed-off-by: Seiji Aguchi <seiji.aguchi@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 9176e8fb8f78206bd4039f001aca0d931a47d663 Merge: 72420ce f2e5dca Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Aug 20 09:52:18 2013 -0500 Merge remote-tracking branch 'stefanha/block-next' into staging # By Stefan Hajnoczi # Via Stefan Hajnoczi * stefanha/block-next: aio: drop io_flush argument tests: drop event_active_cb() thread-pool: drop thread_pool_active() dataplane/virtio-blk: drop flush_true() and flush_io() block/ssh: drop return_true() block/sheepdog: drop have_co_req() and aio_flush_request() block/rbd: drop qemu_rbd_aio_flush_cb() block/nbd: drop nbd_have_request() block/linux-aio: drop qemu_laio_completion_cb() block/iscsi: drop iscsi_process_flush() block/gluster: drop qemu_gluster_aio_flush_cb() block/curl: drop curl_aio_flush() aio: stop using .io_flush() tests: adjust test-thread-pool to new aio_poll() semantics tests: adjust test-aio to new aio_poll() semantics dataplane/virtio-blk: check exit conditions before aio_poll() block: stop relying on io_flush() in bdrv_drain_all() block: ensure bdrv_drain_all() works during bdrv_delete() Message-id: 1376921877-9576-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 72420ce9f0bafef7d55563a8bd14237a5fe88a87 Merge: 237e4f9 b83c4db Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Aug 20 09:52:07 2013 -0500 Merge remote-tracking branch 'rth/axp-next' into staging # By Richard Henderson # Via Richard Henderson * rth/axp-next: target-alpha: Implement the typhoon iommu target-alpha: Consider the superpage when threading and ending TBs target-alpha: Use goto_tb in call_pal target-alpha: Implement call_pal without an exception Message-id: 1376720412-2165-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 237e4f92a81696e5359766a7f19a77a9ff1d02e5 Merge: bc02fb3 321bc0b Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Aug 20 09:51:53 2013 -0500 Merge remote-tracking branch 'afaerber/tags/qom-cpu-for-anthony' into staging QOM CPUState refactorings / X86CPU * gdbstub coprocessor register count bugfix * QOM instance_post_init infrastructure to override dynamic properties * X86CPU HyperV preparations for CPU subclasses # gpg: Signature made Fri 16 Aug 2013 11:49:02 AM CDT using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Eduardo Habkost (3) and others # Via Andreas Färber * afaerber/tags/qom-cpu-for-anthony: cpus: Use cpu_is_stopped() efficiently target-i386: Move hyperv_* static globals to X86CPU qdev: Set globals in instance_post_init function qom: Introduce instance_post_init hook tests: Unit tests for qdev global properties handling gdbstub: Fix gdb_register_coprocessor() register counting commit 230058106ab26de9b876158dbe27d60719f01f51 Author: Peter Chubb <peter.chubb@xxxxxxxxxxxx> Date: Tue Aug 20 14:54:32 2013 +0100 hw/timer/imx_epit: Simplify and fix imx_epit implementation When imx_epit.c was last refactored, a common usecase (comparison register zero) broke. This patch fixes that, and simplifies the code yet more. It also fixes a major thinko in the reset path --- the wrong bits in the control register were being cleared. Signed-off-by: Peter Chubb <peter.chubb@xxxxxxxxxxxx> Reviewed-by: Jean-Christophe DUBOIS <jcd@xxxxxxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 66aae5e1ecc38e8658c5cc69a0b3ceeb4967619c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:32 2013 +0100 default-configs: Fix A9MP and A15MP config names When individual CONFIG_ switches for the A9MPcore and A15MPcore devices were created, they were inadvertently given incorrect names (CONFIG_ARM9MPCORE and CONFIG_ARM15MPCORE). These CPUs are "Cortex-A9MP" and "Cortex-A15MP", and in particular the ARM9 is a different (rather older) CPU than the Cortex-A9. Rename the CONFIG_ switches to bring them into line with the source file names and CPU names. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1376056215-26391-1-git-send-email-peter.maydell@xxxxxxxxxx commit 6033e840c7b1db1055d02199fa3a28a4fd7b2386 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:32 2013 +0100 hw/cpu/a15mpcore: Wire generic timer outputs to GIC inputs Now our A15 CPU implements the generic timers, we can wire them up to the appropriate inputs on the GIC. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Tested-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Message-id: 1376065080-26661-5-git-send-email-peter.maydell@xxxxxxxxxx commit 55d284af8e31bbdf4d545cb2d6481cd0367680fb Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:31 2013 +0100 target-arm: Implement the generic timer The ARMv7 architecture specifies a 'generic timer' which is implemented via cp15 registers. Newer kernels will prefer to use this rather than a devboard-level timer. Implement the generic timer for TCG; for KVM we will already use the hardware's virtualized timer for this. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Tested-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Message-id: 1376065080-26661-4-git-send-email-peter.maydell@xxxxxxxxxx commit 2452731c883cb0acd4e47b23039c46cd880cf2c6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:31 2013 +0100 target-arm: Support coprocessor registers which do I/O Add an ARM_CP_IO flag which an ARMCPRegInfo definition can use to indicate that the register's implementation does I/O and thus its accesses need to be surrounded by gen_io_start()/gen_io_end() in order for icount to work. Most notably, cp registers which implement clocks or timers need this. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Tested-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Message-id: 1376065080-26661-3-git-send-email-peter.maydell@xxxxxxxxxx commit 22d9e1a986a671ebfacb21555b7533336f3e8259 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:31 2013 +0100 target-arm: Allow raw_read() and raw_write() to handle 64 bit regs Extend the raw_read() and raw_write() helper accessors so that they can be used for 64 bit registers as well as 32 bit registers. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Tested-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Message-id: 1376065080-26661-2-git-send-email-peter.maydell@xxxxxxxxxx commit b643e4b90bb0b70adde97a09349d8ca7067309d9 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:31 2013 +0100 hw/arm/pic_cpu: Remove the now-unneeded arm_pic_init_cpu() Now all the boards have been converted arm_pic_init_cpu() is unused and can just be deleted. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-15-git-send-email-peter.maydell@xxxxxxxxxx commit e4a6540dedc6ec109a9ece3f8d83a143b7bde4e6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:30 2013 +0100 hw/arm/xilinx_zynq: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-14-git-send-email-peter.maydell@xxxxxxxxxx commit fe9120a5d1117523282b44e8aa0027ab2b8a4408 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:30 2013 +0100 hw/arm/vexpress: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-13-git-send-email-peter.maydell@xxxxxxxxxx commit bace999f8a03c226eecad3c170def644f0551c50 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:30 2013 +0100 hw/arm/versatilepb: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-12-git-send-email-peter.maydell@xxxxxxxxxx commit 4f071cf9b53a236469500f08033335cc726db9b0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:30 2013 +0100 hw/arm/strongarm: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-11-git-send-email-peter.maydell@xxxxxxxxxx commit 033ee5a5ac5dd01bcea76a6427d95f5390af43ca Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:30 2013 +0100 hw/arm/realview: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-10-git-send-email-peter.maydell@xxxxxxxxxx commit 437f0f10a42dc2a0236a79e0bba39a32af4d73f8 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:29 2013 +0100 hw/arm/omap*: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-9-git-send-email-peter.maydell@xxxxxxxxxx commit fcef61ec6bfaf96eeee0fb3024dd7ec8437ffa65 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:29 2013 +0100 hw/arm/musicpal: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-8-git-send-email-peter.maydell@xxxxxxxxxx commit 2f69ba1736e9460aa04c46790c1d34edfbee563a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:29 2013 +0100 hw/arm/kzm: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-7-git-send-email-peter.maydell@xxxxxxxxxx commit 99d228d6e9b08488d62029c438f8381b8c72d109 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:29 2013 +0100 hw/arm/integratorcp: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-6-git-send-email-peter.maydell@xxxxxxxxxx commit 9188dbf71accf9d97f2e434380ea210ba75705ca Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:29 2013 +0100 hw/arm/highbank: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-5-git-send-email-peter.maydell@xxxxxxxxxx commit ad666d91f43574fb200c738bc793023ae23d24a5 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:28 2013 +0100 hw/arm/exynos4210: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-4-git-send-email-peter.maydell@xxxxxxxxxx commit de3a658f5b1d4ea290cb4369c55e83fdead81933 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:28 2013 +0100 hw/arm/armv7m: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-3-git-send-email-peter.maydell@xxxxxxxxxx commit 7c1840b686e34ed138414ff0fe395a63f031387e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:28 2013 +0100 target-arm: Make IRQ and FIQ gpio lines on the CPU object Now that ARMCPU is a subclass of DeviceState, we can make the CPU's inbound IRQ and FIQ lines be simply gpio lines, which means we can remove the odd arm_pic shim. We retain the arm_pic_init_cpu() function as a backwards compatibility shim layer so we can convert the board models to get the IRQ and FIQ lines directly from the ARMCPU object one at a time. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-2-git-send-email-peter.maydell@xxxxxxxxxx commit 3f1beaca88bffa4828cc86beb89ff70474516d91 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:28 2013 +0100 target-arm: Implement 'int' loglevel The 'int' loglevel for recording interrupts and exceptions requires support in the target-specific code. Implement it for ARM. This improves debug logging in some situations that were otherwise pretty opaque, such as when we fault trying to execute at an exception vector address, which would otherwise cause an infinite loop of taking exceptions without any indication in the debug log of what was going on. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1375700771-21665-1-git-send-email-peter.maydell@xxxxxxxxxx commit f2e5dca46b5ba4588c0756c5f272123585cbbf23 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:26:25 2013 +0200 aio: drop io_flush argument The .io_flush() handler no longer exists and has no users. Drop the io_flush argument to aio_set_fd_handler() and related functions. The AioFlushEventNotifierHandler and AioFlushHandler typedefs are no longer used and are dropped too. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1b9ecdb16475485dffbcac7ff7f36dafa9e3cfd2 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Apr 16 16:46:15 2013 +0200 tests: drop event_active_cb() Drop the io_flush argument to aio_set_event_notifier(). Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bb52b14be163cc91409017639b8df32c99c1563a Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:22:08 2013 +0200 thread-pool: drop thread_pool_active() .io_flush() is no longer called so drop thread_pool_active(). The block layer is the only thread-pool.c user and it already tracks in-flight requests, therefore we do not need thread_pool_active(). Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ce689368bb453b0b21e73c77182a9d9bef8c0b84 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:20:03 2013 +0200 dataplane/virtio-blk: drop flush_true() and flush_io() .io_flush() is no longer called so drop flush_true() and flush_io(). Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f0d35765998bb527013b7f06521fa4b3de352f58 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Apr 16 13:12:28 2013 +0200 block/ssh: drop return_true() .io_flush() is no longer called so drop return_true(). Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d6d94c678503fd1eceb51b9652b4e0dfd9543475 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:18:18 2013 +0200 block/sheepdog: drop have_co_req() and aio_flush_request() .io_flush() is no longer called so drop have_co_req() and aio_flush_request(). Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5d289cc7243be53d409ee3b79dd4fd363806f8b6 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:16:29 2013 +0200 block/rbd: drop qemu_rbd_aio_flush_cb() .io_flush() is no longer called so drop qemu_rbd_aio_flush_cb(). qemu_aio_count is unused now so drop it too. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bed2e759eb642931e0ebb95ea99580c27f57560e Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:15:03 2013 +0200 block/nbd: drop nbd_have_request() .io_flush() is no longer called so drop nbd_have_request(). We cannot drop in_flight since it is still used by other block/nbd.c code. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 94473d0c0624822f6325918eb5bfe2d8a001206a Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:12:33 2013 +0200 block/linux-aio: drop qemu_laio_completion_cb() .io_flush() is no longer called so drop qemu_laio_completion_cb(). It turns out that count is now unused so drop that too. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 70ecdc6e4e7f91e7d88540f19fb0f56f9e6f54a0 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:09:59 2013 +0200 block/iscsi: drop iscsi_process_flush() .io_flush() is no longer called so drop iscsi_process_flush(). Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 372835fbc3f288671cfc926c9e438a4659c9125f Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:07:43 2013 +0200 block/gluster: drop qemu_gluster_aio_flush_cb() Since .io_flush() is no longer called we do not need qemu_gluster_aio_flush_cb() anymore. It turns out that qemu_aio_count is unused now and can be dropped. Thanks to Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> for catching a build failure with CONFIG_GLUSTERFS_DISCARD, which has been fixed. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bc02fb304c6cc0f1dd0809545d226df2d6f5c093 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Aug 19 08:49:37 2013 -0500 Change email address My IBM email address will be unaccessible after August 23rd, 2013. Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 0d1460226fb05c92fa3ad869ca39090ff13cf6bc Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:04:23 2013 +0200 block/curl: drop curl_aio_flush() .io_flush() is no longer called so drop curl_aio_flush(). The acb[] array that the function checks is still used in other parts of block/curl.c. Therefore we cannot remove acb[], it is needed. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 164a101f28a53cd3db60ed874e7c3630e7988ed8 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 16:56:50 2013 +0200 aio: stop using .io_flush() Now that aio_poll() users check their termination condition themselves, it is no longer necessary to call .io_flush() handlers. The behavior of aio_poll() changes as follows: 1. .io_flush() is no longer invoked and file descriptors are *always* monitored. Previously returning 0 from .io_flush() would skip this file descriptor. Due to this change it is essential to check that requests are pending before calling qemu_aio_wait(). Failure to do so means we block, for example, waiting for an idle iSCSI socket to become readable when there are no requests. Currently all qemu_aio_wait()/aio_poll() callers check before calling. 2. aio_poll() now returns true if progress was made (BH or fd handlers executed) and false otherwise. Previously it would return true whenever 'busy', which means that .io_flush() returned true. The 'busy' concept no longer exists so just progress is returned. Due to this change we need to update tests/test-aio.c which asserts aio_poll() return values. Note that QEMU doesn't actually rely on these return values so only tests/test-aio.c cares. Note that ctx->notifier, the EventNotifier fd used for aio_notify(), is now handled as a special case. This is a little ugly but maintains aio_poll() semantics, i.e. aio_notify() does not count as 'progress' and aio_poll() avoids blocking when the user has not set any fd handlers yet. Patches after this remove .io_flush() handler code until we can finally drop the io_flush arguments to aio_set_fd_handler() and friends. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 35ecde26018207fe723bec6efbd340db6e9c2d53 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Apr 16 17:49:42 2013 +0200 tests: adjust test-thread-pool to new aio_poll() semantics aio_poll(ctx, true) will soon block when fd handlers have been set. Previously aio_poll() would return early if all .io_flush() returned false. This means we need to check the equivalent of the .io_flush() condition *before* calling aio_poll(ctx, true) to avoid deadlock. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 24d1a6d9d5f5b3da868724dd3c6f56893e0693da Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Apr 17 11:01:02 2013 +0200 tests: adjust test-aio to new aio_poll() semantics aio_poll(ctx, true) will soon block if any fd handlers have been set. Previously it would only block when .io_flush() returned true. This means that callers must check their wait condition *before* aio_poll() to avoid deadlock. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bf0da4df83e8af7ec02e3809f3dd30cc0a42e4bc Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:24:08 2013 +0200 dataplane/virtio-blk: check exit conditions before aio_poll() Check exit conditions before entering blocking aio_poll(). This is mainly for consistency since it's unlikely that we are stopping in the first event loop iteration. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 88266f5aa70fa71fd5cc20aa4dbeb7a7bd8d2e92 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 15:41:13 2013 +0200 block: stop relying on io_flush() in bdrv_drain_all() If a block driver has no file descriptors to monitor but there are still active requests, it can return 1 from .io_flush(). This is used to spin during synchronous I/O. Stop relying on .io_flush() and instead check QLIST_EMPTY(&bs->tracked_requests) to decide whether there are active requests. This is the first step in removing .io_flush() so that event loops no longer need to have the concept of synchronous I/O. Eventually we may be able to kill synchronous I/O completely by running everything in a coroutine, but that is future work. Note this patch moves bs->throttled_reqs initialization to bdrv_new() so that bdrv_requests_pending(bs) can safely access it. In practice bs is g_malloc0() so the memory is already zeroed but it's safer to initialize the queue properly. We also need to fix up block/stream.c:close_unused_images() to prevent traversing a dangling pointer while it rearranges the backing file chain. This is necessary since the new bdrv_drain_all() traverses the backing file chain. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e1b5c52e04d04bb93546c6e37e8884889d047cb1 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Jun 27 15:32:26 2013 +0200 block: ensure bdrv_drain_all() works during bdrv_delete() In bdrv_delete() make sure to call bdrv_make_anon() *after* bdrv_close() so that the device is still seen by bdrv_drain_all() when iterating bdrv_states. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b83c4db89561e78ca5a1808329cbf937c6d75cc3 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sun Aug 4 15:27:13 2013 -1000 target-alpha: Implement the typhoon iommu Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b114b68adf12a5333bb95b252aed6309cf0c0e5f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Jul 26 14:05:08 2013 -1000 target-alpha: Consider the superpage when threading and ending TBs This allows significantly more threading, and occasionally larger TBs, when processing code for the kernel and PALcode. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a9ead832617195a9b0727557c94dda776f8e8074 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Jul 26 12:00:32 2013 -1000 target-alpha: Use goto_tb in call_pal With appropriate flushing when the PALBR changes, the target of a CALL_PAL is so predictable we can chain to it. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ba96394e20ad033a10eb790fdf2377e2a8892feb Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Jul 26 11:22:21 2013 -1000 target-alpha: Implement call_pal without an exception The destination of the call_pal, and the cpu state, is very predictable; there's no need for exiting the cpu loop. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 321bc0b2b27aa2dd64bf12e0e2a0f323a4903ecf Author: Tiejun Chen <tiejun.chen@xxxxxxxxxxxxx> Date: Fri Aug 2 09:43:09 2013 +0800 cpus: Use cpu_is_stopped() efficiently It makes more sense and will make things simpler later. Signed-off-by: Tiejun Chen <tiejun.chen@xxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 92067bf4bfa144ea3967a9951808f5e587bdab18 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Jun 5 15:18:40 2013 +0200 target-i386: Move hyperv_* static globals to X86CPU - since hyperv_* helper functions are used only in target-i386/kvm.c move them there as static helpers Requested-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 99a0b03650176340ab6667fa1e5711a4552d4494 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Jul 10 17:08:42 2013 -0300 qdev: Set globals in instance_post_init function This way, properties registered in the instance_init function of child classes will be handled properly by qdev_prop_set_globals(), too. Includes a unit test for the new functionality. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 8231c2dd220336bbc7522c490d95742f6ba0adae Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Jul 10 17:08:41 2013 -0300 qom: Introduce instance_post_init hook This will allow classes to specify a function to be called after all instance_init functions were called. This will be used by DeviceState to call qdev_prop_set_globals() at the right moment. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 747b0cb4b51296e85add0a23d5fc1d24e250ec08 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Jul 10 17:08:40 2013 -0300 tests: Unit tests for qdev global properties handling This tests the qdev global-properties handling code. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 35143f0164e6933a85c7c2b8a89a040d881a9151 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 12 18:09:47 2013 +0200 gdbstub: Fix gdb_register_coprocessor() register counting Commit a0e372f0c49ac01faeaeb73a6e8f50e8ac615f34 reorganized the register counting for GDB. While it seems correct not to let the total number of registers skyrocket in an SMP scenario through a static variable, the distinction between total register count and 'g' packet register count (last_reg vs. num_g_regs) got lost among the way. Fix this by introducing CPUState::gdb_num_g_regs and using that in gdb_handle_packet(). Reported-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx (stable-1.6) Tested-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Tested-by: Max Filippov <jcmvbkbc@xxxxxxxxx> Tested-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f202039811d8746b0586d2fd5f61de6c8cf68056 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Aug 15 15:41:13 2013 -0500 Open up 1.7 development branch Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit ca916d3729564d0eb3c2374a96903f7e8aced8a7 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Mon Jul 22 11:51:33 2013 +0200 kvm: add KVM_IRQFD_FLAG_RESAMPLE support Added an EventNotifier* parameter to kvm-all.c:kvm_irqchip_add_irqfd_notifier(), in order to give KVM another eventfd to be used as "resamplefd". See the documentation in the linux kernel sources in Documentation/virtual/kvm/api.txt (section 4.75) for more details. When the added parameter is passed NULL, the behaviour of the function is unchanged with respect to the previous versions. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0d89436786b02a9e7d561c4d7dc4982e4a2739db Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Jul 25 17:05:22 2013 +0200 kvm: migrate vPMU state Reviewed-by: Gleb Natapov <gnatapov@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e4a09c9637f13a744ad7e2bc5223df05ac582c0d Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Jul 25 17:05:21 2013 +0200 target-i386: remove tabs from target-i386/cpu.h Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0779caeb1a17f4d3ed14e2925b36ba09b084fb7b Author: Arthur Chunqi Li <yzt356@xxxxxxxxx> Date: Sun Jul 7 23:13:37 2013 +0800 Initialize IA32_FEATURE_CONTROL MSR in reset and migration The recent KVM patch adds IA32_FEATURE_CONTROL support. QEMU needs to clear this MSR when reset vCPU and keep the value of it when migration. This patch add this feature. Signed-off-by: Arthur Chunqi Li <yzt356@xxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> For bisection revision-tuple graph see: http://www.chiark.greenend.org.uk/~xensrcts/results/bisect.linux-3.10.test-amd64-i386-freebsd10-amd64.guest-saverestore.html Revision IDs in each graph node refer, respectively, to the Trees above. ---------------------------------------- Searching for failure / basis pass: 27105 fail [host=field-cricket] / 26967 [host=potato-beetle] 26922 [host=grain-weevil] 26879 [host=leaf-beetle] 26828 [host=rice-weevil] 26774 [host=lace-bug] 26738 ok. Failure / basis pass flights: 27105 / 26738 (tree with no url: seabios) 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 Latest 853771148c5aa5998c423ed4dddd7605d4b4c949 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 2addb502cdb50bab00514b9723bf6e09c88ff75e 7f8d8abcf6dfb85fae591a547b24f9b27d92272c Basis pass 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 65fc9b78ba3d868a26952db0d8e51cecf01d47b4 cf37a923eae411d420f6519e6dcfd13e25cf276c Generating revisions with ./adhoc-revtuple-generator git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git#72c0f4193873987686d776813b96ef5e17b060b0-853771148c5aa5998c423ed4dddd7605d4b4c949 git://xenbits.xen.org/osstest/linux-firmware.git#c530a75c1e6a472b0eb9558310b518f0dfcd8860-c530a75c1e6a472b0eb9558310b518f0dfcd8860 git://xenbits.xen.org/staging/qemu-xen-unstable.git#7f5b3c338e0f8938ba575dec18255dcbee0c2ee2-7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 git://xenbits.xen.org/staging/qemu-upstream-unstable.git#65fc9b78ba3d868a26952db0d8e51cecf01d47b4-2addb502cdb50bab00514b9723bf6e09c88ff75e git://xenbits.xen.org/xen.git#cf37a923eae411d420f6519e6dcfd13e25cf276c-7f8d8abcf6dfb85fae591a547b24f9b27d92272c Cloning into bare repository /export/home/osstest/repos/linux-stable... Cloning into bare repository /export/home/osstest/repos/qemu-upstream-unstable... adhoc-revtuple-generator: tree discontiguous: qemu-upstream-unstable Cloning into bare repository /export/home/osstest/repos/xen... Cloning into bare repository /export/home/osstest/repos/linux-stable... Cloning into bare repository /export/home/osstest/repos/xen... Loaded 2002 nodes in revision graph Searching for test results: 26738 pass 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 65fc9b78ba3d868a26952db0d8e51cecf01d47b4 cf37a923eae411d420f6519e6dcfd13e25cf276c 26828 [host=rice-weevil] 26774 [host=lace-bug] 26922 [host=grain-weevil] 26879 [host=leaf-beetle] 26940 [] 26967 [host=potato-beetle] 27070 fail c2f7eb8029e23c4f5445340d8fc0d05367538e6d c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 2addb502cdb50bab00514b9723bf6e09c88ff75e 7f8d8abcf6dfb85fae591a547b24f9b27d92272c 26991 fail 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 2addb502cdb50bab00514b9723bf6e09c88ff75e 7f8d8abcf6dfb85fae591a547b24f9b27d92272c 27006 fail 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 2addb502cdb50bab00514b9723bf6e09c88ff75e 7f8d8abcf6dfb85fae591a547b24f9b27d92272c 27073 pass 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 65fc9b78ba3d868a26952db0d8e51cecf01d47b4 e86539a388314cd3dca88f5e69d7873343197cd8 27022 fail c2f7eb8029e23c4f5445340d8fc0d05367538e6d c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 2addb502cdb50bab00514b9723bf6e09c88ff75e 7f8d8abcf6dfb85fae591a547b24f9b27d92272c 27043 pass 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 65fc9b78ba3d868a26952db0d8e51cecf01d47b4 cf37a923eae411d420f6519e6dcfd13e25cf276c 27042 fail c2f7eb8029e23c4f5445340d8fc0d05367538e6d c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 2addb502cdb50bab00514b9723bf6e09c88ff75e 7f8d8abcf6dfb85fae591a547b24f9b27d92272c 27090 pass 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 65fc9b78ba3d868a26952db0d8e51cecf01d47b4 6b4d71d028f445cba7426a144751fddc8bfdd67b 27072 fail c2f7eb8029e23c4f5445340d8fc0d05367538e6d c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 2addb502cdb50bab00514b9723bf6e09c88ff75e 7f8d8abcf6dfb85fae591a547b24f9b27d92272c 27088 pass 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 65fc9b78ba3d868a26952db0d8e51cecf01d47b4 fca69b1fc606ece62430076ca4a157e4bed749a8 27103 pass 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 65fc9b78ba3d868a26952db0d8e51cecf01d47b4 84c4a1f62b0505026e9846bf707ba3de15109834 27104 pass 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 65fc9b78ba3d868a26952db0d8e51cecf01d47b4 054b6dfb61eab00d86ddd5d0ac508f5302da0d52 27129 pass 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 65fc9b78ba3d868a26952db0d8e51cecf01d47b4 cf37a923eae411d420f6519e6dcfd13e25cf276c 27107 pass 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 65fc9b78ba3d868a26952db0d8e51cecf01d47b4 7f8d8abcf6dfb85fae591a547b24f9b27d92272c 27126 fail 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 2addb502cdb50bab00514b9723bf6e09c88ff75e 7f8d8abcf6dfb85fae591a547b24f9b27d92272c 27144 fail 853771148c5aa5998c423ed4dddd7605d4b4c949 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 2addb502cdb50bab00514b9723bf6e09c88ff75e 7f8d8abcf6dfb85fae591a547b24f9b27d92272c 27105 fail 853771148c5aa5998c423ed4dddd7605d4b4c949 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 2addb502cdb50bab00514b9723bf6e09c88ff75e 7f8d8abcf6dfb85fae591a547b24f9b27d92272c 27127 pass 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 65fc9b78ba3d868a26952db0d8e51cecf01d47b4 7f8d8abcf6dfb85fae591a547b24f9b27d92272c 27146 fail 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 2addb502cdb50bab00514b9723bf6e09c88ff75e 7f8d8abcf6dfb85fae591a547b24f9b27d92272c 27147 pass 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 65fc9b78ba3d868a26952db0d8e51cecf01d47b4 7f8d8abcf6dfb85fae591a547b24f9b27d92272c 27148 fail 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 2addb502cdb50bab00514b9723bf6e09c88ff75e 7f8d8abcf6dfb85fae591a547b24f9b27d92272c Searching for interesting versions Result found: flight 26738 (pass), for basis pass Result found: flight 27105 (fail), for basis failure Repro found: flight 27129 (pass), for basis pass Repro found: flight 27144 (fail), for basis failure 0 revisions at 72c0f4193873987686d776813b96ef5e17b060b0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 7f5b3c338e0f8938ba575dec18255dcbee0c2ee2 65fc9b78ba3d868a26952db0d8e51cecf01d47b4 7f8d8abcf6dfb85fae591a547b24f9b27d92272c No revisions left to test, checking graph state. Result found: flight 27107 (pass), for last pass Result found: flight 27126 (fail), for first failure Repro found: flight 27127 (pass), for last pass Repro found: flight 27146 (fail), for first failure Repro found: flight 27147 (pass), for last pass Repro found: flight 27148 (fail), for first failure *** 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 Cloning into bare repository /export/home/osstest/repos/qemu-upstream-unstable... 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. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit a08582f41e94b5a7ee3e53ad1e719d24431aa675 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:36 2014 +0000 target-arm: A64: Add SIMD three-different multiply accumulate insns Add support for the multiply-accumulate instructions from the SIMD three-different instructions group (C3.6.15): * skeleton decode of unallocated encodings and split of the group into its three sub-parts * framework for handling the 64x64->128 widening subpart * implementation of the multiply-accumulate instructions SMLAL, SMLAL2, UMLAL, UMLAL2, SMLSL, SMLSL2, UMLSL, UMLSL2, UMULL, UMULL2, SMULL, SMULL2 Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 901ad5259fab785537f8c6b3713fce85d2ebceb1 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:35 2014 +0000 target-arm: Add AArch32 SIMD VCVTA, VCVTN, VCVTP and VCVTM Add support for the AArch32 Advanced SIMD VCVTA, VCVTN, VCVTP and VCVTM instructions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c9975a838736c9479b2e17fff7e50a2a83b1009e Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:35 2014 +0000 target-arm: Add AArch32 FP VCVTA, VCVTN, VCVTP and VCVTM Add support for the AArch32 floating-point VCVTA, VCVTN, VCVTP and VCVTM instructions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 34f7b0a276ed2679c5e420ed1bc6525689ac5abd Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:35 2014 +0000 target-arm: Add AArch32 SIMD VRINTA, VRINTN, VRINTP, VRINTM, VRINTZ Add support for the AArch32 Advanced SIMD VRINTA, VRINTN, VRINTP VRINTM and VRINTZ instructions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 43630e585300465b72ecf328822c8611724307de Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:35 2014 +0000 target-arm: Add set_neon_rmode helper This helper sets the rounding mode in the standard_fp_status word to allow NEON instructions to modify the rounding mode whilst using the standard FPSCR values for everything else. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2ce7062501c715aae0ad37c3923a3710dd8914df Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:34 2014 +0000 target-arm: Add support for AArch32 SIMD VRINTX Add support for the AArch32 Advanced SIMD VRINTX instruction. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4e82bc01ecc46e90346f731065528b1d47971eba Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:34 2014 +0000 target-arm: Add support for AArch32 FP VRINTX Add support for the AArch32 floating-point VRINTX instruction. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a290c62a7521a5695e12bb9022f8b953c2f50f54 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:34 2014 +0000 target-arm: Add support for AArch32 FP VRINTZ Add support for the AArch32 floating-point VRINTZ instruction. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 664c6733d72c589cd9f6ccee305e7b7ce36ea06d Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:34 2014 +0000 target-arm: Add support for AArch32 FP VRINTR Add support for the AArch32 floating-point VRINTR instruction. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7655f39bde5de92b4a3c154a5a8735476c34f458 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:33 2014 +0000 target-arm: Add AArch32 FP VRINTA, VRINTN, VRINTP and VRINTM Add support for AArch32 ARMv8 FP VRINTA, VRINTN, VRINTP and VRINTM instructions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 9972da669fd3d3e3423d2bf6cb2c11fa9239f862 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Jan 31 14:47:33 2014 +0000 target-arm: Move arm_rmode_to_sf to a shared location. This function will be needed for AArch32 ARMv8 support, so move it to helper.c where it can be used by both targets. Also moves the code out of line, but as it is quite a large function I don't believe this should be a significant performance impact. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2cdaca90ddf3291f308a10623c1a802ef760bac1 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Jan 31 14:47:33 2014 +0000 display: avoid multi-statement macro For blizzard, pl110 and tc6393xb this is harmless, but for pxa2xx Coverity noticed that it is used inside an "if" statement. Fix it because it's the file with the highest number of defects in the whole QEMU tree! Use "do...while (0)", or just remove the semicolon if there's a single statement in the macro. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit b48adc0d301464d627d6d0f83dee911a2138187f Author: Alistair Francis <alistair.francis@xxxxxxxxxx> Date: Fri Jan 31 14:47:33 2014 +0000 ZYNQ: Implement board MIDR control for Zynq This patch uses the fact that the midr variable is now a property This patch sets the midr variable to the boards custom midr Signed-off-by: Alistair Francis <alistair.francis@xxxxxxxxxx> Message-id: a3754b10d150af72e4688a993e484fa2b9b8fa21.1390176489.git.alistair.francis@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 51a9b04bd3b01e11a1db4fc2ac2f1d324fbd30aa Author: Alistair Francis <alistair.francis@xxxxxxxxxx> Date: Fri Jan 31 14:47:32 2014 +0000 ARM: Convert MIDR to a property Convert the MIDR register to a property. This allows boards to later set a custom MIDR value. This has been done in such a way to maintain compatibility with all existing CPUs and boards Signed-off-by: Alistair Francis <alistair.francis@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 878613f2f12d4162f12629522fd99de8df904856.1390176489.git.alistair.francis@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 83bfffec72ad447dfc80a4eab320403175ffe4e3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:32 2014 +0000 hw/arm/boot: Don't set up ATAGS for autogenerated dtb booting The code which decides whether to set up the ATAGS data structure on reset was using the wrong conditional, which meant we were creating an ATAGS structure when doing a device-tree boot if the dtb was autogenerated by the board. This is harmless, but unnecessary, so bring it in to line with user-provided-dtb boots. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1388326833-656-1-git-send-email-peter.maydell@xxxxxxxxxx commit 360a6f2dbde39211107620a3d38b8cc8cc5281ee Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:32 2014 +0000 target-arm: A64: Add SIMD scalar copy instructions Add support for the SIMD scalar copy instruction group (C3.6.7), which consists of the single instruction DUP (element, scalar). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f3f8c4f4d2fc7dda192393f998e63c7a83fb7554 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Fri Jan 31 14:47:32 2014 +0000 target-arm: A64: Add SIMD modified immediate group This patch adds support for the AdvSIMD modified immediate group (C3.6.6) with all its suboperations (movi, orr, fmov, mvni, bic). Signed-off-by: Alexander Graf <agraf@xxxxxxx> [AJB: new decode struct, minor bug fixes, optimisation] Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 67bb93890d7b435f294f1e47ee7adc5662cc0842 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Fri Jan 31 14:47:31 2014 +0000 target-arm: A64: Add SIMD copy operations This adds support for the all the AdvSIMD vector copy operations (ARM ARM 3.6.5). Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4a0ff1ce73a9e06ecb655019820229de74244432 Author: Michael Matz <matz@xxxxxxx> Date: Fri Jan 31 14:47:31 2014 +0000 target-arm: A64: Add SIMD across-lanes instructions Add support for the SIMD "across lanes" instruction group (C3.6.4). Signed-off-by: Michael Matz <matz@xxxxxxx> [PMM: Updated to current codebase, added fp min/max ops, added unallocated encoding checks] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5fa5469c08f6e51eed26d6d54e0be8682723d3df Author: Michael Matz <matz@xxxxxxx> Date: Fri Jan 31 14:47:31 2014 +0000 target-arm: A64: Add SIMD ZIP/UZP/TRN Add support for the SIMD ZIP/UZIP/TRN instruction group (C3.6.3). Signed-off-by: Michael Matz <matz@xxxxxxx> [PMM: use new do_vec_get/set etc functions and generally update to new codebase standards; refactor to pull per-element loop outside switch] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7c51048fa918f64806adf0f76166e9940d772eb1 Author: Michael Matz <matz@xxxxxxx> Date: Fri Jan 31 14:47:31 2014 +0000 target-arm: A64: Add SIMD TBL/TBLX Add support for the SIMD TBL/TBLX instructions (group C3.6.2). Signed-off-by: Michael Matz <matz@xxxxxxx> [PMM: rewritten to do more of the decode in translate-a64.c, and to do only one 64 bit pass at a time in the helper] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5c73747f3cc29471f9fbfe630ef15902e65f53b3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:30 2014 +0000 target-arm: A64: Add SIMD EXT Add support for the SIMD EXT instruction (the only one in its group, C3.6.1). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 384b26fb06f72e822730d3b8f51fd71a5fec5eee Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Fri Jan 31 14:47:30 2014 +0000 target-arm: A64: Add decode skeleton for SIMD data processing insns Add decode skeleton and function placeholders for all the SIMD data processing instructions. Due to the complexity of this part of the table the normal extract and switch approach gets very messy very quickly, so we use a simple data-driven pattern-and-mask approach. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit df54e47d2b86c636b4d22f663dbffce6a3cffd81 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 14:47:30 2014 +0000 target-arm: A64: Add SIMD ld/st single Implement the SIMD ld/st single structure instructions. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 72430bf5eb7f7309e705705af9798d13aa94e80d Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Fri Jan 31 14:47:30 2014 +0000 target-arm: A64: Add SIMD ld/st multiple This adds support support for the SIMD load/store multiple category of instructions. This also brings in a couple of helper functions for manipulating sections of the SIMD registers: * do_vec_get - fetch value from a slice of a vector register * do_vec_set - set a slice of a vector register which use vec_reg_offset for consistent processing of offsets in an endian aware manner. There are also additional helpers: * do_vec_ld - load value into SIMD * do_vec_st - store value from SIMD which load or store a slice of a vector register to memory. These don't zero extend like the fp variants. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 89e4a51ca9546a7bbe1998c4e3d4a3ac3a0c19be Merge: 0159a64 736ec16 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 11:13:08 2014 +0000 Merge remote-tracking branch 'stefanha/tags/tracing-pull-request' into staging Tracing pull request # gpg: Signature made Mon 27 Jan 2014 14:51:09 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 * stefanha/tags/tracing-pull-request: trace: fix simple trace "disable" keyword trace: add glib 2.32+ static GMutex support trace: [simple] Do not include "trace/simple.h" in generated tracer headers tracing: start trace processing thread in final child process Message-id: 1390834386-23139-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 44c68de0445677728700651ed4e2d2063f36f9ed Author: Dominik Dingel <dingel@xxxxxxxxxxxxxxxxxx> Date: Tue Oct 1 16:28:23 2013 +0200 s390x/kvm: cleanup partial register handling The partial register handling (introduced with commits 420840e58b85f7f4e5493dca3f273566f261090a and 3474b679486caa8f6448bae974e131370f360c13 ) aimed to improve intercept handling performance. It made the code more complicated though. During development for life migration/init/reset etc it turned out that this might cause several hard to debug programming errors. With the introduction of ioeventfd (and future irqfd patches) the qemu intercept handlers are no longer hot-path. And therefore the partial register handling can be removed to simplify the code. Signed-off-by: Dominik Dingel <dingel@xxxxxxxxxxxxxxxxxx> CC: Jason J. Herne <jjherne@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> commit 0159a64397fc8e6c85de73613d83a3612c840664 Merge: 97374ce a75143e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 00:23:27 2014 +0000 Merge remote-tracking branch 'mst/tags/for_anthony' into staging acpi,pci,pc,virtio fixes and enhancements This includes new unit-tests for acpi by Marcel, hotplug for pci bridges by myself (piix only so far) and cpu hotplug for q35. And a bunch of fixes all over the place as usual. I included the patch to fix memory alignment for q35 as well - even though it limits 32 bit guests to 3G (they previously could address more memory with PAE). To remove the limit, this will have to be fixed in seabios. I also added self as virtio co-maintainer so I don't need to troll the list for patches to review. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Sun 26 Jan 2014 11:12:09 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 * mst/tags/for_anthony: (35 commits) MAINTAINERS: add self as virtio co-maintainer q35: document gigabyte_align q35: gigabyte alignment for ram acpi: Fix PCI hole handling on build_srat() pc: Save size of RAM below 4GB hw/pci: fix error flow in pci multifunction init acpi-test: update expected AML since recent changes pc: ACPI: update acpi-dsdt.hex.generated q35-acpi-dsdt.hex.generated pc: ACPI: unify source of CPU hotplug IO base/len pc: ACPI: expose PRST IO range via _CRS pc: Q35 DSDT: exclude CPU hotplug IO range from PCI bus resources pc: PIIX DSDT: exclude CPU/PCI hotplug & GPE0 IO range from PCI bus resources pc: set PRST base in DSDT depending on chipset acpi: ich9: add CPU hotplug handling to Q35 machine acpi: factor out common cpu hotplug code for PIIX4/Q35 acpi-build: enable hotplug for PCI bridges piix4: add acpi pci hotplug support pcihp: generalization of piix4 acpi pci: add pci_for_each_bus_depth_first pc: make: fix dependencies: rebuild when included file is changed ... Message-id: 1390735289-15563-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 97374ce538883af677fd94803b71df2d55a9a4de Merge: 8e02b35 794798e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 31 00:13:02 2014 +0000 Merge remote-tracking branch 'sstabellini/xen-170114' into staging * sstabellini/xen-170114: xen_pt: Fix passthrough of device with ROM. xen_pt: Fix debug output. xenfb: map framebuffer read-only and handle unmap errors Message-id: alpine.DEB.2.02.1401171537140.21510@xxxxxxxxxxxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8e02b359267f8919de799525a4ccd4d37ef2d127 Merge: dc08f85 1f149e7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Jan 30 22:25:39 2014 +0000 Merge remote-tracking branch 'stefanha/tags/net-pull-request' into staging Net patches # gpg: Signature made Mon 27 Jan 2014 14:45:35 GMT using RSA key ID 81AB73C8 # gpg: Can't check signature: public key not found * stefanha/tags/net-pull-request: tap-linux: Get features once and use it many times Fix lan9118 buffer length handling Fix lan9118 TX "CMD A" handling net: Use g_strdup_printf instead of snprintf. Message-id: 1390834129-19625-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit dc08f85188b5976d93bff25ab9e68cf3ce62b12f Merge: 0706f7c 2d23d5e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Jan 30 19:02:16 2014 +0000 Merge remote-tracking branch 'rth/tcg-movbe' into staging * rth/tcg-movbe: tcg/i386: cleanup useless #ifdef tcg/i386: use movbe instruction in qemu_ldst routines tcg/i386: add support for three-byte opcodes tcg/i386: remove hardcoded P_REXW value disas/i386.c: disassemble movbe instruction Message-id: 1390692772-15282-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 360e607b88a23d378f6efaa769c76d26f538234d Author: Stefano Stabellini <Stefano.Stabellini@xxxxxxxxxxxxx> Date: Thu Jan 30 12:46:05 2014 +0000 address_space_translate: do not cross page boundaries The following commit: commit 149f54b53b7666a3facd45e86eece60ce7d3b114 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri May 24 12:59:37 2013 +0200 memory: add address_space_translate breaks Xen support in QEMU, in particular the Xen mapcache. The effect is that one Windows XP installation out of ten would end up with BSOD. The reason is that after this commit l in address_space_rw can span a page boundary, however qemu_get_ram_ptr still calls xen_map_cache asking to map a single page (if block->offset == 0). Fix the issue by reverting to the previous behaviour: do not return a length from address_space_translate_internal that can span a page boundary. Also in address_space_translate do not ignore the length returned by address_space_translate_internal. This patch should be backported to QEMU 1.6.x. Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Signed-off-by: Anthony Perard <anthony.perard@xxxxxxxxxx> Tested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx commit 0706f7c85b3c0783f92d44b551f362884db0f4bd Merge: 18d13fa 2c02d1a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Jan 30 13:56:00 2014 +0000 Merge remote-tracking branch 'mjt/tags/trivial-patches-2014-01-16' into staging trivial-patches for 2014-01-16 # gpg: Signature made Thu 16 Jan 2014 17:29:05 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 Message-id: 1389893719-16336-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 18d13fa293af8e54e15c4651f99b24a139c9eb43 Author: Alexander Graf <agraf@xxxxxxx> Date: Sun Jan 19 16:53:31 2014 +0100 TCG: Fix I64-on-32bit-host temporaries We have cache pools of temporaries that we can reuse later when they've already been allocated before. These cache pools differenciate between the target TCG variable type they contain. So we have one pool for I32 and one pool for I64 variables. On a 32bit system, we can't work with 64bit registers though. So instead we spawn two I32 temporaries for every I64 temporary we create. All caching works the same way as on a real 64-bit system though: We create a cache entry in the 64bit array for the first i32 index. However, when we free such a temporary we free it to the pool of its type (which is always i32 on 32bit systems) rather than its base_type (which is i64 or i32 depending on the variable). This means we put a temporary that is of base_type == i64 into the i32 preallocated temporary pool. Eventually, this results in failures like this on 32bit hosts: qemu-system-ppc64: tcg/tcg.c:515: tcg_temp_new_internal: Assertion `ts->base_type == type' failed. This patch makes the free routine use the base_type instead for the free case, so it's consistent with the temporary allocation. It fixes the above failure for me. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1390146811-59936-1-git-send-email-agraf@xxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 056f49ff2cf645dc484956b00b65a3aa18a1a9a3 Author: Stratos Psomadakis <psomas@xxxxxxxx> Date: Mon Jan 27 12:30:15 2014 +0200 monitor: Cleanup mon->outbuf on write error In case monitor_flush() fails to write the contents of mon->outbuf to the output device, mon->outbuf is not cleaned up properly. Check the return code of the qemu_chr_fe_write() function and cleanup the outbuf if it fails. References: http://lists.nongnu.org/archive/html/qemu-devel/2014-01/msg02890.html Signed-off-by: Stratos Psomadakis <psomas@xxxxxxxx> Signed-off-by: Dimitris Aragiorgis <dimara@xxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 57d3e1b3f52d07d215ed96df946ee01f8d9f9526 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 16 17:34:39 2014 +0100 virtio_rng: replace custom backend API with UserCreatable.complete() callback in addition fix default backend leak by releasing it if its initialization failed. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 269e09f3fc922b800d118d9c8a721be46b5462a3 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 16 17:34:38 2014 +0100 add optional 2nd stage initialization to -object/object-add commands Introduces USER_CREATABLE interface that must be implemented by objects which are designed to created with -object CLI option or object-add QMP command. Interface provides an ability to do an optional second stage initialization of the object created with -object/object-add commands. By providing complete() callback, which is called after the object properties were set. It allows to: * prevents misusing of -object/object-add by filtering out objects that are not designed for it. * generalize second stage backend initialization instead of adding custom APIs to perform it * early error detection of backend initialization at -object/ object-add time rather than through a proxy DEVICE object that tries to use backend. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 90e9cf28e57a3e1d6caa0a28b0a332ff982ccb0b Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 16 17:34:37 2014 +0100 vl.c: -object: don't ignore duplicate 'id' object_property_add_child() may fail if 'id' matches an already existing object. Which means an incorrect command line. So instead of silently ignoring error, report it and terminate QEMU. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 69252c046741a0955ddb90250f416a2199305091 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 16 17:34:36 2014 +0100 object_add: consolidate error handling Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 8b6d14087d487203f4d1a67aeaddc3be6c73f49f Author: Bandan Das <bsd@xxxxxxxxxx> Date: Tue Jan 28 08:23:19 2014 -0700 vfio: correct debug macro typo Change to DEBUG_VFIO in vfio_msi_interrupt() for debug messages to get printed Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 234eef51a12e2f0f8dfd71cb49d2469d462b1855 Author: Matthew Rosato <mjrosato@xxxxxxxxxxxxxxxxxx> Date: Mon Jan 27 10:57:50 2014 -0500 sclp-s390: Define new SCLP codes and structures Define new SCLP codes and structures that will be needed for s390 memory hotplug. Signed-off-by: Matthew Rosato <mjrosato@xxxxxxxxxxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 736ec1677f1ae7e64f2f3436ca3775c48f79678c Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Jan 15 11:10:30 2014 +0800 trace: fix simple trace "disable" keyword The trace-events "disable" keyword turns an event into a nop at compile-time. This is important for high-frequency events that can impact performance. The "disable" keyword is currently broken in the simple trace backend. This patch fixes the problem as follows: Trace events are identified by their TraceEventID number. When events are disabled there are two options for assigning TraceEventID numbers: 1. Skip disabled events and don't assign them a number. 2. Assign numbers for all events regardless of the disabled keyword. The simple trace backend and its binary file format uses approach #1. The tracetool infrastructure has been using approach #2 for a while. The result is that the numbers used in simple trace files do not correspond with TraceEventIDs. In trace/simple.c we assumed that they are identical and therefore emitted bogus numbers. This patch fixes the bug by using TraceEventID for trace_event_id() while sticking to approach #1 for simple trace file numbers. This preserves simple trace file format compatibility. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 05735a2a9cf37f5dc11ece998906431dda707258 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Dec 12 15:50:11 2013 +0100 trace: add glib 2.32+ static GMutex support The GStaticMutex API was deprecated in glib 2.32. We cannot switch over to GMutex unconditionally since we would drop support for older glib versions. But the deprecated API warnings during build are annoying so use static GMutex when possible. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b618c28831eda2531acc5c1feb9dbb3047d19391 Author: LluÃs Vilanova <vilanova@xxxxxxxxxx> Date: Tue Jan 14 16:52:55 2014 +0100 trace: [simple] Do not include "trace/simple.h" in generated tracer headers The header is not necessary, given that the simple backend does not define any inlined tracing routines. Signed-off-by: LluÃs Vilanova <vilanova@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8a745f2a9296ad2cf6bda33534ed298f2625a4ad Author: Michael Mueller <mimu@xxxxxxxxxxxxxxxxxx> Date: Mon Sep 23 16:36:54 2013 +0200 tracing: start trace processing thread in final child process When running with trace backend e.g. "simple" the writer thread needs to be implemented in the same process context as the trace points that will be processed. Under libvirtd control, qemu gets first started in daemonized mode to privide its capabilities. Creating the writer thread in the initial process context then leads to a dead lock because the thread gets termined together with the initial parent. (-daemonize) Signed-off-by: Michael Mueller <mimu@xxxxxxxxxxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> [minor whitespace fixes] Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1f149e721feb617d14a3ee4f5911c47b29866a54 Author: Kusanagi Kouichi <slash@xxxxxxxxxxxxxxx> Date: Sat Jan 18 14:38:45 2014 +0900 tap-linux: Get features once and use it many times Signed-off-by: Kusanagi Kouichi <slash@xxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c444dfabfc21cb5f093862100e333b808eea32e4 Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Jan 7 20:19:52 2014 -0800 Fix lan9118 buffer length handling The 9118 ethernet controller supports transmission of multi-buffer packets with arbitrary byte alignment of the start and end bytes. All writes to the packet fifo are 32 bits, so the controller discards bytes at the beginning and end of each buffer based on the 'Data start offset' and 'Buffer size' of the TX command 'A' format. This patch uses the provided buffer length to limit the bytes transmitted. Previously all the bytes of the last 32-bit word written to the TX fifo were added to the internal transmit buffer structure resulting in more bytes being transmitted than were submitted to the hardware in the command. This resulted in extra bytes being inserted into the middle of multi-buffer packets when the non-final buffers had non-32bit aligned ending addresses. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2ad657e3f3af66def47554186a58f1748787a527 Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Jan 7 20:19:51 2014 -0800 Fix lan9118 TX "CMD A" handling The 9118 ethernet controller supports transmission of multi-buffer packets with arbitrary byte alignment of the start and end bytes. All writes to the packet fifo are 32 bits, so the controller discards bytes at the beginning and end of each buffer based on the 'Data start offset' and 'Buffer size' of the TX command 'A' format. This patch changes the buffer size and offset internal state variables to be updated on every "TX command A" write. Previously they were only updated for the first segment, which resulted incorrect behavior for packets with more than one segment. Each segment of the packet has its own CMD A command, with its own buffer size and start offset. Also update extraction of fields from the CMD A word to use extract32(). Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4bf2c138ddefc6ff17f6c4b947320c60aa0c38a0 Author: Hani Benhabiles <kroosec@xxxxxxxxx> Date: Thu Jan 9 19:34:27 2014 +0100 net: Use g_strdup_printf instead of snprintf. assign_name() in net/net.c is using snprintf + g_strdup to get the same result as g_strdup_printf. Signed-off-by: Hani Benhabiles <kroosec@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a75143eda2ddf581b51e96c000974bcdfe2cbd10 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Jan 26 12:39:55 2014 +0200 MAINTAINERS: add self as virtio co-maintainer This will help make sure I get Cc'd on patches. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4e17997d49d6e3a426fd465dfbdf5a4dc04639f4 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Dec 16 13:55:06 2013 +0200 q35: document gigabyte_align Document the logic behind the below/above 4G split. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9a305c8fc7bb567e9f754ddfe5fb102aaeeb770a Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 16 10:11:28 2013 +0100 q35: gigabyte alignment for ram Map 2G (q35) of memory below 4G, so the RAM pieces are nicely aligned to gigabyte borders. Keep old memory layout for (a) old machine types and (b) in case all memory fits below 4G and thus we don't have to split RAM into pieces in the first place. The later makes sure this change doesn't take away memory from 32bit guests. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4c8a949b2416158a311abefc09a20153aa107e93 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Jan 9 17:12:43 2014 -0200 acpi: Fix PCI hole handling on build_srat() The original SeaBIOS code used the RamSize variable, that was used by SeaBIOS for the size of RAM below 4GB, not for all RAM. When copied to QEMU, the code was changed to use the full RAM size, and this broke the build_srat() code that handles the PCI hole. Change build_srat() to use ram_size_below_4g instead of ram_size, to restore the original behavior from SeaBIOS. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit f30ee8a9682be4abfcb05c6389894f8cfc35c3f0 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Jan 9 17:12:42 2014 -0200 pc: Save size of RAM below 4GB The ram_below_4g value will be useful in other places, such as the ACPI table code, and other code that currently requires passing below_4g_mem_size around in function arguments. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 306077640a652e090779498aadbeb0c605feaacd Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Tue Jan 21 18:37:51 2014 +0200 hw/pci: fix error flow in pci multifunction init Scenario: - There is a non multifunction pci device A on 00:0X.0. - Hot-plug another multifunction pci device B at 00:0X.1. - The operation will fail of course. - Try to hot-plug the B device 2-3 more times, qemu will crash. Reason: The error flow leaves the B's address space into global address spaces list, but the device object is freed. Fixed that. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit b8124cecb55b3bc4e7dee0ff34b294942044d74a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Jan 20 14:00:12 2014 +0200 acpi-test: update expected AML since recent changes Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 2867534f3d1daa970eba2afdb9b401388bd75b56 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:39 2014 +0100 pc: ACPI: update acpi-dsdt.hex.generated q35-acpi-dsdt.hex.generated Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit e4cf8ed08a1b8b996f9939de0d8eda4ed8a3d25e Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:38 2014 +0100 pc: ACPI: unify source of CPU hotplug IO base/len use C headers defines as source of IO base/len for respective values in ASL code. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 61a3f63560ccd2b5e8c9134e9213a1cff36f26bf Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:37 2014 +0100 pc: ACPI: expose PRST IO range via _CRS .. so OSPM could notice resource conflict if there is any. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 562e56a9f8e627b2a4ef60037507361ce3cb4e6d Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:36 2014 +0100 pc: Q35 DSDT: exclude CPU hotplug IO range from PCI bus resources ... for range defined at hw/acpi/ich9.c:ICH9_PROC_BASE Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 1aa149b479a479323121251f1e8e676765cb354d Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:35 2014 +0100 pc: PIIX DSDT: exclude CPU/PCI hotplug & GPE0 IO range from PCI bus resources .. so that they might not be used by PCI devices. Note: Resort to concatenating templates with preprocessor help, because 1.0b spec isn't supporting ConcatenateResTemplate, as result Windows XP fails to execute PCI0._CRS method if ConcatenateResTemplate() is used. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4782434f3cc016fbab16228e92e90265cf6db908 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:34 2014 +0100 pc: set PRST base in DSDT depending on chipset Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d6610bc2adc19a632cb14fc094378cbf5cd60868 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:32 2014 +0100 acpi: ich9: add CPU hotplug handling to Q35 machine .. use IO port 0cd8-0xcf7 range for CPU present bitmap Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 81cea5e7f2aa61c6c5d33d28bceb81276603d3c9 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:31 2014 +0100 acpi: factor out common cpu hotplug code for PIIX4/Q35 .. so it could be used for adding CPU hotplug to Q35 machine Add an additional header with that will be shared between C and ASL code: include/hw/acpi/cpu_hotplug_defs.h Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 99fd437dee468609de8218f0eb3b16621fb6a9c9 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Oct 14 18:01:29 2013 +0300 acpi-build: enable hotplug for PCI bridges This enables support for device hotplug behind pci bridges. Bridge devices themselves need to be pre-configured on qemu command line. Design: - at machine init time, assign "bsel" property to bridges with hotplug support - dynamically (At ACPI table read) generate ACPI code to handle hotplug events for each bridge with "bsel" property Note: ACPI doesn't support adding or removing bridges by hotplug. We detect and prevent removal of bridges by hotplug, unless they were added by hotplug previously (and so, are not described by ACPI). Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9e047b982452c633882b486682966c1d97097015 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Oct 14 18:01:20 2013 +0300 piix4: add acpi pci hotplug support Add support for acpi pci hotplug using the new infrastructure. PIIX4 legacy interface is maintained as is for machine types 1.7 and older. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit db4728e6fec0364b866d3106125974eedc00e091 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Oct 14 18:01:11 2013 +0300 pcihp: generalization of piix4 acpi Add ACPI based PCI hotplug library with bridge hotplug support. Design - each bus gets assigned "bsel" property. - ACPI code writes this number to a new BNUM register, then uses existing UP/DOWN registers to probe slot status; to eject, write number to BNUM register, then slot into existing EJ. The interface is actually backwards-compatible with existing PIIX4 ACPI (though not migration compatible). This is split out from PIIX4 codebase so we can reuse it for Q35 as well. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit eb0acfdde604930688c47fe1ba99bec2bd84b7ad Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Oct 14 18:01:07 2013 +0300 pci: add pci_for_each_bus_depth_first Useful for ACPI hotplug. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4d25299cb2b57a16fd3194e938eeb78d219400ba Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Thu Jan 9 17:36:33 2014 +0100 pc: make: fix dependencies: rebuild when included file is changed some *.dsl files include another *.dsl files but there weren't any dependicies and when included file changed target table wasn't rebuild. Fix this by using the same auto dependency generation as for C files. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 0651596cbed8c0806aa2d7e436201f28b2fe179a Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Jan 16 17:50:48 2014 +0200 acpi unit-test: do not fail on asl mismatch The asl comparison will break every time the ACPI tables are updated. This may break the git bisect. Instead of failing print a warning on stderr including the retained asl files, so they can be compared offline. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 69d09245d19765fd461cc3d3a7d79686007c4474 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Jan 16 17:50:47 2014 +0200 acpi unit-test: resolved iasl crash It seems that iasl has an issue when disassembles some ACPI tables using the command line: iasl -e DSDT -e SSDT -d HPET Modified the iasl command line to "iasl -d HPET" until the problem is solved. The command line remained the same for DSDT and SSDT tables. Reported-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a3a74ab90ea81cafaf4d03824d47a6d028ea996d Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Jan 16 17:50:46 2014 +0200 acpi unit-test: renamed ssdt_tables to tables Just a refactoring, ssdt_tables name was confusing as it included other tables as well. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 084137ddbbb30f5f85298711dc2d501a625d37ab Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Jan 13 18:33:53 2014 +1100 tests: fix acpi to work on bigendian host Double endianness convertion make this test failing on POWERPC machine running in big-endian. This fixes the test to success on big-endian host. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4500bc98a6aab1734d865afaeade3509eb65b560 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Dec 26 16:54:25 2013 +0200 acpi unit-test: hook to rebuild expected aml files When running the test with TEST_ACPI_REBUILD_AML=y environment variable, the test will rebuild and validate the expected aml files. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit cebc92a2131be21cc4dc5f72f1e243061cd96b1f Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Dec 26 16:54:24 2013 +0200 acpi unit-test: added script to rebuild the expected aml files Acpi unit-test will fail every time the acpi tables change. This script rebuild the expected aml files, so the test will pass. It also validates the modifications. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit cc8fa0e80836c51ba644d910cd89540a5bc83fc2 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Dec 26 16:54:23 2013 +0200 acpi unit-test: extract iasl executable from configuration The test checked if iasl is installed by running "iasl" and checking the error output. It is better to use the iasl executable as appears in configuration. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9dd6cabdd3bfa49d4f594956e8ee93f8996460c7 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Dec 26 16:54:22 2013 +0200 configure: add CONFIG_IASL to config-host.h Acpi unit-tests will extract iasl executable from CONFIG_IASL define. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9e8458c0232356a0c0eebb4fa4928fd02250c5f4 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Dec 26 16:54:21 2013 +0200 acpi unit-test: compare DSDT and SSDT tables against expected values This test will run only if iasl is installed on the host machine. The test plan: 1. Dumps the ACPI tables as AML on the disk. 2. Runs iasl to disassembly the tables into ASL files. 3. Runs iasl to disassembly the offline AML files into ASL files. 4. Compares the ASL files. The test runs for both default machine and q35. In case the test fails, it can be easily tweaked to show the differences between the ASL files and understand the issue. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c2304b52f1b20fa79d299177d1fe75df2d265bfa Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Dec 26 16:54:20 2013 +0200 configure: added acpi unit-test files Ensure configure will set-up links for the files if the build is created in other directory. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d259793808052dbef6d2d90cdb09150d03b8413b Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Dec 26 16:54:19 2013 +0200 acpi unit-test: add test files Added unit-test's expected aml files to be compared with the actual ACPI tables. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4dd72e04c2c4759782d0eb3e3aff6a36889c1e18 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Dec 22 15:51:22 2013 +0100 virtio: Fix return value for dummy function vhost_net_virtqueue_pending cgcc complains that -ENOSYS is not a good value for 'bool'. A dummy virtio will never have pending queue entries, so let us return false. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8977557ae418f9b9ff5c35ee39161a33f2368e6a Author: Gabriel L. Somlo <gsomlo@xxxxxxxxx> Date: Mon Jan 13 15:27:13 2014 -0500 ACPI: Fix AppleSMC _STA size Minimize the storage used for AppleSMC's _STA (8bit), relying on ASL to implicitly convert it to the officially specified 32bit value. Signed-off-by: Gabriel Somlo <somlo@xxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 15bce1b7c55c69f47e13c9eb2a4b80f41da26581 Author: Gabriel L. Somlo <gsomlo@xxxxxxxxx> Date: Sun Dec 22 10:34:56 2013 -0500 Add DSDT node for AppleSMC AppleSMC (-device isa-applesmc) is required to boot OS X guests. OS X expects a SMC node to be present in the ACPI DSDT. This patch adds a SMC node to the DSDT, and dynamically patches the return value of SMC._STA to either 0x0B if the chip is present, or otherwise to 0x00, before booting the guest. Signed-off-by: Gabriel Somlo <somlo@xxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 3e16d14fd93ca6059134ba6b4f65c1c3e4cd3a18 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Dec 17 01:37:06 2013 +0100 Python-lang gdb script to extract x86_64 guest vmcore from qemu coredump When qemu dies unexpectedly, for example in response to an explicit abort() call, or (more importantly) when an external signal is delivered to it that results in a coredump, sometimes it is useful to extract the guest vmcore from the qemu process' memory image. The guest vmcore might help understand an emulation problem in qemu, or help debug the guest. This script reimplements (and cuts many features of) the qmp_dump_guest_memory() command in gdb/Python, https://sourceware.org/gdb/current/onlinedocs/gdb/Python-API.html working off the saved memory image of the qemu process. The docstring in the patch (serving as gdb help text) describes the limitations relative to the QMP command. Dependencies of qmp_dump_guest_memory() have been reimplemented as needed. I sought to follow the general structure, sticking to original function names where possible. However, keeping it simple prevailed in some places. The patch has been tested with a 4 VCPU, 768 MB, RHEL-6.4 (2.6.32-358.el6.x86_64) guest: - The script printed > guest RAM blocks: > target_start target_end host_addr message count > ---------------- ---------------- ---------------- ------- ----- > 0000000000000000 00000000000a0000 00007f95d0000000 added 1 > 00000000000a0000 00000000000b0000 00007f960ac00000 added 2 > 00000000000c0000 00000000000ca000 00007f95d00c0000 added 3 > 00000000000ca000 00000000000cd000 00007f95d00ca000 joined 3 > 00000000000cd000 00000000000d0000 00007f95d00cd000 joined 3 > 00000000000d0000 00000000000f0000 00007f95d00d0000 joined 3 > 00000000000f0000 0000000000100000 00007f95d00f0000 joined 3 > 0000000000100000 0000000030000000 00007f95d0100000 joined 3 > 00000000fc000000 00000000fc800000 00007f960ac00000 added 4 > 00000000fffe0000 0000000100000000 00007f9618800000 added 5 > dumping range at 00007f95d0000000 for length 00000000000a0000 > dumping range at 00007f960ac00000 for length 0000000000010000 > dumping range at 00007f95d00c0000 for length 000000002ff40000 > dumping range at 00007f960ac00000 for length 0000000000800000 > dumping range at 00007f9618800000 for length 0000000000020000 - The vmcore was checked with "readelf", comparing the results against a vmcore written by qmp_dump_guest_memory(): > --- theirs 2013-09-12 17:38:59.797289404 +0200 > +++ mine 2013-09-12 17:39:03.820289404 +0200 > @@ -27,16 +27,16 @@ > Type Offset VirtAddr PhysAddr > FileSiz MemSiz Flags Align > NOTE 0x0000000000000190 0x0000000000000000 0x0000000000000000 > - 0x0000000000000ca0 0x0000000000000ca0 0 > - LOAD 0x0000000000000e30 0x0000000000000000 0x0000000000000000 > + 0x000000000000001c 0x000000000000001c 0 > + LOAD 0x00000000000001ac 0x0000000000000000 0x0000000000000000 > 0x00000000000a0000 0x00000000000a0000 0 > - LOAD 0x00000000000a0e30 0x0000000000000000 0x00000000000a0000 > + LOAD 0x00000000000a01ac 0x0000000000000000 0x00000000000a0000 > 0x0000000000010000 0x0000000000010000 0 > - LOAD 0x00000000000b0e30 0x0000000000000000 0x00000000000c0000 > + LOAD 0x00000000000b01ac 0x0000000000000000 0x00000000000c0000 > 0x000000002ff40000 0x000000002ff40000 0 > - LOAD 0x000000002fff0e30 0x0000000000000000 0x00000000fc000000 > + LOAD 0x000000002fff01ac 0x0000000000000000 0x00000000fc000000 > 0x0000000000800000 0x0000000000800000 0 > - LOAD 0x00000000307f0e30 0x0000000000000000 0x00000000fffe0000 > + LOAD 0x00000000307f01ac 0x0000000000000000 0x00000000fffe0000 > 0x0000000000020000 0x0000000000020000 0 > > There is no dynamic section in this file. > @@ -47,13 +47,6 @@ > > No version information found in this file. > > -Notes at offset 0x00000190 with length 0x00000ca0: > +Notes at offset 0x00000190 with length 0x0000001c: > Owner Data size Description > - CORE 0x00000150 NT_PRSTATUS (prstatus structure) > - CORE 0x00000150 NT_PRSTATUS (prstatus structure) > - CORE 0x00000150 NT_PRSTATUS (prstatus structure) > - CORE 0x00000150 NT_PRSTATUS (prstatus structure) > - QEMU 0x000001b0 Unknown note type: (0x00000000) > - QEMU 0x000001b0 Unknown note type: (0x00000000) > - QEMU 0x000001b0 Unknown note type: (0x00000000) > - QEMU 0x000001b0 Unknown note type: (0x00000000) > + NONE 0x00000005 Unknown note type: (0x00000000) - The vmcore was checked with "crash" too, again comparing the results against a vmcore written by qmp_dump_guest_memory(): > --- guest.vmcore.log2 2013-09-12 17:52:27.074289201 +0200 > +++ example.dump.log2 2013-09-12 17:52:15.904289203 +0200 > @@ -22,11 +22,11 @@ > This GDB was configured as "x86_64-unknown-linux-gnu"... > > KERNEL: /usr/lib/debug/lib/modules/2.6.32-358.el6.x86_64/vmlinux > - DUMPFILE: /home/lacos/tmp/guest.vmcore > + DUMPFILE: /home/lacos/tmp/example.dump > CPUS: 4 > - DATE: Thu Sep 12 17:16:11 2013 > - UPTIME: 00:01:09 > -LOAD AVERAGE: 0.07, 0.03, 0.00 > + DATE: Thu Sep 12 17:17:41 2013 > + UPTIME: 00:00:38 > +LOAD AVERAGE: 0.18, 0.05, 0.01 > TASKS: 130 > NODENAME: localhost.localdomain > RELEASE: 2.6.32-358.el6.x86_64 > @@ -38,12 +38,12 @@ > COMMAND: "swapper" > TASK: ffffffff81a8d020 (1 of 4) [THREAD_INFO: ffffffff81a00000] > CPU: 0 > - STATE: TASK_RUNNING (PANIC) > + STATE: TASK_RUNNING (ACTIVE) > + WARNING: panic task not found > > crash> bt > PID: 0 TASK: ffffffff81a8d020 CPU: 0 COMMAND: "swapper" > - #0 [ffffffff81a01ed0] default_idle at ffffffff8101495d > - #1 [ffffffff81a01ef0] cpu_idle at ffffffff81009fc6 > + #0 [ffffffff81a01ef0] cpu_idle at ffffffff81009fc6 > crash> task ffffffff81a8d020 > PID: 0 TASK: ffffffff81a8d020 CPU: 0 COMMAND: "swapper" > struct task_struct { > @@ -75,7 +75,7 @@ > prev = 0xffffffff81a8d080 > }, > on_rq = 0, > - exec_start = 8618466836, > + exec_start = 7469214014, > sum_exec_runtime = 0, > vruntime = 0, > prev_sum_exec_runtime = 0, > @@ -149,7 +149,7 @@ > }, > tasks = { > next = 0xffff88002d621948, > - prev = 0xffff880029618f28 > + prev = 0xffff880023b74488 > }, > pushable_tasks = { > prio = 140, > @@ -165,7 +165,7 @@ > } > }, > mm = 0x0, > - active_mm = 0xffff88002929b780, > + active_mm = 0xffff8800297eb980, > exit_state = 0, > exit_code = 0, > exit_signal = 0, > @@ -177,7 +177,7 @@ > sched_reset_on_fork = 0, > pid = 0, > tgid = 0, > - stack_canary = 2483693585637059287, > + stack_canary = 7266362296181431986, > real_parent = 0xffffffff81a8d020, > parent = 0xffffffff81a8d020, > children = { > @@ -224,14 +224,14 @@ > set_child_tid = 0x0, > clear_child_tid = 0x0, > utime = 0, > - stime = 3, > + stime = 2, > utimescaled = 0, > - stimescaled = 3, > + stimescaled = 2, > gtime = 0, > prev_utime = 0, > prev_stime = 0, > nvcsw = 0, > - nivcsw = 1000, > + nivcsw = 1764, > start_time = { > tv_sec = 0, > tv_nsec = 0 - <name_dropping>I asked for Dave Anderson's help with verifying the extracted vmcore, and his comments make me think I should post this.</name_dropping> Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 2d23d5edb5b23849c668dd729e4da7b2c63b163b Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Nov 6 19:56:58 2013 +0100 tcg/i386: cleanup useless #ifdef TCG_TARGET_HAS_movcond_i32 is always defined to 1 in tcg-target.h, so remove the corresponding #ifdef #endif sequence, left from a previous refactoring. Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 085bb5bb64069a16b843fca840f91cdfb3f40fda Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Nov 6 19:51:21 2013 +0100 tcg/i386: use movbe instruction in qemu_ldst routines The movbe instruction has been added on some Intel Atom CPUs and on recent Intel Haswell CPUs. It allows to load/store a value and at the same time bswap it. This patch detects the avaibility of this instruction and when available use it in the qemu load/store routines in replacement of load/store + bswap. Note that for 16-bit unsigned loads, movbe + movzw is basically the same as movzw + bswap, so the patch doesn't touch this case. Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> [RTH: Reduced the number of conditionals using "movop".] Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2a1137753f9618283ac40394a75976d18f608e39 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Nov 6 19:49:08 2013 +0100 tcg/i386: add support for three-byte opcodes Add support for three-byte opcodes, starting with the 0x0f 0x38 prefix. Use P_EXT38 as the new constant, and shift all other constants so that P_EXT and P_EXT38 have neighbouring values. Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> [RTH: Changed the name from P_EXT2 to P_EXT38.] Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c9d78213b8bf6e0da9ff30b53c33e93fb0373249 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Nov 6 18:32:23 2013 +0100 tcg/i386: remove hardcoded P_REXW value P_REXW is defined has a constant at the beginning of i386/tcg-target.c, but the corresponding bit is later used in a harcoded way, which defeat the purpose of a constant. Fix that by using a conditional expression operator instead of a shift. On x86 this actually makes the code slightly smaller as GCC does in practice (opc >> 8) & 8 instead of (opc & 0x800) >> 8 so the constants are smaller to load. Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ba00599cc32626b53ba151c627a763518c76c49f Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Nov 6 18:31:43 2013 +0100 disas/i386.c: disassemble movbe instruction Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0169c511554cb0014a00290b0d3d26c31a49818f Merge: 1c51e68 439d19f Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 24 15:52:44 2014 -0800 Merge remote-tracking branch 'qemu-kvm/uq/master' into staging * qemu-kvm/uq/master: kvm: always update the MPX model specific register KVM: fix addr type for KVM_IOEVENTFD KVM: Retry KVM_CREATE_VM on EINTR mempath prefault: fix off-by-one error kvm: x86: Separately write feature control MSR on reset roms: Flush icache when writing roms to guest memory target-i386: clear guest TSC on reset target-i386: do not special case TSC writeback target-i386: Intel MPX Conflicts: exec.c aliguori: fix trivial merge conflict in exec.c Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 1c51e68b182bb335464bb19ad2517fd43c58c127 Merge: 7d64b2c 918b94e Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 24 15:52:16 2014 -0800 Merge remote-tracking branch 'otubo/seccomp' into staging * otubo/seccomp: seccomp: add some basic shared memory syscalls to the whitelist seccomp: add mkdir() and fchmod() to the whitelist Message-id: 1390231004-18392-1-git-send-email-otubo@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 7d64b2c2e22d956b358a97323f0d70060dcd9a06 Merge: 14ac4fe 2777ccc Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 24 15:52:08 2014 -0800 Merge remote-tracking branch 'sweil/tags/for_anthony' into staging Initial patch for QEMU GTK support on Windows # gpg: Signature made Mon 20 Jan 2014 11:37:58 AM PST using RSA key ID FAD62069 # gpg: Can't check signature: public key not found * sweil/tags/for_anthony: gtk: Support keyboard translation for hosts running Windows Message-id: 1390246909-18757-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 14ac4febb22b4083a5a64b251ab15c94d7d65833 Merge: f4b2779 39e6a38 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 24 15:51:38 2014 -0800 Merge remote-tracking branch 'kraxel/tags/pull-audio-2' into staging hda-codec: disable streams on reset # gpg: Signature made Tue 21 Jan 2014 02:17:12 AM PST using RSA key ID D3E87138 # gpg: Can't check signature: public key not found * kraxel/tags/pull-audio-2: hda-codec: disable streams on reset Message-id: 1390299589-5082-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit f4b27793a8b948178ced486d1d32d1919bea81b2 Merge: e9f526a 88678fb Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 24 15:51:23 2014 -0800 Merge remote-tracking branch 'kraxel/tags/pull-usb-2' into staging usb core+hid: add support for microsoft os descriptors # gpg: Signature made Tue 21 Jan 2014 02:21:29 AM PST using RSA key ID D3E87138 # gpg: Can't check signature: public key not found * kraxel/tags/pull-usb-2: usb-hid: add microsoft os descriptor support usb: add support for microsoft os descriptors Message-id: 1390299772-5368-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit e9f526ab7b01662c323a47446e22308968221ac1 Merge: 0d688cf 1cb27d9 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 24 15:50:14 2014 -0800 Merge remote-tracking branch 'bonzini/scsi-next' into staging * bonzini/scsi-next: scsi: Support TEST UNIT READY in the dummy LUN0 block: add .bdrv_reopen_prepare() stub for iscsi virtio-scsi: Prevent assertion on missed events virtio-scsi: Cleanup of I/Os that never started scsi: Assign cancel_io vector for scsi_disk_emulate_ops Conflicts: block/iscsi.c aliguori: resolve trivial merge conflict in block/iscsi.c Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0d688cf7d8d71bce2aab83173552a784e96b6729 Merge: 732c66c d510358 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 24 15:43:30 2014 -0800 Merge remote-tracking branch 'kwolf/tags/for-anthony' into staging Block patches # gpg: Signature made Fri 24 Jan 2014 08:40:53 AM PST using RSA key ID C88F2FD6 # gpg: Can't check signature: public key not found * kwolf/tags/for-anthony: (93 commits) block: Switch bdrv_io_limits_intercept() to byte granularity qemu-iotests: Test pwritev RMW logic qemu-io: New command 'sleep' blkdebug: Make required alignment configurable iscsi: Set bs->request_alignment block: Make bdrv_pwrite() a bdrv_prwv_co() wrapper block: Make bdrv_pread() a bdrv_prwv_co() wrapper block: Change coroutine wrapper to byte granularity block: Assert serialisation assumptions in pwritev block: Align requests in bdrv_co_do_pwritev() block: Allow wait_serialising_requests() at any point block: Make overlap range for serialisation dynamic block: Generalise and optimise COR serialisation block: Make zero-after-EOF work with larger alignment block: Allow waiting for overlapping requests between begin/end block: Switch BdrvTrackedRequest to byte granularity block: Introduce bdrv_co_do_pwritev() block: write: Handle COR dependency after I/O throttling block: Introduce bdrv_aligned_pwritev() block: Introduce bdrv_co_do_preadv() ... Message-id: 1390584136-24703-1-git-send-email-kwolf@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit d5103588aa39157c8eea3bb5fb6780bbd8be21b7 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Jan 16 13:29:10 2014 +0100 block: Switch bdrv_io_limits_intercept() to byte granularity Request sizes used to be rounded down to the next sector boundary, allowing to bypass the I/O limit. Now all requests are accounted for with their exact byte size. Reported-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 9e1cb96d9a5e434f389a4d7b7ff4dcdd71e8ec0f Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Jan 14 15:37:03 2014 +0100 qemu-iotests: Test pwritev RMW logic Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit cd33d02a1012e58ee0d3c8259159e8c60cfa0a4d Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Jan 15 15:39:10 2014 +0100 qemu-io: New command 'sleep' There is no easy way to check that a request correctly waits for a different request. With a sleep command we can at least approximate it. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b35ee7fb2308e09092488029b5a9e456ce61bbe6 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Jan 14 13:44:35 2014 +0100 blkdebug: Make required alignment configurable The new 'align' option of blkdebug can be used in order to emulate backends with a required 4k alignment on hosts which only really require 512 byte alignment. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2c9880c45e2f9a98d11d44ce9966515c23870a86 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Nov 29 12:41:35 2011 +0100 iscsi: Set bs->request_alignment The iSCSI backend already gets the block size from the READ CAPACITY command it sends. Save it so that the generic block layer gets it too. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 8407d5d7e265911b05949ee2ffd9e45c97bf0505 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Dec 5 12:34:02 2013 +0100 block: Make bdrv_pwrite() a bdrv_prwv_co() wrapper Instead of implementing the alignment adjustment here, use the now existing functionality of bdrv_co_do_pwritev(). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit a3ef65718506fb94cb9e5a903ef9bf9ad8fbe6de Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Dec 5 12:29:59 2013 +0100 block: Make bdrv_pread() a bdrv_prwv_co() wrapper Instead of implementing the alignment adjustment here, use the now existing functionality of bdrv_co_do_preadv(). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 775aa8b6e0ea25f8cca74d0fcb1e30a764cf624f Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Dec 5 12:09:38 2013 +0100 block: Change coroutine wrapper to byte granularity Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 28de2dcd88de31f50bbd43d9c2fcb046c3a727cb Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Jan 14 11:41:35 2014 +0100 block: Assert serialisation assumptions in pwritev If a request calls wait_serialising_requests() and actually has to wait in this function (i.e. a coroutine yield), other requests can run and previously read data (like the head or tail buffer) could become outdated. In this case, we would have to restart from the beginning to read in the updated data. However, we're lucky and don't actually need to do that: A request can only wait in the first call of wait_serialising_requests() because we mark it as serialising before that call, so any later requests would wait. So as we don't wait in practice, we don't have to reload the data. This is an important assumption that may not be broken or data corruption will happen. Document it with some assertions. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 3b8242e0ea2a2c201ef3d1bd24080490dae33080 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Dec 3 16:34:41 2013 +0100 block: Align requests in bdrv_co_do_pwritev() This patch changes bdrv_co_do_pwritev() to actually be what its name promises. If requests aren't properly aligned, it performs a RMW. Requests touching the same block are serialised against the RMW request. Further optimisation of this is possible by differentiating types of requests (concurrent reads should actually be okay here). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 6460440f34c709461b84375cfd8a86b27d433225 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Dec 13 13:04:35 2013 +0100 block: Allow wait_serialising_requests() at any point We can only have a single wait_serialising_requests() call per request because otherwise we can run into deadlocks where requests are waiting for each other. The same is true when wait_serialising_requests() is not at the very beginning of a request, so that other requests can be issued between the start of the tracking and wait_serialising_requests(). Fix this by changing wait_serialising_requests() to ignore requests that are already (directly or indirectly) waiting for the calling request. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 7327145f63a224c9ba9c16d0c29781feffef8dc6 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Dec 4 17:08:50 2013 +0100 block: Make overlap range for serialisation dynamic Copy on Read wants to serialise with all requests touching the same cluster, so wait_serialising_requests() rounded to cluster boundaries. Other users like alignment RMW will have different requirements, though (requests touching the same sector), so make it dynamic. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 2dbafdc012d3ea81a97fec6226ca82d644539c9a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Dec 4 16:43:44 2013 +0100 block: Generalise and optimise COR serialisation Change the API so that specific requests can be marked serialising. Only these requests are checked for overlaps then. This means that during a Copy on Read operation, not all requests overlapping other requests are serialised any more, but only those that actually overlap with the specific COR request. Also remove COR from function and variable names because this functionality can be useful in other contexts. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit ec746e10cb2e6276a8d2e036454792fe0674864a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Dec 4 12:13:10 2013 +0100 block: Make zero-after-EOF work with larger alignment Odd file sizes could make bdrv_aligned_preadv() shorten the request in non-aligned ways. Fix it by rounding to the required alignment instead of 512 bytes. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 65afd211c71fc91750d8a18f9604c1e57a5202fb Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Dec 3 14:55:55 2013 +0100 block: Allow waiting for overlapping requests between begin/end Previously, it was not possible to use wait_for_overlapping_requests() between tracked_request_begin()/end() because it would wait for itself. Ignore the current request in the overlap check and run more of the bdrv_co_do_preadv/pwritev code with a BdrvTrackedRequest present. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 793ed47a7a2b09b67cb2a8863dff531436532b5c Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Dec 3 15:31:25 2013 +0100 block: Switch BdrvTrackedRequest to byte granularity Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 6601553e27091ffe240bea69227adce941fe12e8 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Dec 3 14:40:18 2013 +0100 block: Introduce bdrv_co_do_pwritev() This is going to become the bdrv_co_do_preadv() equivalent for writes. In this patch, however, just a function taking byte offsets is created, it doesn't align anything yet. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 244eadef5c797c674b0aef96366671be4b33d03a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Dec 3 14:30:44 2013 +0100 block: write: Handle COR dependency after I/O throttling First waiting for all COR requests to complete and calling the throttling function afterwards means that the request could be delayed and we still need to wait for the COR request even if it was issued only after the throttled write request. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit b404f72036716ab8ace04b83a8f0a93be4739a6a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Dec 3 14:02:23 2013 +0100 block: Introduce bdrv_aligned_pwritev() This separates the part of bdrv_co_do_writev() that needs to happen before the request is modified to match the backend alignment, and a part that needs to be executed afterwards and passes the request to the BlockDriver. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 1b0288ae7fc695a8e652973f75e92464bbc13416 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Dec 2 16:09:46 2013 +0100 block: Introduce bdrv_co_do_preadv() Similar to bdrv_pread(), which aligns byte-aligned request to 512 byte sectors, bdrv_co_do_preadv() takes a byte-aligned request and aligns it to the alignment specified in bs->request_alignment. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit d0c7f642f5eb2cb21d0c3acf766cb375eaaf4666 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Dec 2 15:07:48 2013 +0100 block: Introduce bdrv_aligned_preadv() This separates the part of bdrv_co_do_readv() that needs to happen before the request is modified to match the backend alignment, and a part that needs to be executed afterwards and passes the request to the BlockDriver. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit c25f53b06eba1575d5d0e92a0132455c97825b83 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Nov 29 12:42:20 2011 +0100 raw: Probe required direct I/O alignment Add a bs->request_alignment field that contains the required offset/length alignment for I/O requests and fill it in the raw block drivers. Use ioctls if possible, else see what alignment it takes for O_DIRECT to succeed. While at it, also expose the memory alignment requirements, which may be (and in practice are) different from the disk alignment requirements. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 1b7fd729559c6d3b273303aa48bc653ceef08747 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Nov 29 11:35:47 2011 +0100 block: rename buffer_alignment to guest_block_size The alignment field is now set to the value that is promised to the guest, rather than required by the host. The next patches will make QEMU aware of the host-provided values, so make this clear. The alignment is also not about memory buffers, but about the sectors on the disk, change the documentation of the field. At this point, the field is set by the device emulation, but completely ignored by the block layer. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 339064d5063924e5176842abbf6c8089f3479c5b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Nov 28 10:23:32 2013 +0100 block: Don't use guest sector size for qemu_blockalign() bs->buffer_alignment is set by the device emulation and contains the logical block size of the guest device. This isn't something that the block layer should know, and even less something to use for determining the right alignment of buffers to be used for the host. The new BlockLimits field opt_mem_alignment tells the qemu block layer the optimal alignment to be used so that no bounce buffer must be used in the driver. This patch may change the buffer alignment from 4k to 512 for all callers that used qemu_blockalign() with the top-level image format BlockDriverState. The value was never propagated to other levels in the tree, so in particular raw-posix never required anything else than 512. While on disks with 4k sectors direct I/O requires a 4k alignment, memory may still be okay when aligned to 512 byte boundaries. This is what must have happened in practice, because otherwise this would already have failed earlier. Therefore I don't expect regressions even with this intermediate state. Later, raw-posix can implement the hook and expose a different memory alignment requirement. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 1ff735bdc417945bc6df1857861b127644b3f461 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Dec 5 13:01:46 2013 +0100 block: Detect unaligned length in bdrv_qiov_is_aligned() For an O_DIRECT request to succeed, it's not only necessary that all base addresses in the qiov are aligned, but also that each length in it is aligned. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit e5354657a626b325c31888f33de88ac6d39e2fcb Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Nov 29 21:29:17 2013 +0100 qemu_memalign: Allow small alignments The functions used by qemu_memalign() require an alignment that is at least sizeof(void*). Adjust it if it is too small. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoît Canet <benoit@xxxxxxxxxxx> commit 355ef4ac95a7a47d5c7201ccd910056a100d2fdf Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Dec 11 20:14:09 2013 +0100 block: Update BlockLimits when they might have changed When reopening with different flags, or when backing files disappear from the chain, the limits may change. Make sure they get updated in these cases. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoît Canet <benoit@xxxxxxxxxxx> commit 466ad822deef3a03757d505218a52993c5d56b5d Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Dec 11 19:50:32 2013 +0100 block: Inherit opt_transfer_length When there is a format driver between the backend, it's not guaranteed that exposing the opt_transfer_length for the format driver results in the optimal requests (because of fragmentation etc.), but it can't make things worse, so let's just do it. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoît Canet <benoit@xxxxxxxxxxx> commit d34682cd4a06efe9ee3fc8cb7e8a0ea445299989 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Dec 11 19:26:16 2013 +0100 block: Move initialisation of BlockLimits to bdrv_refresh_limits() This function separates filling the BlockLimits from bdrv_open(), which allows it to call it from other operations which may change the limits (e.g. modifications to the backing file chain or bdrv_reopen) Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit dabfa6cc2e2a06269026fcb42772894f67bd0c3e Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Jan 24 14:00:43 2014 +0100 block: Fix bdrv_commit return value bdrv_commit() could return 0 or 1 on success, depending on whether or not the last sector was allocated in the overlay and whether the overlay format had a .bdrv_make_empty callback. Most callers ignored it, but qemu-img commit would print an error message while the operation actually succeeded. Also clean up the handling of I/O errors to return the real error code instead of -EIO. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 37222900743962e146a82b7077a18c3f39859a19 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Fri Jan 24 09:02:37 2014 -0500 block: update block commit documentation regarding image truncation This updates the documentation for commiting snapshot images. Specifically, this highlights what happens when the base image is either smaller or larger than the snapshot image being committed. In the case of the base image being smaller, it is resized to the larger size of the snapshot image. In the case of the base image being larger, it is not resized automatically, but once the commit has completed it is safe for the user to truncate the base image. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4da83585961631bfc10831dd26c4afda2a8b23e8 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Fri Jan 24 09:02:36 2014 -0500 block: resize backing image during active layer commit, if needed If the top image to commit is the active layer, and also larger than the base image, then an I/O error will likely be returned during block-commit. For instance, if we have a base image with a virtual size 10G, and a active layer image of size 20G, then committing the snapshot via 'block-commit' will likely fail. This will automatically attempt to resize the base image, if the active layer image to be committed is larger. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 72706ea4cd38bfcb151265df0178ba21863d7518 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Fri Jan 24 09:02:35 2014 -0500 block: resize backing file image during offline commit, if necessary Currently, if an image file is logically larger than its backing file, committing it via 'qemu-img commit' will fail. For instance, if we have a base image with a virtual size 10G, and a snapshot image of size 20G, then committing the snapshot offline with 'qemu-img commit' will likely fail. This will automatically attempt to resize the base image, if the snapshot image to be committed is larger. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 031fd1be5618c347f9aeb44ec294f14a541e42b2 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Jan 24 14:56:17 2014 +0100 block/curl: Implement the libcurl timer callback interface libcurl versions 7.16.0 and later have a timer callback interface which must be implemented in order for libcurl to make forward progress (it will sometimes rely on being called back on the timeout if there are no file descriptors registered). Implement the callback, and use a QEMU AIO timer to ensure we prod libcurl again when it asks us to. Based on Peter's original patch plus my fix to add curl_multi_timeout_do. Should compile just fine even on older versions of libcurl. I also tried copy-on-read and streaming: $ ./qemu-img create -f qcow2 -o \ backing_file=http://download.fedoraproject.org/pub/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso \ foo.qcow2 1G $ x86_64-softmmu/qemu-system-x86_64 \ -drive if=none,file=foo.qcow2,copy-on-read=on,id=cd \ -device ide-cd,drive=cd --enable-kvm -m 1024 Direct http usage is probably too slow, but with copy-on-read ultimately the image does boot! After some time, streaming gets canceled by an EIO, which needs further investigation. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 0901f67ecdb74d9ba1451e3b4367194cd43f96b4 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Thu Jan 23 21:31:38 2014 +0100 qmp: Allow to take external snapshots on bs graphs node. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3b1dbd11a60d75e99af5fc9b73c34f4af9d4f510 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Thu Jan 23 21:31:37 2014 +0100 qmp: Allow block_resize to manipulate bs graph nodes. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 212a5a8f095de9a1624de6b4a589d60688b02747 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Thu Jan 23 21:31:36 2014 +0100 block: Create authorizations mechanism for external snapshot and resize. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 12d3ba821da9f8a039240a8a1bc01e27a12f9c22 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Thu Jan 23 21:31:35 2014 +0100 qmp: Allow to change password on named block driver states. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> There was two candidate ways to implement named node manipulation: 1) { 'command': 'block_passwd', 'data': {'*device': 'str', '*node-name': 'str', 'password': 'str'} } 2) { 'command': 'block_passwd', 'data': {'device': 'str', '*device-is-node': 'bool', 'password': 'str'} } Luiz proposed 1 and says 2 was an abuse of the QMP interface and proposed to rewrite the QMP block interface for 2.0. Luiz does not like in 1 the fact that 2 fields are optional but one of them must be specified leading to an abuse of the QMP semantic. Kevin argumented that 2 what a clear abuse of the device field and would not be practical when reading fast some log file because the user would read "device" and think that a device is manipulated when it's in fact a node name. Documentation of 1 make it pretty clear what to do for the user. Kevin argued that all bs are node including devices ones so 2 does not make sense. Kevin also argued that rewriting the QMP block interface would not make disapear the current one. Kevin pushed the argument that making the QAPI generator compatible with the semantic of the operation would need a rewrite that no one has done yet. A vote has been done on the list to elect the version to use and 1 won. For reference the complete thread is: "[Qemu-devel] [PATCH V4 4/7] qmp: Allow to change password on names block driver states." Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c13163fba151f0be5176eaf55907bc1dbff3a1d4 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Thu Jan 23 21:31:34 2014 +0100 qmp: Add QMP query-named-block-nodes to list the named BlockDriverState nodes. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 6913c0c2ce00c0e886b2bd20b05073090fa5308a Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Thu Jan 23 21:31:33 2014 +0100 block: Allow the user to define "node-name" option both on command line and QMP. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit dc364f4cdca0c49e37376b16c3ee0bf3b4a96f4c Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Thu Jan 23 21:31:32 2014 +0100 block: Add bs->node_name to hold the name of a bs node of the bs graph. Add the minimum of code to prepare for the following patches. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c8059b97e1f9b4635b836ee98373a0f72f9fc0b4 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Jan 23 10:03:26 2014 +0800 qapi: Add "backing" to BlockStats Currently there is no way to query BlockStats of the backing chain. This adds "backing" field into BlockStats to make it possible. The comment of "parent" is reworded. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d8a7b061ae01e5692cc994f05ad6480d8c170125 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Jan 23 15:10:52 2014 +0800 vmdk: Fix format specific information (create type) for streamOptimized Previously the field is wrong: $ ./qemu-img create -f vmdk -o subformat=streamOptimized /tmp/a.vmdk 1G $ ./qemu-img info /tmp/a.vmdk image: /tmp/a.vmdk file format: vmdk virtual size: 1.0G (1073741824 bytes) disk size: 12K Format specific information: cid: 1390460459 parent cid: 4294967295 >>> create type: monolithicSparse <snip> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 6df3bf8eb3ed428015c85cfbd554ac9b32164f40 Author: Zhang Min <rudy.zhangmin@xxxxxxxxxx> Date: Thu Jan 23 15:59:16 2014 +0800 drive mirror:fix memory leak In the function mirror_iteration() -> qemu_iovec_init(), it allocates memory for op->qiov.iov, when the write request calls back, but in the function mirror_iteration_done(), it only frees the op, not free the op->qiov.iov, so this causes memory leak. It should use qemu_iovec_destroy() to free op->qiov. Signed-off-by: Zhang Min <rudy.zhangmin@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9cd767376f137918dbe90abb452dfe119ae7d8f3 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Wed Jan 22 01:14:11 2014 +0800 sheepdog: fix 'qemu-img map' It was muted in the previous commit 4bc74be9. Let's revive it since nothing prevents us to do it. With this patch, following command will work as other formats: $ qemu-img map sheepdog:image Cc: qemu-devel@xxxxxxxxxx Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 0e3bd9932f862c1c1e4926939b4d0c602ce214ef Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Jan 20 15:12:16 2014 +0100 Documentation: qemu-img: Mention SIGUSR1 progress report Document the SIGUSR1 behaviour of qemu-img. Also, added compare to the list of subcommands that support -p. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 3c4b4e383e82ab3db307ee01f12ab0d4a28584dc Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Jan 20 15:06:03 2014 +0100 qemu-progress: Fix progress printing on SIGUSR1 Since commit a7aae221 ('Switch SIG_IPI to SIGUSR1'), SIGUSR1 is blocked during startup, breaking the progress report in tools. This patch reenables the signal when initialising a progress report. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit e69968d472bd020a08c677c814237548090d2e59 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Jan 20 15:05:25 2014 +0100 qemu-progress: Drop unused include Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit 34ceed81f9ca31829448276dafe3d9151d66962c Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Jan 21 15:07:43 2014 +0800 vmdk: Check for overhead when opening Report an error if file size is even smaller than metadata. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 46bae927134468d27f5e2508c3ced67ff58fa45b Author: Hu Tao <hutao@xxxxxxxxxxxxxx> Date: Tue Jan 21 11:30:02 2014 +0800 qcow2: fix wrong value of L1E_OFFSET_MASK, L2E_OFFSET_MASK and REFT_OFFSET_MASK Accoring to qcow spec, the offset fields in l1e, l2e and ref table entry start at bit 9. The offset is cluster offset, and the smallest possible cluster size is 512 bytes. Signed-off-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 385c04d0b66917457b6a12fc2cfd99a6a40b2d89 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Jan 13 18:47:39 2014 +0800 dataplane: fix shadowed return value Propagate the error return value from get_indirect(). This bug was introduced in commit 4d684832 ("vring: create a common function to parse descriptors"). Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d80ac658f2caacfb14ea386211c4a9bea0cea280 Author: Peter Feiner <peter@xxxxxxxxxxxxxx> Date: Wed Jan 8 19:43:25 2014 +0000 block: fix backing file segfault When a backing file is opened such that (1) a protocol is directly used as the block driver and (2) the block driver has bdrv_file_open, bdrv_open_backing_file segfaults. The problem arises because bdrv_open_common returns without setting bd->backing_hd->file. To effect (1), you seem to have to use the -F flag in qemu-img. There are several block drivers that satisfy (2), such as "file" and "nbd". Here are some concrete examples: #!/bin/bash echo Test file format ./qemu-img create -f file base.file 1m ./qemu-img create -f qcow2 -F file -o backing_file=base.file\ file-overlay.qcow2 ./qemu-img convert -O raw file-overlay.qcow2 file-convert.raw echo Test nbd format SOCK=$PWD/nbd.sock ./qemu-img create -f raw base.raw 1m ./qemu-nbd -t -k $SOCK base.raw & trap "kill $!" EXIT while ! test -e $SOCK; do sleep 1; done ./qemu-img create -f qcow2 -F nbd -o backing_file=nbd:unix:$SOCK\ nbd-overlay.qcow2 ./qemu-img convert -O raw nbd-overlay.qcow2 nbd-convert.raw Without this patch, the two qemu-img convert commands segfault. This is a regression that was introduced in v1.7 by dbecebddfa4932d1c83915bcb9b5ba5984eb91be. Signed-off-by: Peter Feiner <peter@xxxxxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 91f84f652de14329d5ad0666499a78fd0db0f1c7 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:24 2013 +0100 iotests: Test file format nesting Add a test for nested image formats. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 30bd6a4dafe2f79909451ef5769561c9a9d3eaca Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:23 2013 +0100 iotests: Test new blkdebug/blkverify interface Add a test for the new blkdebug/blkverify interface. This test is not written in Python, although it uses QMP. This is because it invokes the qemu-io HMP command, which outputs errors to stderr instead of returning them through QMP. Filtering and testing that output is easier in a shell script than with the Python infrastructure. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3fb11779ca5f1d601adeb5870ba79e61e81a4cce Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:22 2013 +0100 tests: Add test for qdict_flatten() Add a test case for qdict_flatten() in tests/check-qdict.c. This test case covers the flattening of subordinate QLists as well. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit be331341a1f35c2de2fcc05cc78e0342d2edeb8a Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:21 2013 +0100 tests: Add test for qdict_array_split() Add a test case for qdict_array_split() in tests/check-qdict.c. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit fd0fee34b5ae7699dc558c12ddc3663bdb580060 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:20 2013 +0100 qemu-io: Make filename optional Giving a filename is actually not essential, since it can be specified through the options as well - on the contrary: Sometimes a filename must not be given. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1bf20b8280186299c750018bbfa3b52f4afd71ea Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:19 2013 +0100 qapi: QMP interface for blkdebug and blkverify Add structures to support blkdebug and blkverify in blockdev-add. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8592a545b61b99114a86ee7cecef7a5f284d1b6c Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:18 2013 +0100 qapi: Add "errno" to the list of polluted words Using "errno" directly as an identifier results in various syntax errors; therefore it should be added to the list of polluted words. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 22511ad681348cc4e500ebafdc324b0909d41c95 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:17 2013 +0100 blkverify: Don't require protocol filename If the filename is not prefixed by "blkverify:" in blkverify_parse_filename(), the blkverify driver was not selected through that protocol prefix, but by an explicit command line (or QMP) option (like driver=blkverify). If blkverify_parse_filename() has been called, a filename has been given. If it is not prefixed, it is probably really just a plain filename. This is no problem, since we can use it as the test image filename and rely on the user to specify the raw image filename through the new corresponding option. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 70b6198acc9643c3ce801e5cf4c24274722f2f4a Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:16 2013 +0100 blkverify: Allow command-line configuration Introduce the "test" and "raw" options for specifying images. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4373593d5111a8ed3b6d47ad4a458ee28ec942e3 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:15 2013 +0100 blkdebug: Allow command-line file configuration Introduce the "image" option as an alternative to specifying the image through the filename. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d095b465339b79929fd2adc25c0ab3598e80fd39 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:14 2013 +0100 blockdev: Move "file" to legacy_opts Specifying the image filename through the "file" option is a legacy option and should not be supported by blockdev-add (in that case, giving a string for "file" references an existing block device). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 505d758334afcee07eb40aa1b33f2353c612c8ec Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:13 2013 +0100 block: Allow recursive "file"s It should be possible to use a format as a driver for a file which in turn requires another file, i.e., nesting file formats. Allowing nested file formats results in e.g. qcow2 BlockDriverStates never being directly passed to bdrv_open_common() from bdrv_file_open(), but instead being handed through bdrv_open(). This changes the error message when trying to give a filename to qcow2, i.e. trying to use it as a driver for the protocol level. Therefore, change the reference output of I/O test 051 accordingly. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 054963f8f082695ecb1f169024c83ce3e4eea3d8 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:12 2013 +0100 block: Use bdrv_open_image() in bdrv_open() Using bdrv_open_image() instead of bdrv_file_open() directly in bdrv_open() is easier. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit da557aac181fa71fde6a2a7c7a1eb2aea20caf64 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:11 2013 +0100 block: Add bdrv_open_image() Add a common function for opening images to be used for block drivers specified through BlockdevRefs in an option QDict. The difference from bdrv_file_open() is that this function may invoke bdrv_open() instead, allowing auto-detection of the driver to be used; and second, it automatically extracts the BlockdevRef from the option QDict. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2a05cbe426a7a3ddec63dbc67c9ac93013aebf77 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:10 2013 +0100 block: Allow block devices without files blkdebug and blkverify will, in order to retain compatibility, not support the field "file" implicitly through bdrv_open(). In order to be able to use those drivers without giving a filename anyway, it is necessary to be able to have block devices without files implicitly opened by bdrv_open(). This is the case, if there was neither a file name, a reference to an existing block device to use as a file nor options specific to the file. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2258e3fe20990a13c9aa2c1adccafae073b7ce13 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:09 2013 +0100 block: Pass reference to bdrv_file_open() With that now being possible, bdrv_open() should try to extract a block device reference from the options and pass it to bdrv_file_open(). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 72daa72eeecb6b2ee06ab7d836ac3aa01ad7e6df Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:08 2013 +0100 block: Allow reference for bdrv_file_open() Allow specifying a reference to an existing block device (by name) for bdrv_file_open() instead of a filename and/or options. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 89f2b21e36cce948c39fa7cf24226f6e5f042cc8 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:07 2013 +0100 blkdebug: Use command-line in read_config() Use qemu_config_parse_qdict() to parse the command-line options in addition to the config file. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 85a040e5485413333da4fcf98bc8b28c92fa623f Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:06 2013 +0100 blkdebug: Always call read_config() Move the check whether there actually is a config file into the read_config() function. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit adf5c449e5beb163999e4ba7366d5f9aebb504a1 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:05 2013 +0100 qemu-option: Add qemu_config_parse_qdict() This function basically parses command-line options given as a QDict replacing a config file. For instance, the QDict {"section.opt1": 42, "section.opt2": 23} corresponds to the config file: [section] opt1 = 42 opt2 = 23 It is possible to specify multiple sections and also multiple sections of the same type. On the command line, this looks like the following: inject-error.0.event=reftable_load,\ inject-error.1.event=l2_load,\ set-state.event=l1_update This would correspond to the following config file: [inject-error "inject-error.0"] event = reftable_load [inject-error "inject-error.1"] event = l2_load [set-state] event = l1_update Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9f23fc0c23ab16e9c16b41ed300786924f7a7768 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:04 2013 +0100 qapi: extend qdict_flatten() for QLists Reversing qdict_array_split(), qdict_flatten() should flatten QLists as well by interpreting them as QDicts where every entry's key is its index. This allows bringing QDicts with QLists from QMP commands to the same form as they would be given as command-line options, thereby allowing them to be parsed the same way. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 05a8c2227157eda2540404999c4615d3bf343c18 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:03 2013 +0100 qdict: Add qdict_array_split() This function splits a QDict consisting of entries prefixed by incrementally enumerated indices into a QList of QDicts. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d4881b9bcbbadc83ffa5d8e6d2d6deb36cd8faa6 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:02 2013 +0100 blkdebug: Don't require sophisticated filename If the filename is not prefixed by "blkdebug:" in blkdebug_parse_filename(), the blkdebug driver was not selected through that protocol prefix, but by an explicit command line option (file.driver=blkdebug or something similar). Contrary to the current reaction, this is not a problem at all; we just need to store the filename (in the x-image option) and can go on; the user just has to manually specify the config option. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 466b49f276310952ad64485d8b9fa87a5c8a9451 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Dec 20 19:28:01 2013 +0100 blkdebug: Use errp for read_config() Use an Error variable in the read_config() function. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4694020d3c0d21f02408d5cc6f44b8fb55b4ee15 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Nov 14 11:54:18 2013 +0100 qemu-io: add command completion Autocomplete qemu-io commands at the interactive prompt. Note this only completes command names and not their options. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 0cf17e181798063c3824c8200ba46f25f54faa1a Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Nov 14 11:54:17 2013 +0100 qemu-io: use readline.c Use readline.c for command-line history. There was support for GNU Readline and BSD Editline but it was never compiled in. Since QEMU has its own readline.c, just use that when qemu-io runs with stdin attached to a terminal. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 13401ba0b982024b62a99388032bbb889dc98b43 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Nov 14 11:54:16 2013 +0100 osdep: add qemu_set_tty_echo() Using stdin with readline.c requires disabling echo and line buffering. Add a portable wrapper to set the terminal attributes under Linux and Windows. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 0150cd81cf608b93778a067189829f354fe27e4b Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Nov 14 11:54:15 2013 +0100 readline: move readline to a generic location Now that the monitor and readline are decoupled, readline.h no longer belongs in include/monitor/. Put the header into include/qemu/. Move the source file into util/ so it can be linked as part of libqemuutil.a. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c60bf3391bf4cb79b7adc6650094e21671ddaabd Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Nov 14 11:54:14 2013 +0100 readline: decouple readline from the monitor Make the readline.c functionality reusable. Instead of calling monitor_printf() and monitor_flush() directly, invoke function pointers provided by the user. This way readline.c does not know about Monitor and other users will be able to make use of readline.c. Note that there is already an "opaque" argument to the ReadLineFunc callback. Consistently call it "readline_opaque" from now on to distinguish from the ReadLinePrintfFunc/ReadLineFlushFunc "opaque" argument. I also dropped the printf macro trickery since it's now highly unlikely that anyone modifying readline.c would call printf(3) directly. We no longer need this protection. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 585ea0c841df47c1542d33e17c5c6d532316ef74 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Jan 8 09:42:07 2014 +0800 vmdk: Fix big flat extent IO Local variable "n" as int64_t avoids overflow with large sector number calculation. See test case change for failure case. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7fa9e1f941b4be1f71bb42de2f2ed8805d7e7326 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Jan 6 12:39:01 2014 +0800 docs: qcow2 compat=1.1 is now the default Commit 9117b47717ad208b12786ce88eacb013f9b3dd1c ("qcow2: Change default for new images to compat=1.1") changed the default qcow2 image format version but forgot to update qemu-doc.texi and qemu-img.texi. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b7fcff01790d25f48d81ef6c8c3399577096a555 Author: Kewei Yu <keweihk@xxxxxxxxx> Date: Mon Jan 6 14:05:24 2014 +0800 qtest: Fix the bug about disable vnc causes "make check" fail When we disable vnc from "./configure", QEMU can't use the vnc option. So qtest can't use the "vnc -none ", otherwise "make check" fails. If QEMU uses "-display none", "-vnc none" is excrescent, So we just need to drop it. Signed-off-by: Kewei Yu <keweihk@xxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9f23fce7b2e78b917f03ccd366e3e151c0a1a419 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Fri Jan 3 20:13:12 2014 +0800 sheepdog: fix clone operation by 'qemu-img create -b' We should pass base_inode->vdi_id to base_vdi_id of SheepdogVdiReq so that sheep can create a clone instead a fresh volume. This fixes following command: qemu-create -b sheepdog:base sheepdog:clone so users can boot sheepdog:clone as a normal volume. Cc: qemu-devel@xxxxxxxxxx Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit cf7f616b9d846b1cc21c7b692b5c9ff6f757a5e7 Author: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Date: Sat Dec 21 14:51:26 2013 +0530 gluster: Add support for creating zero-filled image GlusterFS supports creation of zero-filled file on GlusterFS volume by means of an API called glfs_zerofill(). Use this API from QEMU to create an image that is filled with zeroes by using the preallocation option of qemu-img. qemu-img create gluster://server/volume/image -o preallocation=full 10G The allowed values for preallocation are 'full' and 'off'. By default preallocation is off and image is not zero-filled. glfs_zerofill() offloads the writing of zeroes to the server and if the storage supports SCSI WRITESAME, GlusterFS server can issue BLKZEROOUT ioctl to achieve the zeroing. Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7c815372f3b37754b2a568e82f0521c7f77a6f66 Author: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Date: Sat Dec 21 14:51:25 2013 +0530 gluster: Implement .bdrv_co_write_zeroes for gluster Support .bdrv_co_write_zeroes() from gluster driver by using GlusterFS API glfs_zerofill() that off-loads the writing of zeroes to GlusterFS server. Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 15744b0b8f63d624bdd5825011cd201541a62094 Author: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Date: Sat Dec 21 14:51:24 2013 +0530 gluster: Convert aio routines into coroutines Convert the read, write, flush and discard implementations from aio-based ones to coroutine based ones. Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 92397116a6789ed4455c6dacea0f378cae096d8d Author: Peter Lieven <pl@xxxxxxx> Date: Fri Dec 20 10:02:47 2013 +0100 block/iscsi: return -ENOMEM if an async call fails immediately if an async libiscsi call fails directly it can only be due to an out of memory condition. All other errors are returned through the callback. Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Ronnie Sahlberg <ronniesahlberg@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 487c1910023c83fa6d550a50c8ad7ee730e60bfa Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Nov 26 14:40:34 2013 +0800 qemu-iotests: Clean up all extents for vmdk This modifies _cleanup_test_img to remove all the extent files listed by "qemu-img info"'s format specific information. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d2329f27c9c8408d4134c7243313dbaa37270384 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Nov 26 14:40:33 2013 +0800 qemu-iotests: Add _unsupported_imgopts for vmdk subformats Some cases are not applicable for vmdk subformats those don't support certain features, e.g. backing file, and some others can't run on mult-file image, e.g. monolithicFlat. This adds declaration in test cases to skip them automatically, so that iotests on vmdk can go more smoothly (without manually picking of cases for each subformat). Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2c77f52e39ff2ba071e3b549ad7a3ebea0758edd Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Nov 26 14:40:32 2013 +0800 qemu-iotests: Introduce _unsupported_imgopts Introduce _unsupported_imgopts that causes _notrun for specific image options. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e04fb07fd1676e9facd7f3f878c1bbe03bccd26b Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Dec 5 16:38:33 2013 +0100 rbd: switch from pipe to QEMUBH completion notification rbd callbacks are called from non-QEMU threads. Up until now a pipe was used to signal completion back to the QEMU iothread. The pipe writer code handles EAGAIN using select(2). The select(2) API is not scalable since fd_set size is static. FD_SET() can write beyond the end of fd_set if the file descriptor number is too high. (QEMU's main loop uses poll(2) to avoid this issue with select(2).) Since the pipe itself is quite clumsy to use and QEMUBH is now thread-safe, just schedule a BH from the rbd callback function. This way we can simplify I/O completion in addition to eliminating the potential FD_SET() crash when file descriptor numbers become too high. Crash scenario: QEMU already has 1024 file descriptors open. Hotplug an rbd drive and get the pipe writer to take the select(2) code path. Reviewed-by: Josh Durgin <josh.durgin@xxxxxxxxxxx> Tested-by: Josh Durgin <josh.durgin@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 492044581c26ba9ace3af5c6abb2a911a23ad188 Author: Jason J. Herne <jjherne@xxxxxxxxxx> Date: Mon Jan 20 14:51:50 2014 -0500 s390-sclp: SCLP Event integration Add an sclp event for "cpu was hot plugged". This allows Qemu to deliver an SCLP interrupt to the guest stating that the requested cpu hotplug was completed. Signed-off-by: Jason J. Herne <jjherne@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 8cc3aecf8461bd38028ddb4a56a17d0a1583de36 Author: Jason J. Herne <jjherne@xxxxxxxxxx> Date: Mon Jan 20 14:51:49 2014 -0500 s390-sclp: SCLP CPU Info Implement the CPU data in SCLP "Read SCP Info". And implement "Read CPU Info" SCLP command. This data will be used by the guest to get information about hot plugged cpus. Signed-off-by: Jason J. Herne <jjherne@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 5f04c14a10fa7f259bc0808f35a0beda49f7821e Author: Jason J. Herne <jjherne@xxxxxxxxxx> Date: Mon Jan 20 14:51:48 2014 -0500 s390-sclp: Define New SCLP Codes Define new SCLP codes to improve code readability. Signed-off-by: Jason J. Herne <jjherne@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 2777ccc55bfe90bfa813b01faf36fa6ea16fbea8 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 16:25:17 2013 +0100 gtk: Support keyboard translation for hosts running Windows GTK uses different hardware keycodes on Windows hosts, so some special handling is needed to get the QEMU keycode. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 439d19f2922ac409ee224bc1e5522cee7009d829 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Jan 20 14:22:25 2014 +0100 kvm: always update the MPX model specific register The original patch from Liu Jinsong restricted them to reset or full state updates, but that's unnecessary (and wrong) since the BNDCFGS MSR has no side effects. Cc: Liu Jinsong <jinsong.liu@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 918b94e2873cd5fe8aef06d269b4a4c7d0832ce7 Author: Paul Moore <pmoore@xxxxxxxxxx> Date: Wed Jan 15 14:38:58 2014 -0500 seccomp: add some basic shared memory syscalls to the whitelist PulseAudio requires the use of shared memory so add shmget(), shmat(), and shmdt() to the syscall whitelist. Reported-by: xuhan@xxxxxxxxxx Signed-off-by: Paul Moore <pmoore@xxxxxxxxxx> commit 0c2acb163fbb4579dad2d45595570b0a9ff71149 Author: Paul Moore <pmoore@xxxxxxxxxx> Date: Wed Jan 15 14:38:51 2014 -0500 seccomp: add mkdir() and fchmod() to the whitelist The PulseAudio library attempts to do a mkdir(2) and fchmod(2) on "/run/user/<UID>/pulse" which is currently blocked by the syscall filter; this patch adds the two missing syscalls to the whitelist. You can reproduce this problem with the following command: # qemu -monitor stdio -device intel-hda -device hda-duplex If watched under strace the following syscalls are shown: mkdir("/run/user/0/pulse", 0700) fchmod(11, 0700) [NOTE: 11 is the fd for /run/user/0/pulse] Reported-by: xuhan@xxxxxxxxxx Signed-off-by: Paul Moore <pmoore@xxxxxxxxxx> commit 39e6a38cdd4b235b2918b4977f31fde2c0da3bc4 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 16 13:23:53 2013 +0100 hda-codec: disable streams on reset Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 8d7b5a1da0e06aa7addd7f084d9ec9d433c4bafb Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Jan 17 11:12:56 2014 -0700 vfio: fix mapping of MSIX bar VFIO virtualizes MSIX table for the guest but not mapping the part of a BAR which contains an MSIX table. Since vfio_mmap_bar() mmaps chunks before and after the MSIX table, they have to be aligned to the host page size which may be TARGET_PAGE_MASK (4K) or 64K in case of PPC64. This fixes boundaries calculations to use the real host page size. Without the patch, the chunk before MSIX table may overlap with the MSIX table and mmap will fail in the host kernel. The result will be serious slowdown as the whole BAR will be emulated by QEMU. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 47c16ed56aa6bc4037bdb7b61f049097993cd244 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Jan 17 11:12:07 2014 -0700 kvm: initialize qemu_host_page_size There is a HOST_PAGE_ALIGN macro which makes sense for KVM accelerator but it uses qemu_host_page_size/qemu_host_page_mask which initialized for TCG only. This moves qemu_host_page_size/qemu_host_page_mask initialization from TCG's page_init() and adds a call for it from kvm_init(). Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 794798e36eda77802ce7cc7d7d6b1c65751e8a76 Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> Date: Fri Jan 10 15:56:33 2014 +0000 xen_pt: Fix passthrough of device with ROM. QEMU does not need and should not allocate memory for the ROM of a passthrough PCI device. So this patch initialize the particular region like any other PCI BAR of a passthrough device. When a guest will access the ROM, Xen will take care of the IO, QEMU will not be involved in it. Xen set a limit of memory available for each guest, allocating memory for a ROM can hit this limit. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Reported-and-Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> commit fc33b9004c49f21f8188df5c4cd079a9a3d08de8 Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> Date: Fri Jan 10 15:52:54 2014 +0000 xen_pt: Fix debug output. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> commit 0193c62c94643a837832f2b5ccc133434ee740cb Author: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Date: Fri Jan 17 15:28:18 2014 +0000 xenfb: map framebuffer read-only and handle unmap errors The framebuffer is needlessly mapped (PROT_READ | PROT_WRITE), map it PROT_READ instead. The framebuffer is unmapped by replacing the framebuffer pages with anonymous shared memory, calling mmap. Check for return errors and print a warning. Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 732c66ce641c69702a7e7fdb73b68f0c1b583ab5 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 15 03:06:11 2014 -0800 Revert "error: Don't use error_report() for assertion msgs." This reverts commit d32934c84c72f57e78d430c22974677b7bcabe5d. The original implementation before this patch makes abortive error messages much more friendly. The underlying bug that required this change is now fixed. Revert. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 3dbe85b8404fa479ad0a75d5adb464949257f129 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 15 03:05:36 2014 -0800 tests: Add libqemustub to qom-interface-check The recent addition of util/error.c's dependency on error_report() causes this test to fail to link due to a number of missing monitor related symbols. All these symbols are however defined by libqemustub. Add this libary to the link. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 87ca1f77b1c406137fe36ab73b2dc91fb75f8d0a Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Thu Jan 16 09:22:07 2014 -0700 vfio-pci: Fail initfn on DMA mapping errors The vfio-pci initfn will currently succeed even if DMA mappings fail. A typical reason for failure is if the user does not have sufficient privilege to lock all the memory for the guest. In this case, the device gets attached, but can only access a portion of guest memory and is extremely unlikely to work. DMA mappings are done via a MemoryListener, which provides no direct error return path. We therefore stuff the errno into our container structure and check for error after registration completes. We can also test for mapping errors during runtime, but our only option for resolution at that point is to kill the guest with a hw_error. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit d3a2fd9b29e43e202315d5e99399b99622469c4a Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Thu Jan 16 09:22:07 2014 -0700 vfio: Filter out bogus mappings Since 57271d63 we now see spurious mappings with the upper bits set if 64bit PCI BARs are sized while enabled. The guest writes a mask of 0xffffffff to the lower BAR to size it, then restores it, then writes the same mask to the upper BAR resulting in a spurious BAR mapping into the last 4G of the 64bit address space. Most architectures do not support or make use of the full 64bits address space for PCI BARs, so we filter out mappings with the high bit set. Long term, we probably need to think about vfio telling us the address width limitations of the IOMMU. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 1cb27d9233d572826b45bd8498d2fab1b6f01df9 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Jan 16 13:06:13 2014 +0100 scsi: Support TEST UNIT READY in the dummy LUN0 SeaBIOS waits for LUN0 to respond to the TEST UNIT READY command in order to decide whether it should part of the boot sequence. If LUN0 does not respond to the command, boot is delayed by up to 5 seconds. This currently happens when there is no LUN0 on a target. Fix that by adding a trivial implementation of the command. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 88678fbd9dbf01fd0988bcb651508378d85e868a Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 20 07:33:50 2013 +0100 usb-hid: add microsoft os descriptor support Set SelectiveSuspendEnabled registy entry to one. This makes Windows use remote suspend by default, without manual registry fiddeling. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5319dc7b42610575cbd3a33f4340c1fb4f19b939 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 20 07:32:31 2013 +0100 usb: add support for microsoft os descriptors This patch adds support for special usb descriptors used by microsoft windows. They allow more fine-grained control over driver binding and adding entries to the registry for configuration. As this is a guest-visible change the "msos-desc" compat property has been added to turn this off for 1.7 + older Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 2c02d1ad48ad44cf00522df7d8de9138689fac85 Author: Kewei Yu <keweihk@xxxxxxxxx> Date: Tue Dec 31 18:36:08 2013 +0800 vl: Add a blank space between the variable and '=' Signed-off-by: Kewei Yu <keweihk@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 3babcc8704f593473ccd0f66d6e39c949c672477 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 28 08:31:11 2013 +0100 pc-bios: Remove execute flag from BIOS files BIOS files are not directly executable, so they don't need this flag. All other BIOS files don't use the execute flag. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit a39ca6a124267dcfc6bc5276fff9c4b02e5c2215 Author: Pavel Zbitskiy <pavel.zbitskiy@xxxxxxxxx> Date: Sat Jan 11 13:34:11 2014 +0400 linux-user: fixed recvfrom() addrlen addrlen parameter of recvfrom() of type socklen_t* was read into variable of type socklen_t, that caused zeroing out of upper 4 bytes when running s390x on top of x86_64. This patch changes addrlen type to abi_ulong. Signed-off-by: Pavel Zbitskiy <pavel.zbitskiy@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit fe54b24930f94bdfbc3d38eccd7adedf35f2f26f Author: Pavel Zbitskiy <pavel.zbitskiy@xxxxxxxxx> Date: Sat Jan 11 13:34:10 2014 +0400 linux-user: fixed getsockopt() optlen optlen parameter of getsockopt() of type socklen_t* was read into variable of type socklen_t, that caused zeroing out of upper 4 bytes when running s390x on top of x86_64. This patch changes optlen type to abi_ulong. Signed-off-by: Pavel Zbitskiy <pavel.zbitskiy@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 19a894ba777fa45c6f89ae007570311384204a69 Author: Pavel Zbitskiy <pavel.zbitskiy@xxxxxxxxx> Date: Sat Jan 11 13:34:09 2014 +0400 linux-user: fixed s390x clone() argument order It was broken by 4ce6243dc6216e35b5b691078ffa856463bfa8db, where TARGET_CLONE_BACKWARDS was specified instead of TARGET_CLONE_BACKWARDS2. Signed-off-by: Pavel Zbitskiy <pavel.zbitskiy@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 850484a295a856474978d9338b8c17eb8e00f549 Author: David du Colombier <0intro@xxxxxxxxx> Date: Wed Dec 25 15:17:43 2013 +0100 ide: cmd_exec_dev_diagnostic() always set error register to 0x01 This notably fix IDE CD probing on the Plan 9 operating system, which rely on the error register set by the Execute Device Diagnostic command to detect drive configurations. Thanks to Rémi Pommarel for reporting this issue. Signed-off-by: David du Colombier <0intro@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit e6baf6130ef26f32a45e0282bd4720913a1ff472 Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Thu Jan 9 09:58:16 2014 -0500 virtio-balloon: don't hardcode config size value Use sizeof(struct virtio_balloon_config) instead. Signed-off-by: Luiz capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit fb3ecb7ea40c44d15091143c4336993e7165fc4f Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Jan 14 07:00:28 2014 +0100 exec: Exclude non portable function for MinGW cpu_physical_memory_set_dirty_lebitmap calls getpageaddr and ffsl which are unavailable for MinGW. As the function is unused for MinGW, it can simply be excluded from compilation. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit bf2eaf718e2fcc5cc975326495bf03de7305bbe4 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Mon Dec 9 21:33:34 2013 -0200 Add bios-256k.bin to BLOBS on Makefile The default machine-type (pc-i440fx-2.0) now requires bios-256k.bin, but "make install" isn't installing it, so qemu-system-x86_64 won't run out of the box. Add it to BLOBS so it gets installed. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: William Dauchy <william@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit dc9fc1cac59e46102f2e046ac3233d8ad4535497 Author: Namhyung Kim <namhyung@xxxxxxxxx> Date: Tue Jan 7 09:04:25 2014 +0900 Fix typo of tiemr in timer.h Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 7af6f46c6199549f0e02a2176d0f3ec2ec405e99 Author: Namhyung Kim <namhyung@xxxxxxxxx> Date: Tue Jan 7 21:53:51 2014 +0900 docs: Fix typo in QMP WAKEUP example Cc: qemu-trivial@xxxxxxxxxx Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit e638073c569e801ce9def2016a84f955cbbca779 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Wed Jan 15 10:11:52 2014 -0700 vfio: Do not reattempt a failed rom read During lazy rom loading, if rom read fails, and the guest attempts a read again, vfio will again attempt it. Add a boolean to prevent this. There could be a case where a failed rom read might succeed the next time because of a device reset or such, but it's best to exclude unpredictable behavior Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit d20b43dfea1587b561aae17e4fa0f7407779d253 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Wed Jan 15 10:11:06 2014 -0700 vfio: warn if host device rom can't be read If the device rom can't be read, report an error to the user. This alerts the user that the device has a bad state that is causing rom read failure or option rom loading has been disabled from the device boot menu (among other reasons). Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 7c4228b4771acddcb8815079bc116007cec8a1ff Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Wed Jan 15 10:07:26 2014 -0700 vfio: Destroy memory regions Somehow this has been lurking for a while; we remove our subregions from the base BAR and VGA region mappings, but we don't destroy them, creating a leak and more serious problems when we try to migrate after removing these devices. Add the trivial bit of final cleanup to remove these entirely. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 584f2be79de148b0765a758ac0c1036a29c5e830 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Jan 10 18:20:18 2014 +1100 KVM: fix addr type for KVM_IOEVENTFD The @addr here is a guest physical address and can easily be bigger than 4G. This changes uint32_t to hwaddr. Cc: qemu-stable@xxxxxxxxxx Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 94ccff133820552a859c0fb95e33a539e0b90a75 Author: thomas knych <thomaswk@xxxxxxxxxx> Date: Thu Jan 9 13:14:23 2014 -0800 KVM: Retry KVM_CREATE_VM on EINTR Upstreaming this change from Android (https://android-review.googlesource.com/54211). On heavily loaded machines with many VM instances we see KVM_CREATE_VM failing with EINTR on this path: kvm_dev_ioctl_create_vm -> kvm_create_vm -> kvm_init_mmu_notifier -> mmu_notifier_register -> do_mmu_notifier_register -> mm_take_all_locks which checks if any signals have been raised while it was attaining locks and returns EINTR. Retrying the system call greatly improves reliability. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: thomas knych <thomaswk@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit dc6afb99b39a78cf416c6d19e35f680f202016be Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Tue Jan 14 13:10:24 2014 -0500 block: add .bdrv_reopen_prepare() stub for iscsi To suppport reopen(), the .bdrv_reopen_prepare() stub must exist. iSCSI does not have anything that needs to be done to support reopen, so we can just implement the _prepare() stub. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 49fb65c7f985baa56d2964e0a85c1f098e3e2a9d Author: Eric Farman <farman@xxxxxxxxxxxxxxxxxx> Date: Tue Jan 14 14:16:26 2014 -0500 virtio-scsi: Prevent assertion on missed events In some cases, an unplug can cause events to be dropped, which leads to an assertion failure when preparing to notify the guest kernel. Signed-off-by: Eric Farman <farman@xxxxxxxxxxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e9c0f0f58ad0a41c3c4b19e1911cfe095afc09ca Author: Eric Farman <farman@xxxxxxxxxxxxxxxxxx> Date: Tue Jan 14 14:16:25 2014 -0500 virtio-scsi: Cleanup of I/Os that never started There is still a small window that occurs when a cancel I/O affects an asynchronous I/O operation that hasn't started. In other words, when the residual data length equals the expected data length. Today, the routine virtio_scsi_command_complete fails because the VirtIOSCSIReq pointer (from the hba_private field in SCSIRequest) was cleared earlier when virtio_scsi_complete_req was called by the virtio_scsi_request_cancelled routine. As a result, the virtio_scsi_command_complete routine needs to simply return when it is processing a SCSIRequest block that was marked canceled. Signed-off-by: Eric Farman <farman@xxxxxxxxxxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 33325a53f15ab5370e1917b2a11cadffc77c5a52 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Jan 15 10:35:36 2014 +0100 scsi: Assign cancel_io vector for scsi_disk_emulate_ops Some emulated disk operations (MODE SELECT, UNMAP, WRITE SAME) can trigger asynchronous I/Os. Provide the cancel_io callback to ensure that AIOCBs are properly cleaned up. Signed-off-by: Eric Farman <farman@xxxxxxxxxxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx [Tweak commit message. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 1cf892ca2689c84960b4ce4d2723b6bee453711c Author: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Date: Wed Nov 27 08:50:11 2013 +0100 SPARC: Fix LEON3 power down instruction Synchronize the program counter before the power down helper call otherwise interrupts will return to the wrong context. Signed-off-by: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit d32934c84c72f57e78d430c22974677b7bcabe5d Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Jan 14 19:37:09 2014 -0800 error: Don't use error_report() for assertion msgs. Use fprintf(stderr instead. This removes dependency of libqemuutil.a on the monitor. We can further justify this change, in that this code path should only trigger under a fatal error condition. fprintf-stderr is probably the appropriate medium as under a fatal error conidition the monitor itself may be down and out for the count. So assertion failure messages should go lowest common denominator - straight to stderr. Fixes the build as reported by Kevin Wolf. Issue debugged and change suggested by Luiz Capitulino. Issue introduced by 5d24ee70bcbcf578614193526bcd5ed30a8eb16c. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 133fe77437d3a23bf1fd70a231b4f29d5fa0571c Merge: 73c6945 c950114 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Tue Jan 14 12:09:59 2014 +1000 Merge remote branch 'luiz/queue/qmp' into qmpq * luiz/queue/qmp: migration: qmp_migrate(): keep working after syntax error qerror: Remove assert_no_error() qemu-option: Remove qemu_opts_create_nofail target-i386: Remove assert_no_error usage hw: Remove assert_no_error usages qdev: Delete dead code error: Add error_abort monitor: add object-add (QMP) and object_add (HMP) command monitor: add object-del (QMP) and object_del (HMP) command qom: catch errors in object_property_add_child qom: fix leak for objects created with -object rng: initialize file descriptor to -1 qemu-monitor: HMP cpu-add wrapper vl: add missing transition debug->finish_migrate Message-Id: 1389045795-18706-1-git-send-email-lcapitulino@xxxxxxxxxx Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 73c694565c6144e0c4e15041b5250a04a25107c3 Author: Alistair Francis <alistair.francis@xxxxxxxxxx> Date: Mon Jan 13 13:35:26 2014 +1000 Microblaze: Convert Microblaze-pic handling to GPIOs This patch uses inbound GPIO lines (IRQ and FIR) for interrupts instead of using the old pic_cpu method, which doesn't correspond to real hardware. This creates the CPU's inbound IRQ and FIR GPIO lines and updates the Microblaze boards to use this new method. Signed-off-by: Alistair Francis <alistair.francis@xxxxxxxxxx> Suggested-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reveiwed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Tested-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit 83e6813a93e38976391b8c382c3375e3e188df3e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Jan 13 10:26:16 2014 +0000 target-arm: Switch ARMCPUInfo arrays to use terminator entries Switch the ARMCPUInfo arrays in cpu.c and cpu64.c to use a terminator entry rather than looping based on ARRAY_SIZE. The latter causes compile warnings on some versions of gcc if the configure options happen to result in an empty array. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Tested-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> commit b54f18ba3415c731f0b069f6df56f529997fb74e Merge: dd089c0 aa8dc04 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Jan 13 13:20:49 2014 -0800 Merge remote-tracking branch 'quintela/tags/migration/20140113' into staging migration.next for 20140113 # gpg: Signature made Mon 13 Jan 2014 09:38:27 AM PST using RSA key ID 5872D723 # gpg: Can't check signature: public key not found * quintela/tags/migration/20140113: (49 commits) migration: synchronize memory bitmap 64bits at a time ram: split function that synchronizes a range memory: syncronize kvm bitmap using bitmaps operations memory: move bitmap synchronization to its own function kvm: refactor start address calculation kvm: use directly cpu_physical_memory_* api for tracking dirty pages memory: unfold memory_region_test_and_clear() memory: split cpu_physical_memory_* functions to its own include memory: cpu_physical_memory_set_dirty_tracking() should return void memory: make cpu_physical_memory_reset_dirty() take a length parameter memory: s/dirty/clean/ in cpu_physical_memory_is_dirty() memory: cpu_physical_memory_clear_dirty_range() now uses bitmap operations memory: cpu_physical_memory_set_dirty_range() now uses bitmap operations memory: use find_next_bit() to find dirty bits memory: s/mask/clear/ cpu_physical_memory_mask_dirty_range memory: cpu_physical_memory_get_dirty() is used as returning a bool memory: make cpu_physical_memory_get_dirty() the main function memory: unfold cpu_physical_memory_set_dirty_flag() memory: unfold cpu_physical_memory_set_dirty() in its only user memory: unfold cpu_physical_memory_clear_dirty_flag() in its only user ... Message-id: 1389634834-24181-1-git-send-email-quintela@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit aa8dc044772ba156cbcf2174b5673cfa11f566a7 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Wed Nov 6 11:33:05 2013 +0100 migration: synchronize memory bitmap 64bits at a time We use the old code if the bitmaps are not aligned Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 791fa2a2451799232d6bc0c29c0fbb13b5293eeb Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Nov 5 16:47:20 2013 +0100 ram: split function that synchronizes a range This function is the only bit where we care about speed. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit ae2810c4bb3b383176e8e1b33931b16c01483aab Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Nov 5 16:46:26 2013 +0100 memory: syncronize kvm bitmap using bitmaps operations If bitmaps are aligned properly, use bitmap operations. If they are not, just use old bit at a time code. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 5ff7fb77b3cee8e26648e4fdccb23a77c2a6d3c6 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Nov 5 15:52:54 2013 +0100 memory: move bitmap synchronization to its own function We want to have all the functions that handle directly the dirty bitmap near. We will change it later. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit c9dd46fc0d64d9f314aa3c220d4aff9d01ab778e Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Nov 5 15:45:46 2013 +0100 kvm: refactor start address calculation Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 747afd5bcdc90f608c75d95f8a629a9cfc838c57 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Mon Nov 4 12:59:02 2013 +0100 kvm: use directly cpu_physical_memory_* api for tracking dirty pages Performance is important in this function, and we want to optimize even further. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 12291ec18fdce3c1973c172f5a942a1bd26b9a5f Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Mon Oct 14 17:14:47 2013 +0200 memory: unfold memory_region_test_and_clear() We are going to update the bitmap directly Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 220c3ebddbd1ac289ae7fc64733c9501b3921d94 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Mon Oct 14 17:13:59 2013 +0200 memory: split cpu_physical_memory_* functions to its own include All the functions that use ram_addr_t should be here. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 981fdf2353d5e708adbe5227260d5e46eececc05 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Thu Oct 10 11:54:09 2013 +0200 memory: cpu_physical_memory_set_dirty_tracking() should return void Result was always 0, and not used anywhere. Once there, use bool type for the parameter. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit a2f4d5bef2cfde557d76fc45a40d2c89b6bed4e4 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Thu Oct 10 11:49:53 2013 +0200 memory: make cpu_physical_memory_reset_dirty() take a length parameter We have an end parameter in all the callers, and this make it coherent with the rest of cpu_physical_memory_* functions, that also take a length parameter. Once here, move the start/end calculation to tlb_reset_dirty_range_all() as we don't need it here anymore. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit a2cd8c852d2d8c2a084b68b2470f214d6726f6d2 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Thu Oct 10 11:20:22 2013 +0200 memory: s/dirty/clean/ in cpu_physical_memory_is_dirty() All uses except one really want the other meaning. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit a461e389f489e72cdc770ff887512c2c9109bc43 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Wed Oct 9 12:30:35 2013 +0200 memory: cpu_physical_memory_clear_dirty_range() now uses bitmap operations We were clearing a range of bits, so use bitmap_clear(). Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 5b9a3a5f77e3458af6c1bb0654ee0f32936a5594 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Wed Oct 9 12:26:23 2013 +0200 memory: cpu_physical_memory_set_dirty_range() now uses bitmap operations We were setting a range of bits, so use bitmap_set(). Note: xen has always been wrong, and should have used start instead of addr from the beginning. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 1bafff0c7cb99972fd243464632eca0780c6a8f1 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Wed Oct 9 12:15:06 2013 +0200 memory: use find_next_bit() to find dirty bits This operation is way faster than doing it bit by bit. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit ace694cccccf343852d9f0b34171ad475e248bbf Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Wed Oct 9 10:36:56 2013 +0200 memory: s/mask/clear/ cpu_physical_memory_mask_dirty_range Now all functions use the same wording that bitops/bitmap operations Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 94833c896d2d339571a66542f2715b1897d70fa7 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 20:40:55 2013 +0200 memory: cpu_physical_memory_get_dirty() is used as returning a bool Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 9f2c43e41a13605d3ab1e37ba433aa669652fb6b Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 20:35:39 2013 +0200 memory: make cpu_physical_memory_get_dirty() the main function And make cpu_physical_memory_get_dirty_flag() to use it. It used to be the other way around. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit c1427a3f84c42d5159d10927700eafc9b653d68f Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 20:27:58 2013 +0200 memory: unfold cpu_physical_memory_set_dirty_flag() Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 4f13bb80a2dc1bb851b43da6dd9117473772b197 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 20:25:16 2013 +0200 memory: unfold cpu_physical_memory_set_dirty() in its only user Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 86a49582dbe66d59a9366d2f002f0d6af965ecb8 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 20:21:10 2013 +0200 memory: unfold cpu_physical_memory_clear_dirty_flag() in its only user Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 1ab4c8ceaa5ec55af9bb25e88e46d461a8550280 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 16:14:39 2013 +0200 memory: split dirty bitmap into three After all the previous patches, spliting the bitmap gets direct. Note: For some reason, I have to move DIRTY_MEMORY_* definitions to the beginning of memory.h to make compilation work. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 164590a60fd685399da259ac41b338d9a0b9d6c0 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 16:12:17 2013 +0200 bitmap: Add bitmap_zero_extend operation Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit e8a97cafc4108fa964807eb9cbce7eda698f99bb Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 15:50:55 2013 +0200 memory: cpu_physical_memory_clear_dirty_flag() result is never used Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 2152f5ca782e51a4d05a1f7d9bfa83286323cbc9 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 13:52:02 2013 +0200 memory: only resize dirty bitmap when memory size increases Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 7a5b558c9d061814f34d9b95d70d17ef75037937 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 13:29:11 2013 +0200 memory: make sure that client is always inside range Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 5adca7ace9b80bf594e4c52c0d5b23573cba3639 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 13:26:29 2013 +0200 memory: use bit 2 for migration For historical reasons it was bit 3. Once there, create a constant to know the number of clients. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 52159192919469b424b54c167312e53d5a62d233 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 12:44:04 2013 +0200 memory: cpu_physical_memory_mask_dirty_range() always clears a single flag Document it Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 75218e7f2b7f052c6f44489afaf45b3ea4369f45 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 12:31:54 2013 +0200 memory: cpu_physical_memory_set_dirty_range() always dirty all flags So remove the flag argument and do it directly. After this change, there is nothing else using cpu_physical_memory_set_dirty_flags() so remove it. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 63995cebfaa283586682ea6236c9686b2a49ece7 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 12:25:25 2013 +0200 memory: set single dirty flags when possible Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 36187e2ca0295364dcb9a3f256a6fcd77e983c02 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 12:17:12 2013 +0200 memory: all users of cpu_physical_memory_get_dirty used only one flag So cpu_physical_memory_get_dirty_flags is not needed anymore Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 4f08cabe9e6efe8a50abc30cfa59e8470ad434d7 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 12:01:01 2013 +0200 memory: make cpu_physical_memory_is_dirty return bool Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 7e5609a85e3f35965af5e4c7b1480254642cf2dd Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 11:57:21 2013 +0200 exec: create function to get a single dirty bit Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit a1390db4df32ad95bf7854944180d2343f7f6368 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 11:53:46 2013 +0200 memory: create function to set a single dirty bit Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 06567942e5e92cc649b608205d5d31ff3ac21c58 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Oct 8 11:50:04 2013 +0200 exec: use accessor function to know if memory is dirty Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 78d0042642a415b56b3c53a6044f30eff47bf69c Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Wed Oct 2 14:30:02 2013 +0200 memory: cpu_physical_memory_set_dirty_range() return void Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit e2da99d582300bb8deecb25d26a179ef5b92e066 Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Wed Oct 2 14:04:19 2013 +0200 memory: cpu_physical_memory_set_dirty_flags() result is never used So return void. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 9c22687ea8c1a2644a41a683ff0a291adc9a657c Author: Juan Quintela <quintela@xxxxxxxxxx> Date: Tue Dec 17 12:12:24 2013 +0100 bitmap: use long as index Move index and size fields from int to long. We need that for migration. long is 64 bits on sane architectures, and 32bits should be enough on all the 32bits architectures. Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> commit 2668b4bff484a8428947c10a0efb9758658f4b1a Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:18 2013 -0200 tests: Some unit tests for vmstate.c * Basic load/save tests * Tests for loading older versions * Tests for .field_exists() handling Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit bb1a6d8c57217188f33d8e59d71fc62dbee9e4f8 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Fri Nov 29 12:26:02 2013 -0200 savevm: Small comment about why timer QEMUFile/VMState code is in savevm.c Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 093c455a8c6d8f715eabd8c8d346f08f17d686ec Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:16 2013 -0200 qemu-file: Move QEMUFile code to qemu-file.c Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit b6fcfa59fa6ad6d61603e701e006d4ec8f4c9d11 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:15 2013 -0200 vmstate: Move VMState code to vmstate.c This will allow unit tests to be written for VMState code without pulling dependencies from the savevm code. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 51b7fa5b3cf7678263382039a884aa2e74742bb6 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:14 2013 -0200 savevm.c: Coding style fix Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 38ff78d363da0d2e0ad27853036b08eaa52ef18d Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:13 2013 -0200 savevm.c: Coding style fixes Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 5cecf414945e5ba40da893cbdaed554371d4eca9 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:12 2013 -0200 savevm: Convert all tabs to spaces Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit b5503338ed1c66310f090cd9164abd244fc82631 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:11 2013 -0200 migration: Move QEMU_VM_* defines to migration/migration.h The VMState code will be moved to vmstate.c and it uses some of the QEMU_VM_* constants, so move it to a header. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit c961514fd9e707b6a39c60f687a711ffe0a33539 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Thu Nov 28 12:01:10 2013 -0200 qemu-file: Make a few functions non-static The QEMUFile code will be moved to qemu-file.c. This will require making the following functions non-static because they are used by the savevm.c code: * qemu_peek_byte() * qemu_peek_buffer() * qemu_file_skip() * qemu_file_set_error() Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Orit Wasserman <owasserm@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 40596834c0d57a223124a956ccbe39dfeadc9f0e Author: Matthew Garrett <matthew.garrett@xxxxxxxxxx> Date: Mon Nov 25 14:42:43 2013 -0500 migration: Fix rate limit The migration thread appears to want to allow writeout to occur at full speed rather than being rate limited during completion of state saving, but sets the limit to INT_MAX when xfer_limit is INT64_MAX. This causes problems if there's more than 2GB of state left to save at this point. It probably ought to just be INT64_MAX instead. Signed-off-by: Matthew Garrett <matthew.garrett@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 51cf4c1a99a172679c2949a2d58a2a4ee307b557 Author: Zhanghaoyu (A) <haoyu.zhang@xxxxxxxxxx> Date: Thu Nov 7 11:01:15 2013 +0000 introduce MIG_STATE_CANCELLING state Introduce MIG_STATE_CANCELLING state to avoid starting a new migration task while the previous one still exist. Signed-off-by: Zeng Junliang <zengjunliang@xxxxxxxxxx> Signed-off-by: Zhang Haoyu <haoyu.zhang@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 6f2b811a61810a7fd9f9a5085de223f66b823342 Author: Zhanghaoyu (A) <haoyu.zhang@xxxxxxxxxx> Date: Thu Nov 7 08:21:23 2013 +0000 avoid a bogus COMPLETED->CANCELLED transition Avoid a bogus COMPLETED->CANCELLED transition. There is a period of time from the timing of setting COMPLETED state to that of migration thread exits, so during which it's problematic in COMPLETED->CANCELLED transition. Signed-off-by: Zeng Junliang <zengjunliang@xxxxxxxxxx> Signed-off-by: Zhang Haoyu <haoyu.zhang@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit dd089c0a1e928fb80ba8a37983c1b0e9232d1c8b Merge: 42bf25a 30ef3c7 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sun Jan 12 17:50:52 2014 -0800 Merge remote-tracking branch 'pmaydell/tags/pull-cocoa-20140112' into staging cocoa queue: * pass command key to guest when VM has mousegrab * add .qcow2 to extension list for image load dialog * fix bugs in code for starting QEMU via image load dialog * fix resize/redraw interaction * draw window black if guest hasn't sent anything to screen * minor style/typo fixes * add myself as cocoa co-maintainer # gpg: Signature made Sun 12 Jan 2014 02:45:52 PM PST using RSA key ID 14360CDE # gpg: Can't check signature: public key not found * pmaydell/tags/pull-cocoa-20140112: MAINTAINERS: add myself as cocoa UI co-maintainer ui/cocoa: Remove stray tabs ui/cocoa: Draw black rectangle if we have no data yet ui/cocoa: Redraw at correct size when switching surface ui/cocoa: Fix code for starting QEMU via image file load dialog ui/cocoa: Add ".qcow2" to extension list for image load dialog ui/cocoa: Send warning message to stderr, not stdout ui/cocoa: Correct typos in comments and variable names ui/cocoa: Pass command key through to guest when VM has mousegrab Message-id: 1389567158-31066-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 42bf25a9bf99559dd68d2b20824cd4879d5785ba Merge: eedc1a5 5cd8a11 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sun Jan 12 17:50:43 2014 -0800 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20140112' into staging target-arm queue: * build fix for bigendian hosts # gpg: Signature made Sun 12 Jan 2014 01:38:22 PM PST using RSA key ID 14360CDE # gpg: Can't check signature: public key not found * pmaydell/tags/pull-target-arm-20140112: arm: fix compile on bigendian host Message-id: 1389562970-30944-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 30ef3c742526baa7910ab5023f0b85062bd85579 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Dec 16 15:17:55 2013 +0000 MAINTAINERS: add myself as cocoa UI co-maintainer Add myself to the maintainers list for the cocoa UI; status remains "Odd Fixes". Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Acked-by: Andreas Färber <andreas.faerber@xxxxxx> Message-id: 1387207075-10280-1-git-send-email-peter.maydell@xxxxxxxxxx commit 49060c29c3751773265a405e6ceaed9d06fb4823 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 24 11:54:12 2013 +0000 ui/cocoa: Remove stray tabs The ui/cocoa.m file has just three lines with hardcoded tabs; fix them. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Message-id: 1387886052-27067-1-git-send-email-peter.maydell@xxxxxxxxxx commit 7d270b1c21c692478245b90bfac0aa54c6a8d98a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 24 02:51:47 2013 +0000 ui/cocoa: Draw black rectangle if we have no data yet If our redraw method is called before we have any data from the guest, then draw a black rectangle rather than leaving the window empty. This mostly only matters when the guest machine has no framebuffer device, but it is more in line with the behaviour of other QEMU UIs. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1387853507-26298-3-git-send-email-peter.maydell@xxxxxxxxxx commit d3345a04849374af2b21d6624dd206c4444a6ffe Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 24 02:51:46 2013 +0000 ui/cocoa: Redraw at correct size when switching surface If the surface switch involved a resize, we were doing the redraw at the old size rather than the new, because the update of screen.width and screen.height was being done after the setFrame method calls which triggered a redraw. Normally this isn't very noticeable because typically after the guest triggers the window resize it also draws something to it, which will in turn cause us to redraw. However, the combination of a guest which never draws to the display and a command line setting of a screen size larger than the default can reveal odd effects. Move most of the handling of resizes to the top of the method, and guard it with a check that the surface size actually changed, to avoid unnecessary operations (including some user visible ones like "recenter the window on the screen") if the surface is the same size as the old one. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1387853507-26298-2-git-send-email-peter.maydell@xxxxxxxxxx commit 98db429d2c6d157b7e00e3f24b6b1d9036f5e358 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Dec 8 22:59:06 2013 +0000 ui/cocoa: Fix code for starting QEMU via image file load dialog Fix a number of bugs in the code for starting QEMU via the image file load dialog: * use the actual argv[0] rather than "qemu": this avoids failures to find BIOS image files caused by not looking in the correct directory relative to the executable path * allocate a large enough argv array to NULL terminate it * use g_strdup(X) rather than g_strdup_printf("%s", X) or g_strdup_printf(X) * disable the printing of the simulated command line argument (which is presumably intended for debug only) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386543546-31919-6-git-send-email-peter.maydell@xxxxxxxxxx commit 5342f990f46512487e3e5be1047a5b424f00d255 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Dec 8 22:59:05 2013 +0000 ui/cocoa: Add ".qcow2" to extension list for image load dialog Add ".qcow2" to the list of file extensions which are accepted by the initial disk image load dialog which is displayed if the user runs QEMU without any command line arguments. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386543546-31919-5-git-send-email-peter.maydell@xxxxxxxxxx commit 01cc4e6fd7d364c6c401c579d504d82c0523d67e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Dec 8 22:59:04 2013 +0000 ui/cocoa: Send warning message to stderr, not stdout Bring a warning message into line with the others in this file by sending it to stderr, not stdout. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386543546-31919-4-git-send-email-peter.maydell@xxxxxxxxxx commit 49b9bd4dccac26178a4796367e4358bd67f4f59b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Dec 8 22:59:03 2013 +0000 ui/cocoa: Correct typos in comments and variable names Fix various non-user-visible typos in comments and variable names. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Message-id: 1386543546-31919-3-git-send-email-peter.maydell@xxxxxxxxxx commit 8895919a044e9e8111faebabacaa2245d8ce4e51 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Dec 8 22:59:02 2013 +0000 ui/cocoa: Pass command key through to guest when VM has mousegrab The guest might want to be able to use the command key for its won purposes (as command if it is MacOS X, or for the Windows key if it is a PC guest, for instance). In line with other UI frontends, pass it through if the guest has mousegrab, and only use it for UI menu accelerators if not grabbed. Thanks to John Arbuckle for reporting this problem, helping us work through what the best solution would be and providing a patch which was the initial inspiration for this one. Reported-by: John Arbuckle <programmingkidx@xxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386543546-31919-2-git-send-email-peter.maydell@xxxxxxxxxx commit 5cd8a11834d1fbb12439604ff6793b9f0bae4a15 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Sun Jan 12 21:37:37 2014 +0000 arm: fix compile on bigendian host Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit fbb9c590cacf1cefb516f523427a920c2fe8c135 Author: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Date: Sun Jan 12 07:52:44 2014 +0000 Update OpenBIOS images Update OpenBIOS images to SVN r1246 built from submodule. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> commit eedc1a5db5e4d941e39e54344322c0b1e89dfdcd Merge: debe40f 8a1bd29 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 10 11:05:17 2014 -0800 Merge remote-tracking branch 'bonzini/scsi-next' into staging * bonzini/scsi-next: scsi-disk: add UNMAP limits to block limits VPD page block/iscsi: use a bh to schedule co reentrance Message-id: 1387720926-11421-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit debe40fbc5f112672d0ab8f7f393e483304059f4 Merge: d181976 18da7f9 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 10 11:05:05 2014 -0800 Merge remote-tracking branch 'stefanha/block' into staging * stefanha/block: commit: Remove unused check qemu-iotests: Update test cases for commit active commit: Support commit active layer block: Add commit_active_start() mirror: Move base to MirrorBlockJob mirror: Don't close target qemu-iotests: drop duplicate virtio-blk initialization failure vmdk: Allow vmdk_create to work with protocol vmdk: Check VMFS extent line field number docs: updated qemu-img man page and qemu-doc to reflect VHDX support. block: vhdx - improve error message, and .bdrv_check implementation block/iscsi: Fix compilation for libiscsi 1.4.0 (API change) qapi-schema: fix QEMU 1.8 references dataplane: replace hostmem with memory_region_find dataplane: change vring API to use VirtQueueElement vring: factor common code for error exits vring: create a common function to parse descriptors sheepdog: fix dynamic grow for running qcow2 format Message-id: 1387554416-5837-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit d1819762fcf5d50f30df603eb606eb31bf62e29d Merge: 4cddc7f 5bf58ab Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 10 11:04:48 2014 -0800 Merge remote-tracking branch 'mst/tags/for_anthony' into staging acpi,pci,pc,fedora,virtio fixes and enhancements This includes some Preparatory patches for cpu hotplug for q25 and memory hotplug by Igor, tests and memory mapping change by Laszlo and pci reset cleanup by Paolo. There are also some fixes for fedora and virtio: included here since they are test blockers for me. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Mon 23 Dec 2013 08:07:18 AM PST using RSA key ID D28D5469 # gpg: Can't check signature: public key not found * mst/tags/for_anthony: target-arm: fix build with gcc 4.8.2 virtio: add back call to virtio_bus_device_unplugged piix: fix 32bit pci hole qdev: switch reset to post-order qdev: allow both pre- and post-order vists in qdev walking functions pci: clean up resetting of IRQs pci: do not export pci_bus_reset ACPI/DSDT-CPU: cleanup bogus comment ACPI: Q35 DSDT: fix CPU hotplug GPE0.2 handler acpi: ich9: allow guest to clear SCI rised by GPE acpi: factor out common pm_update_sci() into acpi core acpi: piix4: remove not needed GPE0 mask i440fx-test: verify firmware under 4G and 1M, both -bios and -pflash i440fx-test: generate temporary firmware blob i440fx-test: give each GTest case its own qtest i440fx-test: qtest_start() should be paired with qtest_end() hw/i386/pc_sysfw: support two flash drives pc_piix: document gigabyte_align piix: gigabyte alignment for ram Message-id: 1387815007-1272-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 4cddc7f44ff83ff3545059f1b8648b8bd7fe0e72 Merge: 62a6a1f d024d20 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 10 11:04:31 2014 -0800 Merge remote-tracking branch 'afaerber/tags/qom-cpu-for-anthony' into staging QOM CPUState refactorings / X86CPU * TLB invalidation optimizations * X86CPU initialization cleanups * Preparations for X86CPU hot-unplug # gpg: Signature made Tue 24 Dec 2013 04:51:52 AM PST using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" # 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: 174F 0347 1BCC 221A 6175 6F96 FA2E D12D 3E7E 013F * afaerber/tags/qom-cpu-for-anthony: target-i386: Cleanup 'foo=val' feature handling target-i386: Cleanup 'foo' feature handling target-i386: Convert 'check' and 'enforce' to static properties target-i386: Convert 'hv_spinlocks' to static property target-i386: Convert 'hv_vapic' to static property target-i386: Convert 'hv_relaxed' to static property cpu-exec: Optimize X86CPU usage in cpu_exec() target-i386: Move apic_state field from CPUX86State to X86CPU cputlb: Tidy memset() of arrays cputlb: Use memset() when flushing entries commit 62a6a1fb895b881a938426fadb808f78a86ee222 Merge: 205b6b6 096fc76 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 10 10:48:46 2014 -0800 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20140107' into staging target-arm queue: * further A64 decoder patches, including enabling the aarch64-linux-user target; this includes full floating point support. Neon is not yet supported. * cadence UART model fixes. * some minor bug fixes and cleanups. * all the softfloat fixes required by the new A64 instructions; several of these will also be used by PPC. * pmaydell/tags/pull-target-arm-20140107: (61 commits) target-arm: A64: Add support for FCVT between half, single and double target-arm: A64: Add 1-source 32-to-32 and 64-to-64 FP instructions target-arm: A64: Add floating-point<->integer conversion instructions target-arm: A64: Add floating-point<->fixed-point instructions target-arm: A64: Add extra VFP fixed point conversion helpers target-arm: Ignore most exceptions from scalbn when doing fixpoint conversion target-arm: Rename A32 VFP conversion helpers target-arm: Prepare VFP_CONV_FIX helpers for A64 uses softfloat: Add support for ties-away rounding softfloat: Refactor code handling various rounding modes softfloat: Add float16 <=> float64 conversion functions softfloat: Factor out RoundAndPackFloat16 and NormalizeFloat16Subnormal softfloat: Provide complete set of accessors for fp state softfloat: Fix float64_to_uint32_round_to_zero softfloat: Fix float64_to_uint32 softfloat: Fix float64_to_uint64_round_to_zero softfloat: Add float32_to_uint64() softfloat: Fix factor 2 error for scalbn on denormal inputs softfloat: Only raise Invalid when conversions to int are out of range softfloat: Fix float64_to_uint64 ... Conflicts: target-arm/cpu.h aliguori: resolved trivial conflict Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 205b6b617519d53f17ef2158ff18cb0fe50f5d6c Merge: 1d327fb f0116c5 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Jan 10 10:47:30 2014 -0800 Merge remote-tracking branch 'riku/linux-user-for-upstream' into staging * riku/linux-user-for-upstream: linux-user: Remove regs parameter of load_elf_binary and load_flt_binary linux-user: Support the accept4 socketcall Message-id: 1389364137-23287-1-git-send-email-riku.voipio@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit f0116c5458dc3be398ee7ef8daeaa02ba738bdc1 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Thu Jan 9 09:10:50 2014 +0000 linux-user: Remove regs parameter of load_elf_binary and load_flt_binary The regs parameter is not used anywhere, so remove it. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Erik de Castro Lopo <erikd@xxxxxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit b9d36eb2c7d73875ef44182f18d625f1bc4c7fda Author: André Hentschel <nerv@xxxxxxxxxxx> Date: Mon Jan 6 20:18:52 2014 +0100 linux-user: Support the accept4 socketcall Cc: Riku Voipio <riku.voipio@xxxxxx> Signed-off-by: André Hentschel <nerv@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Erik de Castro Lopo <erikd@xxxxxxxxxxxxx> Reviewed-by: Laurent Vivier <laurent@xxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 1d327fb4c72b898f7500989f3e624b7349581159 Merge: 074dcc2 2a13f99 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Jan 9 13:56:27 2014 -0800 Merge remote-tracking branch 'otubo/seccomp' into staging * otubo/seccomp: seccomp: exit if seccomp_init() fails Message-id: 1387565447-24241-1-git-send-email-otubo@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 074dcc228a92de8285ada7d7a0f14549de7aacaa Merge: c06f13c 7826163 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Jan 9 13:44:00 2014 -0800 Merge remote-tracking branch 'rth/ldst-i386-2' into staging * rth/ldst-i386-2: (49 commits) target-i386: Tidy ljmp target-i386: Rename gen_op_jmp_T0 to gen_op_jmp_v target-i386: Tidy some size computation target-i386: Remove gen_op_mov_reg_A0 target-i386: Remove gen_op_mov_TN_reg target-i386: Remove gen_op_addl_T0_T1 target-i386: Remove gen_op_mov_reg_T1 target-i386: Remove gen_op_mov_reg_T0 target-i386: Tidy cpu_regs initialization target_i386: Clean up gen_pop_T0 target-i386: Combine gen_push_T* into gen_push_v target-i386: Tidy addr16 code in gen_lea_modrm target-i386: Change dflag to TCGMemOp target-i386: Change gen_op_mov_reg_A0 size parameter to TCGMemOp target-i386: Change aflag to TCGMemOp target-i386: Change gen_op_j*z_ecx size parameter to TCGMemOp target-i386: Change gen_op_add_reg_* size parameter to TCGMemOp target-i386: Use TCGMemOp for 'ot' variables target-i386: Remove gen_op_andl_A0_ffff target-i386: Remove gen_op_movl_T0_T1 ... Message-id: 1389128439-10067-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit c06f13c6da306180e9531114570d7800357f7446 Merge: 666eb03 11c308b Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Jan 9 11:24:48 2014 -0800 Merge remote-tracking branch 'afaerber/tags/qom-devices-for-anthony' into staging QOM infrastructure fixes and device conversions * QOM interface fixes and unit test * Device no_user sanitization and documentation * Device error reporting improvement * Conversion of APIC, ICC, IOAPIC to QOM realization model # gpg: Signature made Tue 24 Dec 2013 09:04:05 AM PST using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@xxxxxxx>" # gpg: aka "Andreas Färber <afaerber@xxxxxxxx>" # 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: 174F 0347 1BCC 221A 6175 6F96 FA2E D12D 3E7E 013F * afaerber/tags/qom-devices-for-anthony: (24 commits) qdev-monitor: Improve error message for -device nonexistant ioapic: QOM'ify ioapic ioapic: Cleanup for QOM'ification icc_bus: QOM'ify ICC apic: QOM'ify APIC apic: Cleanup for QOM'ification qdev: Drop misleading qbus_free() function qom: Detect bad reentrance during object_class_foreach() tests: Test QOM interface casting qom: Do not register interface "types" in the type table and fix names qom: Split out object and class caches qdev: Document that pointer properties kill device_add hw: cannot_instantiate_with_device_add_yet due to pointer props qdev-monitor: Avoid device_add crashing on non-device driver name qdev: Do not let the user try to device_add when it cannot work isa: Clean up use of cannot_instantiate_with_device_add_yet vt82c686: Clean up use of cannot_instantiate_with_device_add_yet piix3 piix4: Clean up use of cannot_instantiate_with_device_add_yet ich9: Document why cannot_instantiate_with_device_add_yet pci-host: Consistently set cannot_instantiate_with_device_add_yet ... commit 666eb032d34961a06713049c56361179903527e4 Merge: b61740d 5862ad0 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Jan 9 11:24:12 2014 -0800 Merge remote-tracking branch 'mjt/trivial-patches' into staging * mjt/trivial-patches: acpi unit-test: Remove temporary disk after test mainstone: Fix duplicate array values for key 'space' pxa27x: Add 'const' attribute to keyboard maps pxa27x: Reduce size of keyboard matrix mapping doc: Mention chardev:id in available devices for -serial configure: Python tests must be done before help message configure: Rewrite code for help message fix -boot strict regressed in commit 6ef4716 vl: make boot_strict variable static (not used outside vl.c) x86: only allow real mode to access 32bit without LMA linux-user: Use macro TARGET_NSIG_WORDS where possible exynos4210: Use macro ARRAY_SIZE where possible ui/cocoa: Use macro ARRAY_SIZE where possible misc: Use macro ARRAY_SIZE where possible openrisc: Fix spelling in comment (transaltion -> translation) hw/arm/highbank: Simplify code (memory region in device state) Message-id: 1388182050-10270-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit b61740dbef8d1c8fda8a0f46ecb617e6e865e9e2 Merge: f976b09 8900aad Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Jan 9 11:23:49 2014 -0800 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20140108' into staging target-arm queue: * further A64 decoder patches, including enabling the aarch64-linux-user target; this includes full floating point support. Neon is not yet supported. * cadence UART model fixes. * some minor bug fixes and cleanups. * all the softfloat fixes required by the new A64 instructions; several of these will also be used by PPC. # gpg: Signature made Wed 08 Jan 2014 11:25:12 AM PST using RSA key ID 14360CDE # gpg: Can't check signature: public key not found * pmaydell/tags/pull-target-arm-20140108: (76 commits) target-arm: A64: Add support for FCVT between half, single and double target-arm: A64: Add 1-source 32-to-32 and 64-to-64 FP instructions target-arm: A64: Add floating-point<->integer conversion instructions target-arm: A64: Add floating-point<->fixed-point instructions target-arm: A64: Add extra VFP fixed point conversion helpers target-arm: Ignore most exceptions from scalbn when doing fixpoint conversion target-arm: Rename A32 VFP conversion helpers target-arm: Prepare VFP_CONV_FIX helpers for A64 uses softfloat: Add support for ties-away rounding softfloat: Refactor code handling various rounding modes softfloat: Add float16 <=> float64 conversion functions softfloat: Factor out RoundAndPackFloat16 and NormalizeFloat16Subnormal softfloat: Provide complete set of accessors for fp state softfloat: Fix float64_to_uint32_round_to_zero softfloat: Fix float64_to_uint32 softfloat: Fix float64_to_uint64_round_to_zero softfloat: Add float32_to_uint64() softfloat: Fix factor 2 error for scalbn on denormal inputs softfloat: Only raise Invalid when conversions to int are out of range softfloat: Fix float64_to_uint64 ... Message-id: 1389209439-25448-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 8900aad218f8f2348bcd688eacf06d6c1f66bc69 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:15 2014 +0000 target-arm: A64: Add support for FCVT between half, single and double Add support for FCVT between half, single and double precision. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit d9b0848d944aab124f03cedc8f54c3940450f3b0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add 1-source 32-to-32 and 64-to-64 FP instructions This patch adds support for those instructions in the "Floating-point data-processing (1 source)" group which are simple 32-bit-to-32-bit or 64-bit-to-64-bit operations (ie everything except FCVT between single/double/half precision). We put the new round-to-int helpers in helper.c because they will also be used by the new ARMv8 A32/T32 rounding instructions. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, merged single and double precision patches, updated to new infrastructure.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: reworked decode, split FCVT out into their own patch] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit c436d40614ccfa756bbf3d7448356889ede825fb Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add floating-point<->integer conversion instructions Add support for the AArch64 floating-point <-> integer conversion instructions to disas_fpintconv. In the process we can rearrange and simplify the detection of unallocated encodings a little. We also correct a typo in the instruction encoding diagram for this instruction group: bit 21 is 1, not 0. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 52a1f6a3abb88ab875d5a70cec1048bb05e47263 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add floating-point<->fixed-point instructions This patch adds emulation for the instruction group labeled "Floating-point <-> fixed-point conversions" in the ARM ARM. Namely this includes the instructions SCVTF, UCVTF, FCVTZS, FCVTZU (scalar, fixed-point). Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, rebased, updated to new infrastructure. Applied bug fixes from Michael Matz and Janne Grunau.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: significant cleanup] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3c6a074a08ed3797624d4fb667564b9f3487eeaa Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add extra VFP fixed point conversion helpers Define the full set of floating point to fixed point conversion helpers required to support AArch64. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit abe66f702cac88fd6b1ccdca5d6f0c57f814ab0f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:13 2014 +0000 target-arm: Ignore most exceptions from scalbn when doing fixpoint conversion The VFP fixed point conversion helpers first call float_scalbn and then convert the result to an integer. This scalbn operation may set floating point exception flags for: * overflow & inexact (if it overflows to infinity) * input denormal squashed to zero * output denormal squashed to zero Of these, we only care about the input-denormal flag, since the output of the whole scale-and-convert operation will be an integer (so squashed-output-denormal and overflow don't apply). Suppress the others by saving the pre-scalb exception flags and only copying across a potential input-denormal flag. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 16d5b3caca11360fd1d706403221c7bef40aa6f6 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:13 2014 +0000 target-arm: Rename A32 VFP conversion helpers The VFP conversion helpers for A32 round to zero as this is the only rounding mode supported. Rename these helpers to make it clear that they round to zero and are not suitable for use in the AArch64 code. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8ed697e88b7ead01edca6bf762921b962c265c82 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:13 2014 +0000 target-arm: Prepare VFP_CONV_FIX helpers for A64 uses Make the VFP_CONV_FIX helpers a little more flexible in preparation for the A64 uses. This requires two changes: * use the correct softfloat conversion function based on itype rather than always the int32 one; this is possible now that softfloat provides int16 versions and necessary for the future conversion-to-int64 A64 variants. This also allows us to drop the awkward 'sign' macro argument. * split the 'fsz' argument which currently controls both width of the input float type and width of the output integer type into two; this will allow us to specify the A64 64-bit-int-to-single conversion function, where the two widths are different. We can also drop the (itype##_t) cast now that softfloat guarantees that all the itype##_to_float* functions take an integer argument of exactly the correct type. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f9288a76f1819c2dbf8d2873aebab6aec0f461f5 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:12 2014 +0000 softfloat: Add support for ties-away rounding IEEE754-2008 specifies a new rounding mode: "roundTiesToAway: the floating-point number nearest to the infinitely precise result shall be delivered; if the two nearest floating-point numbers bracketing an unrepresentable infinitely precise result are equally near, the one with larger magnitude shall be delivered." Implement this new mode (it is needed for ARM). The general principle is that the required code is exactly like the ties-to-even code, except that we do not need to do the "in case of exact tie clear LSB to round-to-even", because the rounding operation naturally causes the exact tie to round up in magnitude. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit dc355b764de890e1b5872d0b402dccfd9a9b5286 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:12 2014 +0000 softfloat: Refactor code handling various rounding modes Refactor the code in various functions which calculates rounding increments given the current rounding mode, so that instead of a set of nested if statements we have a simple switch statement. This will give us a clean place to add the case for the new tiesAway rounding mode. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 14c9a07eb9cae3d3bc1d39cc8815dd88337ce07a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:12 2014 +0000 softfloat: Add float16 <=> float64 conversion functions Add the conversion functions float16_to_float64() and float64_to_float16(), which will be needed for the ARM A64 instruction set. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit c4a1c5e7e2fae28ef3fde2aadf7ec6fed0a5a967 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:11 2014 +0000 softfloat: Factor out RoundAndPackFloat16 and NormalizeFloat16Subnormal In preparation for adding conversions between float16 and float64, factor out code currently done inline in the float16<=>float32 conversion functions into functions RoundAndPackFloat16 and NormalizeFloat16Subnormal along the lines of the existing versions for the other float types. Note that we change the handling of zExp from the inline code to match the API of the other RoundAndPackFloat functions; however we leave the positioning of the binary point between bits 22 and 23 rather than shifting it up to the high end of the word. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 879d096b37b1233fec334bc2c2f569ac3b8fec9a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:11 2014 +0000 softfloat: Provide complete set of accessors for fp state Tidy up the get/set accessors for the fp state to add missing ones and make them all inline in softfloat.h rather than some inline and some not. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit fd728f2f949273563f799640b863b4b94dc4c6da Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:51 2014 +0000 softfloat: Fix float64_to_uint32_round_to_zero The float64_to_uint32_round_to_zero routine is incorrect. For example, the following test pattern: 425F81378DC0CD1F / 0x1.f81378dc0cd1fp+38 will erroneously set the inexact flag. This patch re-implements the routine to use the float64_to_uint64_round_to_zero routine. If saturation occurs we ignore any flags set by the conversion function and raise only Invalid. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Message-id: 1387397961-4894-6-git-send-email-tommusta@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5e7f654fa152de246f2254707bacac31ba50c660 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:51 2014 +0000 softfloat: Fix float64_to_uint32 The float64_to_uint32 has several flaws: - for numbers between 2**32 and 2**64, the inexact exception flag may get incorrectly set. In this case, only the invalid flag should be set. test pattern: 425F81378DC0CD1F / 0x1.f81378dc0cd1fp+38 - for numbers between 2**63 and 2**64, incorrect results may be produced: test pattern: 43EAAF73F1F0B8BD / 0x1.aaf73f1f0b8bdp+63 This patch re-implements float64_to_uint32 to re-use the float64_to_uint64 routine (instead of float64_to_int64). For the saturation case, we ignore any flags which the conversion routine has set and raise only the invalid flag. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Message-id: 1387397961-4894-5-git-send-email-tommusta@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0a87a3107dad97abff5b06558b0cce6832229086 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:50 2014 +0000 softfloat: Fix float64_to_uint64_round_to_zero The float64_to_uint64_round_to_zero routine is incorrect. For example, the following test pattern: 46697351FF4AEC29 / 0x1.97351ff4aec29p+103 currently produces 8000000000000000 instead of FFFFFFFFFFFFFFFF. This patch re-implements the routine to temporarily force the rounding mode and use the float64_to_uint64 routine. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Message-id: 1387397961-4894-4-git-send-email-tommusta@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2f18bbf9844ad110e0e69ad22708f37cab1557f6 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:50 2014 +0000 softfloat: Add float32_to_uint64() This patch adds the float32_to_uint64() routine, which converts a 32-bit floating point number to an unsigned 64 bit number. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> [PMM: removed harmless but silly int64_t casts] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3c85c37f254bdfaea4e105b5014a287b5cf9514b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:50 2014 +0000 softfloat: Fix factor 2 error for scalbn on denormal inputs If the input to float*_scalbn() is denormal then it represents a number 0.[mantissabits] * 2^(1-exponentbias) (and the actual exponent field is all zeroes). This means that when we convert it to our unpacked encoding the unpacked exponent must be one greater than for a normal number, which represents 1.[mantissabits] * 2^(e-exponentbias) for an exponent field e. This meant we were giving answers too small by a factor of 2 for all denormal inputs. Note that the float-to-int routines also have this behaviour of not adjusting the exponent for denormals; however there it is harmless because denormals will all convert to integer zero anyway. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 34e1c27bc3094ffe484d9855e07ad104bddf579f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Only raise Invalid when conversions to int are out of range We implement a number of float-to-integer conversions using conversion to an integer type with a wider range and then a check against the narrower range we are actually converting to. If we find the result to be out of range we correctly raise the Invalid exception, but we must also suppress other exceptions which might have been raised by the conversion function we called. This won't throw away exceptions we should have preserved, because for the 'core' exception flags the IEEE spec mandates that the only valid combinations of exception that can be raised by a single operation are Inexact + Overflow and Inexact + Underflow. For the non-IEEE softfloat flag for input denormals, we can guarantee that that flag won't have been set for out of range float-to-int conversions because a squashed denormal by definition goes to plus or minus zero, which is always in range after conversion to integer zero. This bug has been fixed for some of the float-to-int conversion routines by previous patches; fix it for the remaining functions as well, so that they all restore the pre-conversion status flags prior to raising Invalid. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit fb3ea83aa53cead46465c74ddd1872babe9f4a3e Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Fix float64_to_uint64 The comment preceding the float64_to_uint64 routine suggests that the implementation is broken. And this is, indeed, the case. This patch properly implements the conversion of a 64-bit floating point number to an unsigned, 64 bit integer. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit c4850f9e1b9cef2ac35cd6e6f3d8d2147787740c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Make the int-to-float functions take exact-width types Currently the int-to-float functions take types which are specified as "at least X bits wide", rather than "exactly X bits wide". This is confusing and unhelpful since it means that the callers have to include an explicit cast to [u]intXX_t to ensure the correct behaviour. Fix them all to take the exactly-X-bits-wide types instead. Note that this doesn't change behaviour at all since at the moment we happen to define the 'int32' and 'uint32' types as exactly 32 bits wide, and the 'int64' and 'uint64' types as exactly 64 bits wide. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8afbdabac2a1bdc137691c46965ef8c490cb5e44 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Add 16 bit integer to float conversions Add the float to 16 bit integer conversion routines. These can be trivially implemented in terms of the int32_to_float* routines, but providing them makes our API more symmetrical and can simplify callers. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f581bf5474d2319ca37484eb63208017ac96ce0a Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:17:48 2014 +0000 softfloat: Add float to 16bit integer conversions. ARMv8 requires support for converting 32 and 64bit floating point values to signed and unsigned 16bit integers. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: updated not to incorrectly set Inexact for Invalid inputs] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 38970efafdfa8a992c177563c4f0d77062b88fd9 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Jan 6 11:47:21 2014 +0000 softfloat: Fix exception flag handling for float32_to_float16() Our float32 to float16 conversion routine was generating the correct numerical answers, but not always setting the right set of exception flags. Fix this, mostly by rearranging the code to more closely resemble RoundAndPackFloat*, and in particular: * non-IEEE halfprec always raises Invalid for input NaNs * we need to check for the overflow case before underflow * we weren't getting the tininess-detected-after-rounding case correct (somewhat academic since only ARM uses halfprec and it is always tininess-detected-before-rounding) * non-IEEE halfprec overflow raises only Invalid, not Invalid + Inexact * we weren't setting Inexact when we should Also add some clarifying comments about what the code is doing. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 9df90ad078ec782d1339bd6879b6ea117f9759f7 Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Fri Dec 20 22:09:33 2013 -0800 hw: arm_gic: Introduce gic_set_priority function To make the code slightly cleaner to look at and make the save/restore code easier to understand, introduce this function to set the priority of interrupts. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1387606179-22709-3-git-send-email-christoffer.dall@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 04050c5c6aa6f9c086a63a30b182b996fb2d3d02 Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Fri Dec 20 22:09:32 2013 -0800 arm_gic: Rename GIC_X_TRIGGER to GIC_X_EDGE_TRIGGER TRIGGER can really mean mean anything (e.g. was it triggered, is it level-triggered, is it edge-triggered, etc.). Rename to EDGE_TRIGGER to make the code comprehensible without looking up the data structure. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1387606179-22709-2-git-send-email-christoffer.dall@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7b1aa025bdd8a62b203eb0a936e20af424fa2870 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Dec 23 16:52:16 2013 +0200 target-arm: fix build with gcc 4.8.2 commit 5ce4f35781028ce1aee3341e6002f925fdc7aaf3 "target-arm: A64: add set_pc cpu method" introduces an array aarch64_cpus which is zero size if this code is built without CONFIG_USER_ONLY. In particular an attempt to iterate over this array produces a warning under gcc 4.8.2: CC aarch64-softmmu/target-arm/cpu64.o /scm/qemu/target-arm/cpu64.c: In function â??aarch64_cpu_register_typesâ??: /scm/qemu/target-arm/cpu64.c:124:5: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits] for (i = 0; i < ARRAY_SIZE(aarch64_cpus); i++) { ^ cc1: all warnings being treated as errors This is the result of ARRAY_SIZE being an unsigned type, causing "i" to be promoted to unsigned int as well. As zero size arrays are a gcc extension, it seems cleanest to add a dummy element with NULL name, and test for it during registration. We'll be able to drop this when we add more CPUs. Cc: Alexander Graf <agraf@xxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Cc: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 20131223145216.GA22663@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7fcd57e80d134deb925aa47934040a39fd5fa1e0 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Fri Jan 3 17:58:43 2014 -0800 arm/xilinx_zynq: Always instantiate the GEMs Don't conditionalise GEM instantiation on networking attachments. The device should always be present even if not attached to a network. This allows for probing of the device by expectant guests (such as OS's). This is needed because sysbus (or AXI in Xilinx's real hw case) is not self identifying so the guest has no dynamic way of detecting device absence. Also allows for testing of the GEM in loopback mode with -net none. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 55649779a68ee3ff54b24c339b6fdbdccd1f0ed7.1388800598.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit afb2530fe328079b3e4355fda9751a1dd9ef6ffb Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 23:58:20 2014 -0800 target-arm: remove raw_read|write duplication There is an inline duplication of the raw_read and raw_write function bodies. Fix by just calling raw_read/raw_write instead. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: e69281b7e1462b346cb313cf0b89eedc0568125f.1388649290.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a4f0cec6c9da10c5998fdd53845baf2ce6105830 Author: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Date: Fri Dec 20 10:33:11 2013 +0400 target-arm: use c13_context field for CONTEXTIDR Use c13_context field instead of c13_fcse for CONTEXTIDR register definition. Signed-off-by: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1387521191-15350-1-git-send-email-s.fedorov@xxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 38acd64b1cc8b9589e155d16ba4a0ccf9dc95ae4 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:40 2014 +0000 char/cadence_uart: Implement Tx flow control If the UART back-end blocks, buffer in the Tx FIFO to try again later. This stops the IO-thread busy waiting on char back-ends (which causes all sorts of performance problems). Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 4bea048b3ab38425701d82ccc1ab92545c26b79c.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 1e5d8cacb7fe509aa793ad844105fbc4fe02e015 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:40 2014 +0000 char/cadence_uart: Delete redundant rx rst logic uart_rx_reset() called immediately above already does this. Remove. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 05e30826496cf2579084ed801ac0b2c0d0a3071f.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 86baecc3e43510c3bef03a0d7e947221823864d3 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:40 2014 +0000 char/cadence_uart: Use the TX fifo for transmission Populate the TxFIFO with the Tx data before sending. Prepares support for proper Tx flow control implementation. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: bdf7f8af2ef02839bea18665701bc2612f7baa6f.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d0ac820fe4152ea3a57fc3fa9f732cc9524017a4 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:39 2014 +0000 char/cadence_uart: Fix can_receive logic The can_receive logic was only taking into account the RxFIFO occupancy. RxFIFO population is only used for the echo and normal modes however. Improve the logic to correctly return the true number of receivable characters based on the current mode: Normal mode: RxFIFO vacancy. Remote loopback: TxFIFO vacancy. Echo mode: The min of the TxFIFO and RxFIFO vacancies. Local Loopback: Return non-zero (to implement droppage) Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 36a58440c9ca5080151e95765c2c81342de8a8df.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2152e08ad12180f307bc5b838134ab745767d2e5 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:39 2014 +0000 char/cadence_uart: Remove TX timer & add TX FIFO state This tx timer implementation is flawed. Despite the controller attempting to time the guest visable assertion of the TX-empty status bit (and corresponding interrupt) the controller is still transmitting characters instantaneously. There is also no sense of multiple character delay. The only side effect of this timer is assertion of tx-empty status. So just remove the timer completely and hold tx-empty as permanently asserted (its reset status). This matches the actual behaviour of instantaneous transmission. While we are VMSD version bumping, add the tx_fifo as device state to prepare for upcomming TxFIFO flow control. Implement the interrupt generation logic for the TxFIFO occupancy. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 7a208a7eb8d79d6429fe28b1396c3104371807b2.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 11a239a51ccbf27a22e2aa5f423ff1d6f5df65a7 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:39 2014 +0000 char/cadence_uart: Define Missing SR/ISR fields Some (interrupt) status register bits relating to the TxFIFO path were not defined. Define them. This prepares support for proper Tx data path flow control. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 2068b963f0af8cc834c353944e9fa816d950b163.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 676f4c095d53841626b1ee2cbc7a53b4f6239e4e Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:38 2014 +0000 char/cadence_uart: Simplify status generation The status register bits are always pure functions of other device state. Move the generation of these bits to the update_status() function to simplify. Makes developing much easier as theres now no need to recheck status bits on all the changes to rx/tx fifo state. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 321994929f789096975104f99c55732774be4cae.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 1e77c91e2422ffa366fa5a0a39a6e7cc24a102ca Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:38 2014 +0000 char/cadence_uart: s/r_fifo/rx_fifo Rename this field to match the many other uses of "rx". Xilinx docmentation (UG585) also refers to this as "RxFIFO". Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 7386d7cee0ea175f7e53ed5ff045265528d34e32.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 823dd48761a668c8e787cb9cf07234b656a05926 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:38 2014 +0000 char/cadence_uart: Fix reset. Don't reset the uart as an init step. Register the reset function as a proper reset fn instead. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: d82cd2e65e5a6f8b6deeecb6cced61f0bf3f8c89.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 589bfb6888385ae1767fe2f94528f2dacf59509a Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:37 2014 +0000 char/cadence_uart: Add missing uart_update_state This should be rechecked on bus write accesses as such accesses may change the underlying state that generates the interrupt. Particular relevant for when the guest touches the interrupt status or mask. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1c250cd61b7b8de492fbc8b79b8370958a56d83b.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 059ca2bf0d882349aa002e10e3769d25cb923eb4 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:37 2014 +0000 char/cadence_uart: Mark struct fields as public/private As per current QOM conventions. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: a1e31bd62e9709ffb9b3efc6c120f83f30b7a660.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4d3da0f3aa5a5d0cbdb17ad49f1baf3cf1bd95a1 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:51 2014 +0000 target-arm: Give the FPSCR rounding modes names When setting rounding modes we currently just hardcode the numeric values for rounding modes in a big switch statement. With AArch64 support coming, we will need to refer to these rounding modes at different places throughout the code though, so let's better give them names so we don't get confused by accident. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, use names from ARM ARM.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5640ff62c9668651beae0a438540040fd9ee05b5 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:51 2014 +0000 target-arm: A64: Add support for floating point cond select This adds decoding support for C3.6.24 FP conditional select. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 513f1d762f12a4cfdb6cfd59db5f2fb434db60ec Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:51 2014 +0000 target-arm: A64: Add support for floating point conditional compare This adds decoding support for C3.6.23 FP Conditional Compare. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit da7dafe7ee9372322f926834ca7c0532822ad415 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add support for floating point compare Add decoding support for C3.6.22 Floating-point compare. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6163f868c9284a204ea108238f1812ad50c6bf17 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add fmov (scalar, immediate) instruction This patch adds emulation for the fmov instruction working on scalars with an immediate payload. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, rebase and use new infrastructure.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6a30667fb77601b47501172218c7eabd0086c375 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add "Floating-point data-processing (3 source)" insns This patch adds emulation for the "Floating-point data-processing (3 source)" group of instructions. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, merged single and double precision patches. Implement using muladd as suggested by Richard Henderson.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: pull field decode up a level, use register accessors] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit ec73d2e096df1848cbd4255ed2b69954498085aa Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add "Floating-point data-processing (2 source)" insns This patch adds emulation for the "Floating-point data-processing (2 source)" group of instructions. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, merge single and double precision patches. Rebase and update to new infrastructure. Incorporate FMIN/FMAX support patch by Michael Matz.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: * added convenience accessors for FP s and d regs * pulled the field decode and opcode validity check up a level] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f71a2ae50e728f775446302d84e509bf0af43899 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:49 2014 +0000 target-arm: Use VFP_BINOP macro for min, max, minnum, maxnum Use the VFP_BINOP macro to provide helpers for min, max, minnum and maxnum, rather than hand-rolling them. (The float64 max version is not used by A32 but will be needed for A64.) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e2f90565e7b3e2824fffcfcbcecf86205a1f14e2 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:49 2014 +0000 target-arm: A64: Fix vector register access on bigendian hosts The A64 128 bit vector registers are stored as a pair of uint64_t values in the register array. This means that if we're directly loading or storing a value of size less than 64 bits we must adjust the offset appropriately to account for whether the host is bigendian or not. Provide utility functions to abstract away the offsetof() calculations for the FP registers. For do_fp_st() we can sidestep most of the issues for 64 bit and smaller reg-to-mem transfers by always doing a 64 bit load from the register and writing just the piece we need to memory. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f6d8a31440c523de15f88a186b9e6daacab17054 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:49 2014 +0000 target-arm: A64: Add support for dumping AArch64 VFP register state When dumping the current CPU state, we can also get a request to dump the FPU state along with the CPU's integer state. Add support to dump the VFP state when that flag is set, so that we can properly debug code that modifies floating point registers. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, rebased. Output all registers, two per-line.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 13a7f79dfea84ddb9ff1132bf87583bdda93182d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:48 2014 +0000 default-configs: Add config for aarch64-linux-user Add a config for aarch64-linux-user, thereby enabling it as a valid target. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 08aef910d9398ba488455dbb553a8253dc24a333 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Sat Jan 4 22:15:48 2014 +0000 .travis.yml: Add aarch64-* targets Now the AArch64 targets are in mainline we can include them in our Travis test matrix. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e0ee138bf241ca493afe1419d578584b8be05c29 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Sat Jan 4 22:15:48 2014 +0000 linux-user: AArch64: Use correct values for FPSR/FPCR in sigcontext Use the helpers provided for getting the correct FPSR and FPCR values for the signal context. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1b69f006bff89e5e4710dd04be85277aab8856bf Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:47 2014 +0000 linux-user: AArch64: define TARGET_CLONE_BACKWARDS The AArch64 linux-user support was written before but merged after commit 4ce6243dc621 which cleaned up the handling of the clone() syscall argument order, so we failed to notice that AArch64 also needs TARGET_CLONE_BACKWARDS to be defined. Add this define so that clone and fork syscalls work correctly. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit fa2ef212dff8556ea92c4aef54b57efec69ca6fe Author: Michael Matz <matz@xxxxxxx> Date: Sat Jan 4 22:15:47 2014 +0000 target-arm: A64: support for ld/st/cl exclusive This implement exclusive loads/stores for aarch64 along the lines of arm32 and ppc implementations. The exclusive load remembers the address and loaded value. The exclusive store throws an an exception which uses those values to check for equality in a proper exclusive region. This is not actually the architecture mandated semantics (for either AArch32 or AArch64) but it is close enough for typical guest code sequences to work correctly, and saves us from having to monitor all guest stores. It's fairly easy to come up with test cases where we don't behave like hardware - we don't for example model cache line behaviour. However in the common patterns this works, and the existing 32 bit ARM exclusive access implementation has the same limitations. AArch64 also implements new acquire/release loads/stores (which may be either exclusive or non-exclusive). These imposes extra ordering constraints on memory operations (ie they act as if they have an implicit barrier built into them). As TCG is single-threaded all our barriers are no-ops, so these just behave like normal loads and stores. Signed-off-by: Michael Matz <matz@xxxxxxx> Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 03d05e2d0765512fb960192b6e9f9a41c47282bd Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:47 2014 +0000 target-arm: Widen exclusive-access support struct fields to 64 bits In preparation for adding support for A64 load/store exclusive instructions, widen the fields in the CPU state struct that deal with address and data values for exclusives from 32 to 64 bits. Although in practice AArch64 and AArch32 exclusive accesses will be generally separate there are some odd theoretical corner cases (eg you should be able to do the exclusive load in AArch32, take an exception to AArch64 and successfully do the store exclusive there), and it's also easier to reason about. The changes in semantics for the variables are: exclusive_addr -> extended to 64 bits; -1ULL for "monitor lost", otherwise always < 2^32 for AArch32 exclusive_val -> extended to 64 bits. 64 bit exclusives in AArch32 now use the high half of exclusive_val instead of a separate exclusive_high exclusive_high -> is no longer used in AArch32; extended to 64 bits as it will be needed for AArch64's pair-of-64-bit-values exclusives. exclusive_test -> extended to 64 bits, as it is an address. Since this is a linux-user-only field, in arm-linux-user it will always have the top 32 bits zero. exclusive_info -> stays 32 bits, as it is neither data nor address, but simply holds register indexes etc. AArch64 will be able to fit all its information into 32 bits as well. Note that the refactoring of gen_store_exclusive() coincidentally fixes a minor bug where ldrexd would incorrectly update the first CPU register even if the load for the second register faulted. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 32b64e860d6e0887b3d2ad36a940c362646146f4 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:46 2014 +0000 target-arm: aarch64: add support for ld lit Adds support for Load Register (literal), both normal and SIMD/FP forms. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 750813cfaa971bd8679d9f77b8bd21d316871f51 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:46 2014 +0000 target-arm: A64: add support for conditional compare insns this patch adds support for C3.5.4 - C3.5.5 Conditional compare (both immediate and register) Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 643dbb07d26d100487ea87153d5222674bf482d8 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:46 2014 +0000 target-arm: A64: add support for add/sub with carry This patch adds support for C3.5.3 Add/subtract (with carry): instructions ADC, ADCS, SBC, SBCS. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7826163492b306d99680f9fd5e46720404d902f0 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 09:38:07 2013 +1000 target-i386: Tidy ljmp Remove an unnecessary move opcode. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 74bdfbda5537452c59db64fab42179f01d0436b9 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 09:33:53 2013 +1000 target-i386: Rename gen_op_jmp_T0 to gen_op_jmp_v And make the destination argument explicit. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 830a19a425e7b513cd08eb1f8aa58dfc7e9d0d48 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 09:13:27 2013 +1000 target-i386: Tidy some size computation Clean up relics of multiple size domains: - MO_16 + 1 => - 1 + 1 => 0. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 33b7891bd5ea08e22aac755a145cb5c9afd2f86c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 08:54:33 2013 +1000 target-i386: Remove gen_op_mov_reg_A0 Replace with its definition. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c56baccf67c0251ce4480ecc6f72e3511add8b5e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 08:52:13 2013 +1000 target-i386: Remove gen_op_mov_TN_reg Replace with its definition. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit fd5185ecccb1ee0893dcd37324e8db96f876f866 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 08:46:59 2013 +1000 target-i386: Remove gen_op_addl_T0_T1 Replace with its definition. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 68773f84dcedf5971bf756d0b13fa7c99049ed21 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 08:43:50 2013 +1000 target-i386: Remove gen_op_mov_reg_T1 Replace with its definition. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 480a762d1795487e893918c5eb47124f275b4312 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Nov 7 08:41:38 2013 +1000 target-i386: Remove gen_op_mov_reg_T0 Replace with its definition. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit fac0aff9f3f2bb23e597ff0dad92d8eee6916c8f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 16:38:38 2013 +1000 target-i386: Tidy cpu_regs initialization Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8e31d234b224634729d02b58a8faf364a574e5d7 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 13:57:45 2013 +1000 target_i386: Clean up gen_pop_T0 Reduce ifdefs, share more code between paths, reduce the number of TCG ops generated. Avoid re-computing the size of the operation across gen_pop_T0 and gen_pop_update. Add forgotten zero-extension in the TARGET_X86_64, !CODE64, ss32 case. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 432baffe15c18af576232f22ada2f4dec88ad74a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 13:19:04 2013 +1000 target-i386: Combine gen_push_T* into gen_push_v Reduce ifdefs, share more code between paths, reduce the number of TCG ops generated. Add forgotten zero-extension in the TARGET_X86_64, !CODE64, ss32 case. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7effd62514fa42c3c6c9be15a97c98a5f76748b7 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 11:34:38 2013 +1000 target-i386: Tidy addr16 code in gen_lea_modrm Unlike the addr32, there was no bug. But we can use the same technique to reduce the number of TCG ops. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ab4e4aec78657138312948359055e20f6266bd17 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 09:37:57 2013 +1000 target-i386: Change dflag to TCGMemOp Changing the domain to TCGMemOp makes it easier to interoperate with other portions of the rest of the translator. We now only have one domain for size operands inside the translator, which makes things less confusing all the way around. There are still a number of helpers that continue to use the log2-1 domain. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6f17675a9c14125af544948791a26e3d8033e2b0 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 09:34:20 2013 +1000 target-i386: Change gen_op_mov_reg_A0 size parameter to TCGMemOp Change the domain of the parameter and update all callers. Which lets us defer completely to gen_op_mov_reg_v. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1d71ddb1c28f58e1065386725634ed36ae1d665f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 08:27:33 2013 +1000 target-i386: Change aflag to TCGMemOp Changing the domain to TCGMemOp makes it easier to interoperate with other portions of the rest of the translator. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c92aa1addeae7e3fe6876dd3dff7978f1d3449d2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 07:50:53 2013 +1000 target-i386: Change gen_op_j*z_ecx size parameter to TCGMemOp Change the domain of the parameter and update all callers. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d3f4bbe3318da00f5923ad5c9b60075f8a1cc073 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 07:44:57 2013 +1000 target-i386: Change gen_op_add_reg_* size parameter to TCGMemOp These functions used the aflags/dflags domain, which is log2-1 of the byte size. Confusingly, they used enumeration values from the log2 domain. Change the domain of the parameter and update all callers. Since we're now in a common domain, defer the deposit/extend/mov decision to gen_op_mov_reg_v. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d67dc9e6194dec1f9b361b94ada6c567d6099f39 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 07:25:05 2013 +1000 target-i386: Use TCGMemOp for 'ot' variables The 'ot' variables (operand type?) hold the log2(byte size) of the operand being manipulated. This is the same as the MO_SIZE subset of the TCGMemOp. Indeed, we often pass 'ot' to the tcg_gen_qemu_ld/st functions. Changing the type from 'int' makes it easier to see what domain the variable should be. This does require adding some default cases to some switch statements, to avoid the 'unhandled enumeration value' warning that would result from the change of type. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a7e5c7de2a634cbf7b528659c5e8a25818c5b92e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 12:38:58 2013 +1000 target-i386: Remove gen_op_andl_A0_ffff Replace it with tcg_gen_ext16u_tl, and in two cases merge with a previous move from cpu_regs. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2b98a7d75308a968472a537b215408faf0b9c628 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 12:29:14 2013 +1000 target-i386: Remove gen_op_movl_T0_T1 Replace it with its definition. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f0706f0c939ea751e8bb164f58594e254749b7fd Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 12:27:09 2013 +1000 target-i386: Remove gen_op_andl_T0_im Replace it with its definition. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 40b90233d260446a6d4099f41f0aed1b77962248 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 12:23:48 2013 +1000 target-i386: Remove gen_op_andl_T0_ffff Replace it with tcg_gen_ext16u_tl. In four places we can combine that with a previous move into cpu_T[0], and in one place we can infer that the zero-extension has already happened via the previous load. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit cc0bce884b9a3cf38b5aa8a711813e7ca1c26cac Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 12:13:44 2013 +1000 target-i386: Remove gen_movtl_T*_im Propagate the definitions into all users. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3250cff8e521ec361d3bda69acffa77b70f9525d Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 12:09:00 2013 +1000 target-i386: Remove gen_op_mov*_A0_im Propagate the definitions into all users. In two cases, this allows us to share code between the 32-bit and 64-bit immediate moves. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0ae657b11656284d5f3967c3fe9640c2a238fcd0 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 11:58:01 2013 +1000 target-i386: Remove gen_op_movl_T0_im* Propagate the definitions into all users. The only time that gen_op_movl_T1_imu was used, the input was type 'unsigned', so the replacement works identically. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1b90d56e8c46ca92f39c330a5ce38ef7f6d6ebb6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 11:51:10 2013 +1000 target-i386: Remove gen_op_movl_T0_im* Propagate the definition of gen_op_movl_T0_im to all users. The function gen_op_movl_T0_imu was unused. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 97212c8844f50b3552e991e0d3305d7d69c2a99f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 11:37:35 2013 +1000 target-i386: Remove gen_op_movl_T0_0 Propagate its definition into all users. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a7fbcbe538518108a967306c29dbb0fe76e0b512 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 11:31:34 2013 +1000 target-i386: Tidy extend + move For the known MO_32/MO_64 cases, we don't need to extend a 32-bit temp into a 64-bit temp before storing into the hardware register. We do need the extension for the MO_8/MO_16 cases, in order for the deposit_tl operation to work, so leave those alone. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d5601ad0235679a1b58e8975a34f63c5f039af36 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 5 11:14:33 2013 +1000 target-i386: Tidy extend + store We can now use tcg_gen_qemu_st_i32 directly to avoid the extension. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 80b0201384f17fd6401eb11eab79ea0e5896b496 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 09:54:48 2013 -1000 target-i386: Tidy load + truncate We can now use tcg_gen_qemu_ld_i32 directly to avoid the truncation. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 24b9c00fc3106a98adc0e89915584eadb092b745 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 09:35:30 2013 -1000 target-i386: Tidy gen_op_mov_TN_reg+tcg_gen_trunc_tl_i32 For the 16 and 32-bit cases, we don't need to truncate via a temporary register. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3655a19fdd9891c1e3a568d77483a11b2ad70951 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 09:22:04 2013 -1000 target-i386: Use MO_BE for movbe Fold the bswap into the memory operation. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4eeb3939b5b4731747cb38a9e6b8fb20062b5ef1 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 08:55:59 2013 -1000 target-i386: Remove unused arguments to gen_lea_modrm The reg_ptr and offset_ptr outputs are universally unused. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4b1fe0671f5f9324b570c5ec165c67b36b05e7d2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 08:32:39 2013 -1000 target-i386: Tidy movsl Always perform a sign-extending load. In the extremely unlikely case that we've used an 0x66 prefix, the extension to 64-bits is unnecessary but not wrong; the store will still examine only 16 bits. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c8fbc479674d00a8f9dd63f9a9d4978c4c4b96d9 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 08:28:40 2013 -1000 target-i386: Tidy mov[sz][bw] We can use the MO_SIGN bit to tidy the reg-reg switch statement as well as pass it on to gen_op_ld_v, eliminating one call. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ee3138da2f76b415cbce6466aa4083a84fc26241 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 08:16:45 2013 -1000 target-i386: Fix typo in gen_push_T1 By inspection, obviously we should be storing T[1] not T[0]. This could only happen for x86_64 in 64-bit mode with 0x66 prefix to call insn -- i.e. never. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b5afc104947369cd3d49de88dee8629193639b46 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 08:14:26 2013 -1000 target-i386: Remove gen_op_st_T1_A0 Propagate its definition into all users. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit fd8ca9f6f5250771207f7dbe88bb804ac0b90a39 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 08:12:01 2013 -1000 target-i386: Remove gen_op_st_T0_A0 Propagate its definition into all users. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d4faa3e08a13aa70bf0d9709610ab27713167df9 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 10:59:43 2013 -0700 target-i386: Introduce gen_op_st_rm_T0_A0 Too many places have the same test vs OR_TMP0 to indicate a write back to memory. Hoist that to a subroutine. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit dc732b76fa6f30bbfc46f721d52a67d0505a1445 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 10:43:41 2013 -0700 target-i386: Remove gen_op_lds_T0_A0 Replace its users by gen_op_ld_v with the MO_SIGN bit set. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0f712e109becb8c0e911209967a014ce3df21a71 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 10:39:41 2013 -0700 target-i386: Remove gen_op_ld_T1_A0 Propagate its definition into all users. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit cc1a80dfb369974bb275387f9559eafdcb6e08eb Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 10:35:24 2013 -0700 target-i386: Remove gen_op_ldu_T0_A0 Propagate its definition into all users. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 909be183823febfe579766e89f9a499ff4da3e47 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 10:30:24 2013 -0700 target-i386: Remove gen_op_ld_T0_A0 Propagate its definition into all users. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4ba9938c893c040af589a7fb1265ac19a2dc43d2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 09:54:47 2013 -0700 target-i386: Replace OT_* constants with MO_* constants The MO_8/16/32/64 constants have the same encoding and meaning as the OT_BYTE/WORD/LONG/QUAD. Since we rely on them being the same, for the qemu_ld/st helpers, standardize on the common names. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 096fc768184d5e9c47ccc4dd95d9f983fa83b9e1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:15 2014 +0000 target-arm: A64: Add support for FCVT between half, single and double Add support for FCVT between half, single and double precision. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e97db91cbf7df456a35996d7243cd0f55d23ca1a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add 1-source 32-to-32 and 64-to-64 FP instructions This patch adds support for those instructions in the "Floating-point data-processing (1 source)" group which are simple 32-bit-to-32-bit or 64-bit-to-64-bit operations (ie everything except FCVT between single/double/half precision). We put the new round-to-int helpers in helper.c because they will also be used by the new ARMv8 A32/T32 rounding instructions. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, merged single and double precision patches, updated to new infrastructure.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: reworked decode, split FCVT out into their own patch] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6a7413385d731a97cbd45c7c4b1c2cbd73d94409 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add floating-point<->integer conversion instructions Add support for the AArch64 floating-point <-> integer conversion instructions to disas_fpintconv. In the process we can rearrange and simplify the detection of unallocated encodings a little. We also correct a typo in the instruction encoding diagram for this instruction group: bit 21 is 1, not 0. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3617f86ba87a0f54b74dbaed0d92da13beb14e45 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add floating-point<->fixed-point instructions This patch adds emulation for the instruction group labeled "Floating-point <-> fixed-point conversions" in the ARM ARM. Namely this includes the instructions SCVTF, UCVTF, FCVTZS, FCVTZU (scalar, fixed-point). Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, rebased, updated to new infrastructure. Applied bug fixes from Michael Matz and Janne Grunau.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: significant cleanup] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8fe2a36f33f44e9d1333c851762ac463ad528233 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:14 2014 +0000 target-arm: A64: Add extra VFP fixed point conversion helpers Define the full set of floating point to fixed point conversion helpers required to support AArch64. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 39905e53db75b6df0cfdb65644056a9f1cd10069 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:13 2014 +0000 target-arm: Ignore most exceptions from scalbn when doing fixpoint conversion The VFP fixed point conversion helpers first call float_scalbn and then convert the result to an integer. This scalbn operation may set floating point exception flags for: * overflow & inexact (if it overflows to infinity) * input denormal squashed to zero * output denormal squashed to zero Of these, we only care about the input-denormal flag, since the output of the whole scale-and-convert operation will be an integer (so squashed-output-denormal and overflow don't apply). Suppress the others by saving the pre-scalb exception flags and only copying across a potential input-denormal flag. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6ab748af130912b92decfb1fa411ebdfd7cf8d87 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:13 2014 +0000 target-arm: Rename A32 VFP conversion helpers The VFP conversion helpers for A32 round to zero as this is the only rounding mode supported. Rename these helpers to make it clear that they round to zero and are not suitable for use in the AArch64 code. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 59af2dc86866dc14a42eec596f3d100dd3a24d1e Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:19:13 2014 +0000 target-arm: Prepare VFP_CONV_FIX helpers for A64 uses Make the VFP_CONV_FIX helpers a little more flexible in preparation for the A64 uses. This requires two changes: * use the correct softfloat conversion function based on itype rather than always the int32 one; this is possible now that softfloat provides int16 versions and necessary for the future conversion-to-int64 A64 variants. This also allows us to drop the awkward 'sign' macro argument. * split the 'fsz' argument which currently controls both width of the input float type and width of the output integer type into two; this will allow us to specify the A64 64-bit-int-to-single conversion function, where the two widths are different. We can also drop the (itype##_t) cast now that softfloat guarantees that all the itype##_to_float* functions take an integer argument of exactly the correct type. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit dcc69632089fece07a0bb4fd859b010659569fda Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:12 2014 +0000 softfloat: Add support for ties-away rounding IEEE754-2008 specifies a new rounding mode: "roundTiesToAway: the floating-point number nearest to the infinitely precise result shall be delivered; if the two nearest floating-point numbers bracketing an unrepresentable infinitely precise result are equally near, the one with larger magnitude shall be delivered." Implement this new mode (it is needed for ARM). The general principle is that the required code is exactly like the ties-to-even code, except that we do not need to do the "in case of exact tie clear LSB to round-to-even", because the rounding operation naturally causes the exact tie to round up in magnitude. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 01a0b83cdb1c29a0066cfee3445a34280b3ac03a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:12 2014 +0000 softfloat: Refactor code handling various rounding modes Refactor the code in various functions which calculates rounding increments given the current rounding mode, so that instead of a set of nested if statements we have a simple switch statement. This will give us a clean place to add the case for the new tiesAway rounding mode. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7b378119bd67609f25bd78b714d0fab922600f40 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:12 2014 +0000 softfloat: Add float16 <=> float64 conversion functions Add the conversion functions float16_to_float64() and float64_to_float16(), which will be needed for the ARM A64 instruction set. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 84c6b75d8557a6e638dc72343428b0a78b66923f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:11 2014 +0000 softfloat: Factor out RoundAndPackFloat16 and NormalizeFloat16Subnormal In preparation for adding conversions between float16 and float64, factor out code currently done inline in the float16<=>float32 conversion functions into functions RoundAndPackFloat16 and NormalizeFloat16Subnormal along the lines of the existing versions for the other float types. Note that we change the handling of zExp from the inline code to match the API of the other RoundAndPackFloat functions; however we leave the positioning of the binary point between bits 22 and 23 rather than shifting it up to the high end of the word. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e9ef30c079354db6a8eb5bd6574b948288a55b94 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:19:11 2014 +0000 softfloat: Provide complete set of accessors for fp state Tidy up the get/set accessors for the fp state to add missing ones and make them all inline in softfloat.h rather than some inline and some not. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2958f14d75b9c2ef9a68f41a3101884af307e4f8 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:51 2014 +0000 softfloat: Fix float64_to_uint32_round_to_zero The float64_to_uint32_round_to_zero routine is incorrect. For example, the following test pattern: 425F81378DC0CD1F / 0x1.f81378dc0cd1fp+38 will erroneously set the inexact flag. This patch re-implements the routine to use the float64_to_uint64_round_to_zero routine. If saturation occurs we ignore any flags set by the conversion function and raise only Invalid. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Message-id: 1387397961-4894-6-git-send-email-tommusta@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8d551c988e96ac4cfe462e6b34d513bba2da572f Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:51 2014 +0000 softfloat: Fix float64_to_uint32 The float64_to_uint32 has several flaws: - for numbers between 2**32 and 2**64, the inexact exception flag may get incorrectly set. In this case, only the invalid flag should be set. test pattern: 425F81378DC0CD1F / 0x1.f81378dc0cd1fp+38 - for numbers between 2**63 and 2**64, incorrect results may be produced: test pattern: 43EAAF73F1F0B8BD / 0x1.aaf73f1f0b8bdp+63 This patch re-implements float64_to_uint32 to re-use the float64_to_uint64 routine (instead of float64_to_int64). For the saturation case, we ignore any flags which the conversion routine has set and raise only the invalid flag. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Message-id: 1387397961-4894-5-git-send-email-tommusta@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit a757f1c2deb6c8eac4a75f8e817fa2d7c8cd2527 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:50 2014 +0000 softfloat: Fix float64_to_uint64_round_to_zero The float64_to_uint64_round_to_zero routine is incorrect. For example, the following test pattern: 46697351FF4AEC29 / 0x1.97351ff4aec29p+103 currently produces 8000000000000000 instead of FFFFFFFFFFFFFFFF. This patch re-implements the routine to temporarily force the rounding mode and use the float64_to_uint64 routine. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Message-id: 1387397961-4894-4-git-send-email-tommusta@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 47a34e009de2f4a99862e71e1d15d178dac5f259 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:50 2014 +0000 softfloat: Add float32_to_uint64() This patch adds the float32_to_uint64() routine, which converts a 32-bit floating point number to an unsigned 64 bit number. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> [PMM: removed harmless but silly int64_t casts] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0ace25a5676af233a9b5abf48599dbcc45f92dcf Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:50 2014 +0000 softfloat: Fix factor 2 error for scalbn on denormal inputs If the input to float*_scalbn() is denormal then it represents a number 0.[mantissabits] * 2^(1-exponentbias) (and the actual exponent field is all zeroes). This means that when we convert it to our unpacked encoding the unpacked exponent must be one greater than for a normal number, which represents 1.[mantissabits] * 2^(e-exponentbias) for an exponent field e. This meant we were giving answers too small by a factor of 2 for all denormal inputs. Note that the float-to-int routines also have this behaviour of not adjusting the exponent for denormals; however there it is harmless because denormals will all convert to integer zero anyway. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f2e933d20d5fd6c38bda227359b79bcc81654f99 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Only raise Invalid when conversions to int are out of range We implement a number of float-to-integer conversions using conversion to an integer type with a wider range and then a check against the narrower range we are actually converting to. If we find the result to be out of range we correctly raise the Invalid exception, but we must also suppress other exceptions which might have been raised by the conversion function we called. This won't throw away exceptions we should have preserved, because for the 'core' exception flags the IEEE spec mandates that the only valid combinations of exception that can be raised by a single operation are Inexact + Overflow and Inexact + Underflow. For the non-IEEE softfloat flag for input denormals, we can guarantee that that flag won't have been set for out of range float-to-int conversions because a squashed denormal by definition goes to plus or minus zero, which is always in range after conversion to integer zero. This bug has been fixed for some of the float-to-int conversion routines by previous patches; fix it for the remaining functions as well, so that they all restore the pre-conversion status flags prior to raising Invalid. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f883b3896ed5e180f234613aadca019fdbe7c49c Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Fix float64_to_uint64 The comment preceding the float64_to_uint64 routine suggests that the implementation is broken. And this is, indeed, the case. This patch properly implements the conversion of a 64-bit floating point number to an unsigned, 64 bit integer. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 564658dc8c5fabdc73702967590a5652bc45107f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Make the int-to-float functions take exact-width types Currently the int-to-float functions take types which are specified as "at least X bits wide", rather than "exactly X bits wide". This is confusing and unhelpful since it means that the callers have to include an explicit cast to [u]intXX_t to ensure the correct behaviour. Fix them all to take the exactly-X-bits-wide types instead. Note that this doesn't change behaviour at all since at the moment we happen to define the 'int32' and 'uint32' types as exactly 32 bits wide, and the 'int64' and 'uint64' types as exactly 64 bits wide. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 44e09132cae159ce1e2f3d0aebd62c8298224a6d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Jan 7 17:17:49 2014 +0000 softfloat: Add 16 bit integer to float conversions Add the float to 16 bit integer conversion routines. These can be trivially implemented in terms of the int32_to_float* routines, but providing them makes our API more symmetrical and can simplify callers. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e0a2db7128626a795c3657ffcaff40514e998e2f Author: Will Newton <will.newton@xxxxxxxxxx> Date: Tue Jan 7 17:17:48 2014 +0000 softfloat: Add float to 16bit integer conversions. ARMv8 requires support for converting 32 and 64bit floating point values to signed and unsigned 16bit integers. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: updated not to incorrectly set Inexact for Invalid inputs] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1bf6beec8a012cae4bb6fbc89c465127e9650c92 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Jan 6 11:47:21 2014 +0000 softfloat: Fix exception flag handling for float32_to_float16() Our float32 to float16 conversion routine was generating the correct numerical answers, but not always setting the right set of exception flags. Fix this, mostly by rearranging the code to more closely resemble RoundAndPackFloat*, and in particular: * non-IEEE halfprec always raises Invalid for input NaNs * we need to check for the overflow case before underflow * we weren't getting the tininess-detected-after-rounding case correct (somewhat academic since only ARM uses halfprec and it is always tininess-detected-before-rounding) * non-IEEE halfprec overflow raises only Invalid, not Invalid + Inexact * we weren't setting Inexact when we should Also add some clarifying comments about what the code is doing. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e3d8cc0536699b66f58b0e3a13a70ee007f61647 Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Fri Dec 20 22:09:33 2013 -0800 hw: arm_gic: Introduce gic_set_priority function To make the code slightly cleaner to look at and make the save/restore code easier to understand, introduce this function to set the priority of interrupts. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1387606179-22709-3-git-send-email-christoffer.dall@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 07c935087a5541fb167fecf3bef810de2605f93f Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Fri Dec 20 22:09:32 2013 -0800 arm_gic: Rename GIC_X_TRIGGER to GIC_X_EDGE_TRIGGER TRIGGER can really mean mean anything (e.g. was it triggered, is it level-triggered, is it edge-triggered, etc.). Rename to EDGE_TRIGGER to make the code comprehensible without looking up the data structure. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1387606179-22709-2-git-send-email-christoffer.dall@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 455e1e14bbfaf72275efeddaa7bc5d6294253eff Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Dec 23 16:52:16 2013 +0200 target-arm: fix build with gcc 4.8.2 commit 5ce4f35781028ce1aee3341e6002f925fdc7aaf3 "target-arm: A64: add set_pc cpu method" introduces an array aarch64_cpus which is zero size if this code is built without CONFIG_USER_ONLY. In particular an attempt to iterate over this array produces a warning under gcc 4.8.2: CC aarch64-softmmu/target-arm/cpu64.o /scm/qemu/target-arm/cpu64.c: In function â??aarch64_cpu_register_typesâ??: /scm/qemu/target-arm/cpu64.c:124:5: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits] for (i = 0; i < ARRAY_SIZE(aarch64_cpus); i++) { ^ cc1: all warnings being treated as errors This is the result of ARRAY_SIZE being an unsigned type, causing "i" to be promoted to unsigned int as well. As zero size arrays are a gcc extension, it seems cleanest to add a dummy element with NULL name, and test for it during registration. We'll be able to drop this when we add more CPUs. Cc: Alexander Graf <agraf@xxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Cc: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 20131223145216.GA22663@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit ec0e68ef1da316b3ead1943d8f607cc68b13e0d1 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Fri Jan 3 17:58:43 2014 -0800 arm/xilinx_zynq: Always instantiate the GEMs Don't conditionalise GEM instantiation on networking attachments. The device should always be present even if not attached to a network. This allows for probing of the device by expectant guests (such as OS's). This is needed because sysbus (or AXI in Xilinx's real hw case) is not self identifying so the guest has no dynamic way of detecting device absence. Also allows for testing of the GEM in loopback mode with -net none. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 55649779a68ee3ff54b24c339b6fdbdccd1f0ed7.1388800598.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8455bc76c76c5246694290a28c6ebd6797011c18 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 23:58:20 2014 -0800 target-arm: remove raw_read|write duplication There is an inline duplication of the raw_read and raw_write function bodies. Fix by just calling raw_read/raw_write instead. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: e69281b7e1462b346cb313cf0b89eedc0568125f.1388649290.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d045815a5712afbeb8d2c76d8b624c91cfda777c Author: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Date: Fri Dec 20 10:33:11 2013 +0400 target-arm: use c13_context field for CONTEXTIDR Use c13_context field instead of c13_fcse for CONTEXTIDR register definition. Signed-off-by: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1387521191-15350-1-git-send-email-s.fedorov@xxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 294cdac2a02d3172b69c84dec727d6ac6006bb59 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:40 2014 +0000 char/cadence_uart: Implement Tx flow control If the UART back-end blocks, buffer in the Tx FIFO to try again later. This stops the IO-thread busy waiting on char back-ends (which causes all sorts of performance problems). Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 4bea048b3ab38425701d82ccc1ab92545c26b79c.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a33f37a1784691556ed6fd3f58badfce22b761ad Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:40 2014 +0000 char/cadence_uart: Delete redundant rx rst logic uart_rx_reset() called immediately above already does this. Remove. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 05e30826496cf2579084ed801ac0b2c0d0a3071f.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 9e263f73912ba35510d7d7be4c40ba871d4b57e2 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:40 2014 +0000 char/cadence_uart: Use the TX fifo for transmission Populate the TxFIFO with the Tx data before sending. Prepares support for proper Tx flow control implementation. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: bdf7f8af2ef02839bea18665701bc2612f7baa6f.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 61654c77413d1bccb69b384d891d0c688a31430b Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:39 2014 +0000 char/cadence_uart: Fix can_receive logic The can_receive logic was only taking into account the RxFIFO occupancy. RxFIFO population is only used for the echo and normal modes however. Improve the logic to correctly return the true number of receivable characters based on the current mode: Normal mode: RxFIFO vacancy. Remote loopback: TxFIFO vacancy. Echo mode: The min of the TxFIFO and RxFIFO vacancies. Local Loopback: Return non-zero (to implement droppage) Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 36a58440c9ca5080151e95765c2c81342de8a8df.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit faa79359cdb28916b102024e49916af212b344bf Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:39 2014 +0000 char/cadence_uart: Remove TX timer & add TX FIFO state This tx timer implementation is flawed. Despite the controller attempting to time the guest visable assertion of the TX-empty status bit (and corresponding interrupt) the controller is still transmitting characters instantaneously. There is also no sense of multiple character delay. The only side effect of this timer is assertion of tx-empty status. So just remove the timer completely and hold tx-empty as permanently asserted (its reset status). This matches the actual behaviour of instantaneous transmission. While we are VMSD version bumping, add the tx_fifo as device state to prepare for upcomming TxFIFO flow control. Implement the interrupt generation logic for the TxFIFO occupancy. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 7a208a7eb8d79d6429fe28b1396c3104371807b2.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2c628d98989fa224dc3c07033ba4d89562a9bb5f Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:39 2014 +0000 char/cadence_uart: Define Missing SR/ISR fields Some (interrupt) status register bits relating to the TxFIFO path were not defined. Define them. This prepares support for proper Tx data path flow control. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 2068b963f0af8cc834c353944e9fa816d950b163.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a24234cad03d70612e30494f21062fcee5eb9f0e Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:38 2014 +0000 char/cadence_uart: Simplify status generation The status register bits are always pure functions of other device state. Move the generation of these bits to the update_status() function to simplify. Makes developing much easier as theres now no need to recheck status bits on all the changes to rx/tx fifo state. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 321994929f789096975104f99c55732774be4cae.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8998a3c0ceb174d1c6089361efe870bb4f40a27c Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:38 2014 +0000 char/cadence_uart: s/r_fifo/rx_fifo Rename this field to match the many other uses of "rx". Xilinx docmentation (UG585) also refers to this as "RxFIFO". Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 7386d7cee0ea175f7e53ed5ff045265528d34e32.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit b56fab8847e5746085c46a5bf6b5903b3b9fe957 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:38 2014 +0000 char/cadence_uart: Fix reset. Don't reset the uart as an init step. Register the reset function as a proper reset fn instead. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: d82cd2e65e5a6f8b6deeecb6cced61f0bf3f8c89.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 362f656878345e9e50b6f7c676a1961d9ecaa355 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:37 2014 +0000 char/cadence_uart: Add missing uart_update_state This should be rechecked on bus write accesses as such accesses may change the underlying state that generates the interrupt. Particular relevant for when the guest touches the interrupt status or mask. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1c250cd61b7b8de492fbc8b79b8370958a56d83b.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2c7fd04c9348abada0be331b04f9e5cbeeb2ac18 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Jan 6 10:16:37 2014 +0000 char/cadence_uart: Mark struct fields as public/private As per current QOM conventions. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: a1e31bd62e9709ffb9b3efc6c120f83f30b7a660.1388626249.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f9dfa55857f4f172d4c23011d18f260c875e4bfb Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:51 2014 +0000 target-arm: Give the FPSCR rounding modes names When setting rounding modes we currently just hardcode the numeric values for rounding modes in a big switch statement. With AArch64 support coming, we will need to refer to these rounding modes at different places throughout the code though, so let's better give them names so we don't get confused by accident. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, use names from ARM ARM.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7b2440e4384e59a3d5228cbd53b76089075e9e71 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:51 2014 +0000 target-arm: A64: Add support for floating point cond select This adds decoding support for C3.6.24 FP conditional select. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 32ca04a60fa1ab1b08bcdb9474af3ecf036f8f0f Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:51 2014 +0000 target-arm: A64: Add support for floating point conditional compare This adds decoding support for C3.6.23 FP Conditional Compare. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 244976576d47543901c8d5ccb7f1f191f74b46f5 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add support for floating point compare Add decoding support for C3.6.22 Floating-point compare. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 624490c33ccd803b730d3600d943472bfcc5fa59 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add fmov (scalar, immediate) instruction This patch adds emulation for the fmov instruction working on scalars with an immediate payload. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, rebase and use new infrastructure.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit cd54be5fdbded3346a94fcf71f4a1d9aed340d40 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add "Floating-point data-processing (3 source)" insns This patch adds emulation for the "Floating-point data-processing (3 source)" group of instructions. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, merged single and double precision patches. Implement using muladd as suggested by Richard Henderson.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: pull field decode up a level, use register accessors] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 459cc34290b2823403f9820345c8a83f66495e1d Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:50 2014 +0000 target-arm: A64: Add "Floating-point data-processing (2 source)" insns This patch adds emulation for the "Floating-point data-processing (2 source)" group of instructions. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, merge single and double precision patches. Rebase and update to new infrastructure. Incorporate FMIN/FMAX support patch by Michael Matz.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> [PMM: * added convenience accessors for FP s and d regs * pulled the field decode and opcode validity check up a level] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 286cb8b9cb04048b940bd9f385404781a42c6cff Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:49 2014 +0000 target-arm: Use VFP_BINOP macro for min, max, minnum, maxnum Use the VFP_BINOP macro to provide helpers for min, max, minnum and maxnum, rather than hand-rolling them. (The float64 max version is not used by A32 but will be needed for A64.) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 76afb0d5967ebee59efbf3bfc6a2a042f3cb06f6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:49 2014 +0000 target-arm: A64: Fix vector register access on bigendian hosts The A64 128 bit vector registers are stored as a pair of uint64_t values in the register array. This means that if we're directly loading or storing a value of size less than 64 bits we must adjust the offset appropriately to account for whether the host is bigendian or not. Provide utility functions to abstract away the offsetof() calculations for the FP registers. For do_fp_st() we can sidestep most of the issues for 64 bit and smaller reg-to-mem transfers by always doing a 64 bit load from the register and writing just the piece we need to memory. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 83d210fb670862e9df5ca19d260fd7628cd67843 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:49 2014 +0000 target-arm: A64: Add support for dumping AArch64 VFP register state When dumping the current CPU state, we can also get a request to dump the FPU state along with the CPU's integer state. Add support to dump the VFP state when that flag is set, so that we can properly debug code that modifies floating point registers. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [WN: Commit message tweak, rebased. Output all registers, two per-line.] Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0f64fdaf7bd11a9165cc4b7461fb5a316819d257 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:48 2014 +0000 default-configs: Add config for aarch64-linux-user Add a config for aarch64-linux-user, thereby enabling it as a valid target. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2d123ad256fb47bac33c38f90dafb4280879aee5 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Sat Jan 4 22:15:48 2014 +0000 .travis.yml: Add aarch64-* targets Now the AArch64 targets are in mainline we can include them in our Travis test matrix. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e0350d0c17d31b276812e659d8bdf9fc48a59951 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Sat Jan 4 22:15:48 2014 +0000 linux-user: AArch64: Use correct values for FPSR/FPCR in sigcontext Use the helpers provided for getting the correct FPSR and FPCR values for the signal context. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 749c7970d00cdb2be71ce66d65b9eb2ade668832 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:47 2014 +0000 linux-user: AArch64: define TARGET_CLONE_BACKWARDS The AArch64 linux-user support was written before but merged after commit 4ce6243dc621 which cleaned up the handling of the clone() syscall argument order, so we failed to notice that AArch64 also needs TARGET_CLONE_BACKWARDS to be defined. Add this define so that clone and fork syscalls work correctly. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2df7566445c8b0934030627dff2c2417ec6d8e27 Author: Michael Matz <matz@xxxxxxx> Date: Sat Jan 4 22:15:47 2014 +0000 target-arm: A64: support for ld/st/cl exclusive This implement exclusive loads/stores for aarch64 along the lines of arm32 and ppc implementations. The exclusive load remembers the address and loaded value. The exclusive store throws an an exception which uses those values to check for equality in a proper exclusive region. This is not actually the architecture mandated semantics (for either AArch32 or AArch64) but it is close enough for typical guest code sequences to work correctly, and saves us from having to monitor all guest stores. It's fairly easy to come up with test cases where we don't behave like hardware - we don't for example model cache line behaviour. However in the common patterns this works, and the existing 32 bit ARM exclusive access implementation has the same limitations. AArch64 also implements new acquire/release loads/stores (which may be either exclusive or non-exclusive). These imposes extra ordering constraints on memory operations (ie they act as if they have an implicit barrier built into them). As TCG is single-threaded all our barriers are no-ops, so these just behave like normal loads and stores. Signed-off-by: Michael Matz <matz@xxxxxxx> Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 90ba562c61b15f418f284751faa81aca25de2d95 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:47 2014 +0000 target-arm: Widen exclusive-access support struct fields to 64 bits In preparation for adding support for A64 load/store exclusive instructions, widen the fields in the CPU state struct that deal with address and data values for exclusives from 32 to 64 bits. Although in practice AArch64 and AArch32 exclusive accesses will be generally separate there are some odd theoretical corner cases (eg you should be able to do the exclusive load in AArch32, take an exception to AArch64 and successfully do the store exclusive there), and it's also easier to reason about. The changes in semantics for the variables are: exclusive_addr -> extended to 64 bits; -1ULL for "monitor lost", otherwise always < 2^32 for AArch32 exclusive_val -> extended to 64 bits. 64 bit exclusives in AArch32 now use the high half of exclusive_val instead of a separate exclusive_high exclusive_high -> is no longer used in AArch32; extended to 64 bits as it will be needed for AArch64's pair-of-64-bit-values exclusives. exclusive_test -> extended to 64 bits, as it is an address. Since this is a linux-user-only field, in arm-linux-user it will always have the top 32 bits zero. exclusive_info -> stays 32 bits, as it is neither data nor address, but simply holds register indexes etc. AArch64 will be able to fit all its information into 32 bits as well. Note that the refactoring of gen_store_exclusive() coincidentally fixes a minor bug where ldrexd would incorrectly update the first CPU register even if the load for the second register faulted. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 66759c063c3472fe70df0c8489ecc6fd7dc1a843 Author: Alexander Graf <agraf@xxxxxxx> Date: Sat Jan 4 22:15:46 2014 +0000 target-arm: aarch64: add support for ld lit Adds support for Load Register (literal), both normal and SIMD/FP forms. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit fc514b094e8f5aa211a36925b62348ab52243762 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:46 2014 +0000 target-arm: A64: add support for conditional compare insns this patch adds support for C3.5.4 - C3.5.5 Conditional compare (both immediate and register) Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 03468633b16e96176ffbe7fd1943f7014e63ccde Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Sat Jan 4 22:15:46 2014 +0000 target-arm: A64: add support for add/sub with carry This patch adds support for C3.5.3 Add/subtract (with carry): instructions ADC, ADCS, SBC, SBCS. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e4fe830b50b56561dae5b5c79c6eb63cc2e94a3d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:45 2014 +0000 target-arm: Widen thread-local register state fields to 64 bits The common pattern for system registers in a 64-bit capable ARM CPU is that when in AArch32 the cp15 register is a view of the bottom 32 bits of the 64-bit AArch64 system register; writes in AArch32 leave the top half unchanged. The most natural way to model this is to have the state field in the CPU struct be a 64 bit value, and simply have the AArch32 TCG code operate on a pointer to its lower half. For aarch64-linux-user the only registers we need to share like this are the thread-local-storage ones. Widen their fields to 64 bits and provide the 64 bit reginfo struct to make them visible in AArch64 state. Note that minor cleanup of the AArch64 system register encoding space means We can share the TPIDR_EL1 reginfo but need split encodings for TPIDR_EL0 and TPIDRRO_EL0. Since we're touching almost every line in QEMU that uses the c13_tls* fields in this patch anyway, we take the opportunity to rename them in line with the standard ARM architectural names for these registers. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 19917791fd1433b79d20b26440ec321d71dcfc01 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:45 2014 +0000 target-arm: Widen thread-local register state fields to 64 bits The common pattern for system registers in a 64-bit capable ARM CPU is that when in AArch32 the cp15 register is a view of the bottom 32 bits of the 64-bit AArch64 system register; writes in AArch32 leave the top half unchanged. The most natural way to model this is to have the state field in the CPU struct be a 64 bit value, and simply have the AArch32 TCG code operate on a pointer to its lower half. For aarch64-linux-user the only registers we need to share like this are the thread-local-storage ones. Widen their fields to 64 bits and provide the 64 bit reginfo struct to make them visible in AArch64 state. Note that minor cleanup of the AArch64 system register encoding space means We can share the TPIDR_EL1 reginfo but need split encodings for TPIDR_EL0 and TPIDRRO_EL0. Since we're touching almost every line in QEMU that uses the c13_tls* fields in this patch anyway, we take the opportunity to rename them in line with the standard ARM architectural names for these registers. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit b0d2b7d0f084f6b33acf7c722790da683916fee3 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:45 2014 +0000 target-arm: A64: Implement minimal set of EL0-visible sysregs Implement an initial minimal set of EL0-visible system registers: * NZCV * FPCR * FPSR * CTR_EL0 * DCZID_EL0 Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit fea505221eaf87889000378d4d33ad0dfd5f4d9d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:45 2014 +0000 target-arm: A64: Implement MRS/MSR/SYS/SYSL The AArch64 equivalent of the traditional AArch32 cp15 coprocessor registers is the set of instructions MRS/MSR/SYS/SYSL, which cover between them both true system registers and the "operations with side effects" such as cache maintenance which in AArch32 are mixed in with other cp15 registers. Implement these instructions to look in the cpregs hashtable for the register or operation. Since we don't yet populate the cpregs hashtable with any registers with the "AA64" bit set, everything will still UNDEF at this point. MSR/MRS is the first user of is_jmp = DISAS_UPDATE, so fix an infelicity in its handling where the main loop was requiring the caller to do the update of PC rather than just doing it itself. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 60322b399dc62da7cc1ccd42fbd19b017f8a5e38 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:44 2014 +0000 target-arm: Remove ARMCPU/CPUARMState from cpregs APIs used by decoder The cpregs APIs used by the decoder (get_arm_cp_reginfo() and cp_access_ok()) currently take either a CPUARMState* or an ARMCPU*. This is problematic for the A64 decoder, which doesn't pass the environment pointer around everywhere the way the 32 bit decoder does. Adjust the parameters these functions take so that we can copy only the relevant info from the CPUARMState into the DisasContext and then use that. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3523e4bd9b0b2ff05a88e09bd67be2ec8d5e9e08 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 09:49:20 2013 -0700 target-i386: Use new tcg_gen_qemu_st_* helpers In preference to the older helpers. Stores only in this patch. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3c5f41169b43953b60c415d6ab7287c92ab235ac Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Nov 2 09:30:34 2013 -0700 target-i386: Use new tcg_gen_qemu_ld_* helpers In preference to the older helpers. Loads only in this patch. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5c42a7cd983e2fee3a63c39c5c5e98a8face463c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Oct 30 22:20:42 2013 -0700 target-i386: Stop encoding DisasContext.mem_index Now that we don't combine mem_index with operand size info, we don't need to encode it. Which tidies many places that access it. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 323d18769ead123501bd4c51a9af820e846cf1d3 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Oct 30 22:04:05 2013 -0700 target-i386: Push DisasContext into load/store helpers Rather than add s->mem_index into a combined size+mem_index argument, pass the context down. This will allow cleaning up s->mem_index later. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 03afa5f808c5af74fa137a20b10f73b0b30aa563 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Nov 6 17:29:39 2013 +1000 exec: Delay CPU_LOG_TB_CPU until we actually execute a TB The previous placement could result in duplicate logging while still processing interrupts. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c950114286ea358a93ce632db0421945e1008395 Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Sun Dec 29 22:39:58 2013 -0500 migration: qmp_migrate(): keep working after syntax error If a user or QMP client enter a bad syntax for the migrate command in QMP/HMP, then the migrate command will never succeed from that point on. For example, if you enter: (qemu) migrate tcp;0:4444 migrate: Parameter 'uri' expects a valid migration protocol Then the migrate command will always fail from now on: (qemu) migrate tcp:0:4444 migrate: There's a migration process in progress The problem is that qmp_migrate() sets the migration status to MIG_STATE_SETUP and doesn't reset it on syntax error. This bug was introduced by commit 29ae8a4133082e16970c9d4be09f4b6a15034617. Reviewed-by: Michael R. Hines <mrhines@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 594278718323ca7bffaab0fb7fc6c82fa2c1cd5f Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 18:49:52 2014 -0800 qerror: Remove assert_no_error() This is no longer needed, and is obsoleted by error_abort. Remove. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 87ea75d5e135c0527c6a9dbac4317913409f28c7 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 18:49:17 2014 -0800 qemu-option: Remove qemu_opts_create_nofail This is a boiler-plate _nofail variant of qemu_opts_create. Remove and use error_abort in call sites. null/0 arguments needs to be added for the id and fail_if_exists fields in affected callsites due to argument inconsistency between the normal and no_fail variants. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 00b810532446b1037aa5d299f181ac4d1d65aa9c Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 18:48:43 2014 -0800 target-i386: Remove assert_no_error usage Replace an assert_no_error() usage with the error_abort system. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 5433a0a89e68443c9ce1cd0c7b1af23320133983 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 18:48:08 2014 -0800 hw: Remove assert_no_error usages Replace assert_no_error() usages with the error_abort system. &error_abort is passed into API calls to signal to the Error sub-system that any errors are fatal. Removes need for caller assertions. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 90c3f6e02662d2d8edf059168a037a119ed208cb Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 18:47:33 2014 -0800 qdev: Delete dead code This is unreachable code, as it's already asserted that no errors have occurred. Delete. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 5d24ee70bcbcf578614193526bcd5ed30a8eb16c Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Jan 1 18:46:59 2014 -0800 error: Add error_abort Add a special Error * that can be passed to error handling APIs to signal that any errors are fatal and should abort QEMU. There are two advantages to this: - allows for brevity when wishing to assert success of Error ** accepting APIs. No need for this pattern: Error * local_err = NULL; api_call(foo, bar, &local_err); assert_no_error(local_err); This also removes the need for _nofail variants of APIs with asserting call sites now reduced to 1LOC. - SIGABRT happens from within the offending API. When a fatal error occurs in an API call (when the caller is asserting sucess) failure often means the API itself is broken. With the abort happening in the API call now, the stack frames into the call are available at debug time. In the assert_no_error scheme the abort happens after the fact. The exact semantic is that when an error is raised, if the argument Error ** matches &error_abort, then the abort occurs immediately. The error messaged is reported. For error_propagate, if the destination error is &error_abort, then the abort happens at propagation time. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit cff8b2c6fcdc9492d1141da11f55615843fa0a5e Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 20 23:21:10 2013 +0100 monitor: add object-add (QMP) and object_add (HMP) command Add two commands that are the monitor counterparts of -object. The commands have the same Visitor-based implementation, but use different kinds of visitors so that the HMP command has a DWIM string-based syntax, while the QMP variant accepts a stricter JSON-based properties dictionary. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit ab2d0531b2e41bc5fd8f8e59405f135986599476 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 20 23:21:09 2013 +0100 monitor: add object-del (QMP) and object_del (HMP) command These two commands invoke the "unparent" method of Object. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit b0ed5e9feaf0e2881330a48c692f62e1ac6d9052 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 20 23:21:08 2013 +0100 qom: catch errors in object_property_add_child Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 28ec2598ff7d74bd9556a1786f45fc5df2aacfe1 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 20 23:21:07 2013 +0100 qom: fix leak for objects created with -object The object must be unref-ed when its variable goes out of scope. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 513b8c74c4c899cd940a79131e76c5568aa11381 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 20 23:21:06 2013 +0100 rng: initialize file descriptor to -1 The file descriptor is never initialized to -1, which makes rng-random close stdin if an object is created and immediately destroyed. If we change it to -1, we also need to protect qemu_set_fd_handler from receiving a bogus file descriptor. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit abf233294bc8a4d2c7d5f428f1408d7bdd0c02e0 Author: Jason J. Herne <jjherne@xxxxxxxxxx> Date: Wed Dec 11 13:24:14 2013 -0500 qemu-monitor: HMP cpu-add wrapper Add HMP cpu-add wrapper to allow cpu hot plugging via monitor. Signed-off-by: Jason J. Herne <jjherne@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit eca01d3a93be4041ac5858ef7676e60352e9c2ed Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Dec 3 13:00:15 2013 +0100 vl: add missing transition debug->finish_migrate This fixes an abort if you invoke the "migrate" command while the guest is being debugged. Cc: qemu-stable@xxxxxxxxxx Cc: lcapitulino@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit f5a0a5a5abe7b72ad14b8884681a25fcf3e91c16 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sat Jan 4 22:15:44 2014 +0000 target-arm: Update generic cpreg code for AArch64 Update the generic cpreg support code to also handle AArch64: AArch64-visible registers coexist in the same hash table with AArch32-visible ones, with a bit in the hash key distinguishing them. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 6e6efd612f58726189893fd4d948b7fc10acd872 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Dec 22 22:32:30 2013 +0000 target-arm: Pull "add one cpreg to hashtable" into its own function define_one_arm_cp_reg_with_opaque() has a set of nested loops which insert a cpreg entry into the hashtable for each of the possible opc/crn/crm values allowed by wildcard specifications. We're about to add an extra loop to this nesting, so pull the core of the loop (which adds a single entry to the hashtable) out into its own function for clarity. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5862ad0f55fa54f3ed05774b538a7e862a10941f Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Dec 26 12:53:39 2013 +0800 acpi unit-test: Remove temporary disk after test Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 7dbc1158bc63fdbad849d21409eeeb53f5230445 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Dec 22 20:42:05 2013 +0100 mainstone: Fix duplicate array values for key 'space' cgcc reported a duplicate initialisation. Mainstone includes a matrix keyboard where two different positions map to 'space'. QEMU uses the reversed mapping and does not map 'space' to two different matrix positions. Some other keys are either missing or might be mapped wrongly (cf. Linux kernel code). Don't fix these until someone can test them with real hardware, but add TODO comments. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 52975c313ee4b5ce2004c1ed3279272a55429ede Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Dec 22 15:22:57 2013 +0100 pxa27x: Add 'const' attribute to keyboard maps The mapping is a hardware feature, so it is relatively constant. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit f57d6693e1ad994374927d7ab7b151bb28f0cb37 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Dec 22 15:32:29 2013 +0100 pxa27x: Reduce size of keyboard matrix mapping The row and column values use only a very limited range (-1 ... 7), so a byte value is sufficient. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 88e020e55e8fcfee0ca2428fb3654469abbd21ae Author: Ingo van Lil <inguin@xxxxxx> Date: Fri Dec 20 14:44:53 2013 +0100 doc: Mention chardev:id in available devices for -serial It is possible to pre-define a character device with the -chardev option and reference its id as serial device. The man page does not mention this feature. Use case: Use stdio as serial, but do not terminate VM on Ctrl-C -chardev stdio,id=mystdio,signal=off -serial chardev:mystdio Signed-off-by: Ingo van Lil <inguin@xxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit f6f0b7d90fe0c481d33165334b4a595fa514c202 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Dec 18 22:30:26 2013 +0100 configure: Python tests must be done before help message The help message uses $python and displays its value, so that macro should be tested and set early. With this modification, configure --help displays the correct value (usually python -B) and no longer creates several *.pyc files. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 08fb77ed391dcbb35ba98fd98d81635a9f6aeb12 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Dec 18 22:09:39 2013 +0100 configure: Rewrite code for help message In the new form most lines of the code now look like the final output: there is no leading echo command and the lines are shorter. The resulting output is nearly identical: the only difference is a blank character which was deliberately removed: @@ -8,7 +8,7 @@ --interp-prefix=PREFIX where to find shared libraries, etc. use %M for cpu name [/usr/gnemul/qemu-%M] --target-list=LIST set target list (default: build everything) - Available targets: alpha-softmmu arm-softmmu + Available targets: alpha-softmmu arm-softmmu cris-softmmu i386-softmmu lm32-softmmu m68k-softmmu microblaze-softmmu microblazeel-softmmu mips-softmmu mips64-softmmu mips64el-softmmu mipsel-softmmu Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2ba82852894c762299b7d05e9a2be184116b80f0 Author: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Date: Wed Dec 18 16:42:17 2013 -0200 mempath prefault: fix off-by-one error Fix off-by-one error (noticed by Andrea Arcangeli). Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> commit 11c308b17a34932033cceca4f88b5e67009e3ebd Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Dec 19 15:30:13 2013 +0100 qdev-monitor: Improve error message for -device nonexistant Once upon a time, the error message was: qemu: -device nonexistant: Device "nonexistant" not found. Try -device '?' for a list. But progress marches on, and conversion to QError (commit 0204276) changed it into: Invalid parameter 'driver' Try with argument '?' for a list. Progress didn't stop there, of course. After a couple of iterations, we arrived at the current message (commit 6acbe4c): qemu: -device nonexistant: Parameter 'driver' expects device type Mission accomplished: this is complete mush. We've since abandoned our quest for "rich" error objects, fortunately before it turned all error messages into mush. Time to undo the damage to this one. Make it: qemu: -device nonexistant: nonexistant is not a valid device model name Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit db0f888848bc5cc578d005d04f4cf7a1105bb758 Author: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Date: Tue Nov 5 18:16:05 2013 +0800 ioapic: QOM'ify ioapic Convert 'init' function to QOM's 'realize' for ioapic and kvm-ioapic. Change variable 'ioapic_no' from static to global. Then we can drop the 'instance_no' function argument. Signed-off-by: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f97718584baa6ef919d00067b9787ba7fc5f1a5b Author: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Date: Tue Nov 5 18:16:04 2013 +0800 ioapic: Cleanup for QOM'ification Some cleanups: * ioapic_common.c: Rename 'register_types' to 'ioapic_common_register_types' * Replace inline 'DEVICE(s)' with local 'DeviceState *dev' variable Signed-off-by: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 494c271784a5e360523e874be9f67259932ea68c Author: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Date: Wed Dec 18 18:21:46 2013 +0100 icc_bus: QOM'ify ICC For consistency, QOM'ify APIC's parent bus. Signed-off-by: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ff6986ce618c69f988e4419efd67ea5cbf7792a5 Author: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Date: Tue Nov 5 18:16:03 2013 +0800 apic: QOM'ify APIC Convert 'init' function to QOM's 'realize' for apic, kvm/apic and xen/xen_apic. Signed-off-by: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d3b0c9e90a9853984c60478dae45bedf8aadf42a Author: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Date: Tue Nov 5 18:16:02 2013 +0800 apic: Cleanup for QOM'ification Do some cleanup, including: 1. Remove DO_UPCAST() for APICCommonState 2. Change DeviceState pointers from 'd' to 'dev', better to understand 3. Rename 'register_types' to specifically 'apic_common_register_types' Signed-off-by: xiaoqiang zhao <zxq_yx_007@xxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 6780a22cc71227068925e7b70faa71d6641a9b1b Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Dec 18 17:15:51 2013 +0100 qdev: Drop misleading qbus_free() function Same reasoning as commit 02a5c4c97422b40034f31265e0f139f7846172a8 ("qdev: Drop misleading qdev_free() function"). The qbus_free() function removes the child from the namespace and decrements the reference count. It does not, however, guarantee to free the child since the refcount may still be held. Just call object_unparent() directly. Suggested-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f54c19cacb44d2fad14aca6be08e4aa9b8423217 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Tue Dec 3 16:42:00 2013 +0100 qom: Detect bad reentrance during object_class_foreach() We should not modify the type hash table while it is being iterated on. Assert that it does not happen. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 14389dbd0281e901176319f5868166c706485c5e Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 20 22:14:40 2013 +0100 tests: Test QOM interface casting Add basic regression testing for QOM Interface usage. Test checks casting to interface type/class for following cases: - interface implementation in leaf class - interface implementation in intermediate (parent) class Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit b061dc41f62048acd4a34c6570c0ea396cd9d0b4 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Dec 3 16:41:59 2013 +0100 qom: Do not register interface "types" in the type table and fix names There should be no need to look up nor enumerate the interface "types", whose "classes" are really just vtables. Just create the types and add them to the interface list of the parent type. Interfaces not registering their type anymore means that accessing superclass::interface by type name will fail when initializing subclass::interface. Thus, we need to pre-initialize the subclass's parent_type field before calling type_initialize. Apart from this, the interface "types" should never be used and thus it is harmless to leave them out of the hashtable. Further, the interface types had a bug with interfaces that are inherited from a superclass: The implementation type name was wrong (for example it was subclass::superclass::interface rather than just subclass::interface). This patch fixes this as well. Reported-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 0ab4c94c844cb3953adedbd27adc378b3cf31d9e Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Wed Nov 27 20:27:33 2013 -0800 qom: Split out object and class caches The object-cast and class-cast caches cannot be shared because class caching is conditional on the target type not being an interface and object caching is unconditional. Leads to a bug when a class cast to an interface follows an object cast to the same interface type: FooObject = FOO(obj); FooClass = FOO_GET_CLASS(obj); Where TYPE_FOO is an interface. The first (object) cast will be successful and cache the casting result (i.e. TYPE_FOO will be cached). The second (class) cast will then check the shared cast cache and register a hit. The issue is, when a class cast hits in the cache it just returns a pointer cast of the input class (i.e. the concrete class). When casting to an interface, the cast itself must return the interface class, not the concrete class. The implementation of class cast caching already ensures that the returned cast result is only a pointer cast before caching. The object cast logic however does not have this check. Resolve by just splitting the object and class caches. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Tested-by: Nathan Rossi <nathan.rossi@xxxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c272758f93b9c88c884461a2baa37b8f4008bf02 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Nov 29 10:43:45 2013 +0100 qdev: Document that pointer properties kill device_add Ask users of DEFINE_PROP_PTR() to set cannot_instantiate_with_device_add_yet, or explain why it's not needed. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 1b111dc1216be2a89770fdc1ab3dfa8025957442 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Nov 29 10:43:44 2013 +0100 hw: cannot_instantiate_with_device_add_yet due to pointer props Pointer properties can be set only by code, not by device_add. A device with a pointer property can work with device_add only when the property may remain null. This is the case for property "interrupt_vector" of device "etraxfs,pic". Add a comment there. Set cannot_instantiate_with_device_add_yet for the other devices with pointer properties, with a comment explaining why. Juha Riihimäki and Peter Maydell deserve my thanks for making "pointer property must not remain null" blatantly obvious in the OMAP devices. Only device "smbus-eeprom" is actually changed. The others are all sysbus devices, which get cannot_instantiate_with_device_add_yet set in their abstract base's class init function. Setting it again in their class init function is technically redundant, but serves as insurance for when sysbus devices become available with device_add, and as documentation. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> (for ETRAX) Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 061e84f7a469ad1f94f3b5f6a5361b346ab990e8 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:02:24 2013 +0100 qdev-monitor: Avoid device_add crashing on non-device driver name Watch this: $ upstream-qemu -nodefaults -S -display none -monitor stdio QEMU 1.7.50 monitor - type 'help' for more information (qemu) device_add rng-egd /work/armbru/qemu/qdev-monitor.c:491:qdev_device_add: Object 0x2089b00 is not an instance of type device Aborted (core dumped) Crashes because "rng-egd" exists, but isn't a subtype of TYPE_DEVICE. Broken in commit 18b6dad. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d024d209045b912eb6127861fab2af6c64880efd Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 14 01:29:56 2012 +0100 target-i386: Cleanup 'foo=val' feature handling Features family, model, stepping, level, hv_spinlocks are treated similarly when passed from command line, so it's not necessary to handle each of them individually. Collapse them to one catch-all branch which will treat any not explicitly handled feature in format 'foo=val'. Any unknown feature will be rejected by property setter so there is no need to check for unknown feature in cpu_x86_parse_featurestr(), therefore it's replaced by above mentioned catch-all handler. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 258f5abe9a8786c410f98367e9e042ee16c249f2 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 14 01:16:00 2012 +0100 target-i386: Cleanup 'foo' feature handling Features check, enforce, hv_relaxed and hv_vapic are treated as boolean set to 'on' when passed from command line, so it's not necessary to handle each of them separately. Collapse them to one catch-all branch which will treat any feature in format 'foo' as boolean set to 'on'. Any unknown feature will be rejected by CPU property setter so there is no need to check for unknown feature in cpu_x86_parse_featurestr(), therefore it's replaced by above mentioned catch-all handler. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 912ffc479c0008bd983f5733daa52438b359be6f Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Tue Jun 4 15:13:14 2013 +0200 target-i386: Convert 'check' and 'enforce' to static properties * Additionally convert check_cpuid & enforce_cpuid to bool and make them members of X86CPU * Make 'enforce' feature independent from 'check' Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c8f0f88e2a4cf27bde27a31a98badd61fe212652 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Tue Jun 4 15:05:25 2013 +0200 target-i386: Convert 'hv_spinlocks' to static property Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 0f46685d1b03efaaf5189f0e9af8754cb8f8979c Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Aug 8 13:54:27 2012 +0200 target-i386: Convert 'hv_vapic' to static property Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 89314504197b305173e3f2d23ce541898ef2691c Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Aug 8 13:52:51 2012 +0200 target-i386: Convert 'hv_relaxed' to static property Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 693fa551f96cc4b7a6647f6f55636ee0b6d3a04b Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Dec 24 03:18:12 2013 +0100 cpu-exec: Optimize X86CPU usage in cpu_exec() Replace growing numbers of inline x86_env_get_cpu() with x86_cpu variable. Reviewed-by: Chen Fan <chen.fan@xxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ce5458e82e250c66fe31c716d0e44fac5b1bc349 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Dec 23 23:27:31 2013 +0000 target-arm: A64: implement FMOV Implement FMOV, ie non-converting moves between general purpose registers and floating point registers. This is a subtype of the floating point <-> integer instruction class. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit faa0ba465b772200e9775c1f5af886cfc83d0da6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Dec 23 23:27:30 2013 +0000 target-arm: A64: Add decoder skeleton for FP instructions Add a top level decoder skeleton for FP instructions. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 9618e80938d38eeee765dd23fc0b7475ae536e77 Author: Alexander Graf <agraf@xxxxxxx> Date: Mon Dec 23 23:27:30 2013 +0000 target-arm: A64: implement SVC, BRK Add decoding for the exception generating instructions, and implement SVC (syscalls) and BRK (software breakpoint). Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 52c8b9afcd019df799f5eb779395b46a610348b8 Author: Alexander Graf <agraf@xxxxxxx> Date: Mon Dec 23 23:27:30 2013 +0000 target-arm: A64: add support for 3 src data proc insns This patch adds emulation for the "Data-processing (3 source)" family of instructions, namely MADD, MSUB, SMADDL, SMSUBL, SMULH, UMADDL, UMSUBL, UMULH. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit ed6ec679a8706af4eedd7b3aa132f13bb2329abe Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Dec 23 23:27:29 2013 +0000 target-arm: A64: add support for move wide instructions This patch adds emulation for the mov wide instructions (MOVN, MOVZ, MOVK). Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit b0ff21b4f96fa8223ec252ec3e99a8a9af86cf0c Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Dec 23 23:27:29 2013 +0000 target-arm: A64: add support for add, addi, sub, subi Implement the non-carry forms of addition and subtraction (immediate, extended register and shifted register). This includes the code to calculate NZCV if the instruction calls for setting the flags. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit a5e94a9d767b2111608fe2013492392c7117cef5 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Dec 23 23:27:29 2013 +0000 target-arm: A64: add support for ld/st with index This adds support for the pre/post-index ld/st forms with immediate offsets as well as the un-scaled immediate form (which are all variations on the same 9-bit immediate 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> commit 229b7a05e3abd3def309a04b5d1c14f3a3cb9236 Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Dec 23 23:27:29 2013 +0000 target-arm: A64: add support for ld/st with reg offset This adds support for the load/store forms using a register offset. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit d5612f10a1a92afd390d4950b9f8af00ec30ad3e Author: Alex Bennée <alex.bennee@xxxxxxxxxx> Date: Mon Dec 23 23:27:28 2013 +0000 target-arm: A64: add support for ld/st unsigned imm This adds support for the forms of ld/st with a 12 bit unsigned immediate offset. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4a08d4758faf4d6497a5f6fa6be6f048a5359420 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Sun Dec 22 22:32:27 2013 +0000 target-arm: A64: add support for ld/st pair This patch support the basic load and store pair instructions and includes the generic helper functions: * do_gpr_st() * do_fp_st() * do_gpr_ld() * do_fp_ld() * read_cpu_reg_sp() * gen_check_sp_alignment() The last function gen_check_sp_alignment() is a NULL op currently but put in place to make it easy to add SP alignment checking later. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5bf58abf1cb7220d9f7d8e18f113a353cd6f260d Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Dec 23 13:33:11 2013 +0200 target-arm: fix build with gcc 4.8.2 commit 5ce4f35781028ce1aee3341e6002f925fdc7aaf3 "target-arm: A64: add set_pc cpu method" introduces an array aarch64_cpus which is zero size if this code is built without CONFIG_USER_ONLY. In particular an attempt to iterate over this array produces a warning under gcc 4.8.2: CC aarch64-softmmu/target-arm/cpu64.o /scm/qemu/target-arm/cpu64.c: In function â??aarch64_cpu_register_typesâ??: /scm/qemu/target-arm/cpu64.c:124:5: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits] for (i = 0; i < ARRAY_SIZE(aarch64_cpus); i++) { ^ cc1: all warnings being treated as errors This is the result of ARRAY_SIZE being an unsigned type, causing "i" to be promoted to unsigned int as well. As zero size arrays are a gcc extension, it seems cleanest to add a dummy element with NULL name, and test for it during registration. We'll be able to drop this when we add more CPUs. Cc: Alexander Graf <agraf@xxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Cc: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> commit 83d0704734955bf1aa7697af7be2a50e11a80a42 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 20 19:48:51 2013 +0100 virtio: add back call to virtio_bus_device_unplugged This got lost in a rebase. Reported-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit ddaaefb4dd427d6d2e41c1cfbe0cd8d8e8d6aad9 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Sat Dec 21 03:02:50 2013 +0100 piix: fix 32bit pci hole Make the 32bit pci hole start at end of ram, so all possible address space is covered. We used to try and make addresses aligned so they are easier to cover with MTRRs, but since they are cosmetic on KVM, this is probably not worth worrying about. Of course the firmware can use less than that. Leaving space unused is no problem, mapping pci bars outside the hole causes problems though. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 02e51483341a371b508c1a529782d83064c93596 Author: Chen Fan <chen.fan.fnst@xxxxxxxxxxxxxx> Date: Mon Dec 23 17:04:02 2013 +0800 target-i386: Move apic_state field from CPUX86State to X86CPU This motion is preparing for refactoring vCPU APIC subsequently. Signed-off-by: Chen Fan <chen.fan.fnst@xxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit eb2535f411c2201cd6f79e8d2b4e3f4c5b765729 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Dec 7 10:44:52 2013 +1300 cputlb: Tidy memset() of arrays Don't duplicate the array length computation in the memset() when plain sizeof() can produce the correct results. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 4fadb3bb570c5a665bd6f7e300d63c306e67b668 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Dec 7 10:44:51 2013 +1300 cputlb: Use memset() when flushing entries The size of tlb_table is 4k on a 64-bit host. For overwriting memory at this size, cacheline tricks can help. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit e5187b561ff7b241d609a2848131879072169565 Author: Amos Kong <akong@xxxxxxxxxx> Date: Mon Dec 9 19:53:15 2013 +0800 fix -boot strict regressed in commit 6ef4716 Commit 6ef4716 cleaned up parsing of -boot option argument, but accidentally dropped parameter strict. It should have been updated exactly like parameter menu. Do that. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 6f2bfda35cf1c7b8a5913570b808396ab9299873 Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Mon Dec 9 12:18:46 2013 +0400 vl: make boot_strict variable static (not used outside vl.c) Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> Reviewed-by: Amos Kong <akong@xxxxxxxxxx> commit 33dfdb56f2f3c8686d218395b871ec12fd5bf30b Author: Alexander Graf <agraf@xxxxxxx> Date: Fri Dec 6 13:52:24 2013 +0100 x86: only allow real mode to access 32bit without LMA When we're running in non-64bit mode with qemu-system-x86_64 we can still end up with virtual addresses that are above the 32bit boundary if a segment offset is set up. GNU Hurd does exactly that. It sets the segment offset to 0x80000000 and puts its EIP value to 0x8xxxxxxx to access low memory. This doesn't hit us when we enable paging, as there we just mask away the unused bits. But with real mode, we assume that vaddr == paddr which is wrong in this case. Real hardware wraps the virtual address around at the 32bit boundary. So let's do the same. This fixes booting GNU Hurd in qemu-system-x86_64 for me. Reported-by: Michael Tokarev <mjt@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 0d9e61c2619eeead4de6afa8fedec2ad9311b642 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 14:48:08 2013 +0100 linux-user: Use macro TARGET_NSIG_WORDS where possible This improves readability and simplifies the code. Cc: Riku Voipio <riku.voipio@xxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit c46b07f0d7a826ea0bb5811dd49450c2497fb926 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 14:48:06 2013 +0100 exynos4210: Use macro ARRAY_SIZE where possible This improves readability and simplifies the code. Cc: Dmitry Solodkiy <d.solodkiy@xxxxxxxxxxx> Cc: Evgeny Voevodin <e.voevodin@xxxxxxxxxxx> Cc: Igor Mitsyanko <i.mitsyanko@xxxxxxxxx> Cc: Maksim Kozlov <m.kozlov@xxxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 5d70192bcb80a5355323a4736e0fb44d8e2b6743 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 14:48:05 2013 +0100 ui/cocoa: Use macro ARRAY_SIZE where possible This improves readability and simplifies the code. Cc: Andreas Färber <andreas.faerber@xxxxxx> Cc: Anthony Liguori <aliguori@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit dff7424dc09635c33b42193fbb40c90fc9a971f4 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 14:48:04 2013 +0100 misc: Use macro ARRAY_SIZE where possible This improves readability and simplifies the code. Cc: Anthony Liguori <aliguori@xxxxxxxxxx> Cc: Gerd Hoffmann <kraxel@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2e0fc3a488ef12c4e0e3ad4e1a07efec3a19169e Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 09:24:48 2013 +0100 openrisc: Fix spelling in comment (transaltion -> translation) I also removed two hyphens in the same comment. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 112f2ac98d8bd4edafc4a4c84d0abcd9ba98a736 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Fri Dec 6 19:43:30 2013 +0100 hw/arm/highbank: Simplify code (memory region in device state) The memory region can be included by value instead of by reference in the device state. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit dcc209314afdaeec42f1e2a7bbf37eec3ace23de Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 6 17:54:27 2013 +0100 qdev: switch reset to post-order Post-order is the only sensible direction for the reset signals. For example, suppose pre-order is used and the parent has some data structures that cache children state (for example a list of active requests). When the reset method is invoked on the parent, these caches could be in any state. If post-order is used, on the other hand, these will be in a known state when the reset method is invoked on the parent. This change means that it is no longer possible to block the visit of the devices, so the callback is changed to return void. This is not a problem, because PCI was returning 1 exactly in order to achieve the same ordering that this patch implements. PCI can then rely on the qdev core having sent a "reset signal" (whatever that means) to the device, and only do the PCI-specific initialization with pci_do_device_reset. MST: fixed up virtio-ccw Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 0293214b8c5bf56a095d0a39c5821c9da66dd566 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 6 17:54:26 2013 +0100 qdev: allow both pre- and post-order vists in qdev walking functions Resetting should be done in post-order, not pre-order. However, qdev_walk_children and qbus_walk_children do not allow this. Fix it by adding two extra arguments to the functions. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9bdbbfc3a04c28dc43af5afffb32066623cb0022 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 6 17:54:25 2013 +0100 pci: clean up resetting of IRQs pci_device_reset will deassert the INTX pins, and this will make the irq_count array all-zeroes. Check that this is the case, and remove the existing loop which might even unsync irq_count and irq_state. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 81e3e75b6461c53724fe7c7918bc54468fcdaf9d Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 6 17:54:24 2013 +0100 pci: do not export pci_bus_reset qbus_reset_all can be used instead. There is no semantic change because pcibus_reset returns 1 and takes care of the device tree traversal. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit aef52ee87f324fb03e0dcd88a84bdd50c8339a5f Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 13 17:22:13 2013 +0100 ACPI/DSDT-CPU: cleanup bogus comment Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c1a1af87d8d5dce93328bbe8c3db70ff29275069 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 13 17:22:12 2013 +0100 ACPI: Q35 DSDT: fix CPU hotplug GPE0.2 handler Fix bogus CPU hotplug GPE handler. Make Q35 CPU hotplug GPE handler match PIIX4 one, since CPU hotplug event is triggered by GPE0.2 register. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 2c047956f3b27048883350c071bcd33ef8331d13 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 13 17:22:10 2013 +0100 acpi: ich9: allow guest to clear SCI rised by GPE it fixes IRQ storm since guest isn't able to lower SCI IRQ after it has been handled when it clears GPE event. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 063135032808700a5a6b0b4a781f31252da2e762 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 13 17:22:07 2013 +0100 acpi: factor out common pm_update_sci() into acpi core ... and rename it into acpi_update_sci() since it changes SCI on only on PM registers status. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit e4f308bbf9f360ee2af5b94b87aef170d8f20dc4 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Fri Dec 13 17:22:06 2013 +0100 acpi: piix4: remove not needed GPE0 mask Hardcoded GPE0 mask isn't really needed. Since GPE0_STS initialized with all bits cleared and only QEMU itself can set bits there (i.e. guest can only clear bits in it). So guest can't triger SCI by setting _STS & _EN bits and there is not reason to mask out not supported _STS bits since they shouldn't be set by QEMU in the first place. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 3bcc77ae9935c8c3d10f63492af81f1d7d99d492 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Fri Nov 29 18:12:22 2013 +0100 i440fx-test: verify firmware under 4G and 1M, both -bios and -pflash Check whether the firmware is not hidden by other memory regions. Qemu is started in paused mode: it shouldn't try to interpret generated garbage. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 27d59ccd89a5b112e5a5804250440ea30dbfb891 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Fri Nov 29 18:12:21 2013 +0100 i440fx-test: generate temporary firmware blob The blob is 64K in size and contains 0x00..0xFF repeatedly. The client code added to main() wouldn't make much sense in the long term. It helps with debugging and it silences gcc about create_blob_file() being unused, and we'll replace it in the next patch anyway. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c37805b6724e5d4c3ad41653630b72b43619474e Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Fri Nov 29 18:12:20 2013 +0100 i440fx-test: give each GTest case its own qtest The current two GTest cases, /i440fx/defaults and /i440fx/pam can share a qemu process, but the next two cases will need dedicated instances. It is messy (and order-dependent) to dynamically configure GTest cases one by one to start, stop, or keep the current qtest (*); let's just have each GTest work with its own qtest. The performance difference should be negligible. (*) As g_test_run() can be invoked at most once per process startup, and it runs GTest cases in sequence, we'd need clumsy data structures to control each GTest case to start/stop/keep the qemu instance. Or, we'd have to code the same information into the test methods themselves, which would make them even more order-dependent. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit b817e3fb5401bfab49e3c212e6daa1ff1f5a4c9a Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Fri Nov 29 18:12:19 2013 +0100 i440fx-test: qtest_start() should be paired with qtest_end() Similarly to commit 1d9358e6 ("libqtest: New qtest_end() to go with qtest_start()"). Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 637a5acb46b36a25b506ba6545e9a53350585b03 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Thu Nov 28 00:52:52 2013 +0100 hw/i386/pc_sysfw: support two flash drives This patch allows the user to usefully specify -drive file=img_1,if=pflash,format=raw,readonly \ -drive file=img_2,if=pflash,format=raw on the command line. The flash images will be mapped under 4G in their reverse unit order -- that is, with their base addresses progressing downwards, in increasing unit order. (The unit number increases with command line order if not explicitly specified.) This accommodates the following use case: suppose that OVMF is split in two parts, a writeable host file for non-volatile variable storage, and a read-only part for bootstrap and decompressible executable code. The binary code part would be read-only, centrally managed on the host system, and passed in as unit 0. The variable store would be writeable, VM-specific, and passed in as unit 1. 00000000ffe00000-00000000ffe1ffff (prio 0, R-): system.flash1 00000000ffe20000-00000000ffffffff (prio 0, R-): system.flash0 (If the guest tries to write to the flash range that is backed by the read-only drive, pflash_update() is never called; various flash programming/erase errors are returned to the guest instead. See the callers of pflash_update(), and the initialization of "pfl->ro", in "hw/block/pflash_cfi01.c".) Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit ecdbfceb0f20a3ef784bf522ed7264660aa3d150 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Dec 16 13:54:19 2013 +0200 pc_piix: document gigabyte_align Document the logic behind the below/above 4G split. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit bb43d3839c29b17a2f5c122114cd4ca978065a18 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 16 10:11:28 2013 +0100 piix: gigabyte alignment for ram Map 3G (i440fx) of memory below 4G, so the RAM pieces are nicely aligned to gigabyte borders. Keep old memory layout for (a) old machine types and (b) in case all memory fits below 4G and thus we don't have to split RAM into pieces in the first place. The later makes sure this change doesn't take away memory from 32bit guests. So, with i440fx and up to 3.5 GB of memory, all of it will be mapped below 4G. With more than 3.5 GB of memory 3 GB will be mapped below 4G and the remaining amount will be mapped above 4G. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 7ea5e78f3d8d64e99c4017ea211b7518f2629756 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:27:03 2013 +0100 qdev: Do not let the user try to device_add when it cannot work Such devices have always been unavailable and omitted from the list of available devices shown by device_add help. Until commit 18b6dad silently broke the former, setting up nasty traps for unwary users, like this one: $ qemu-system-x86_64 -nodefaults -monitor stdio -display none QEMU 1.6.50 monitor - type 'help' for more information (qemu) device_add apic Segmentation fault (core dumped) I call that a regression. Fix it. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f3b176402fa92149320dcd5479916ccb39cfa0a8 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:27:02 2013 +0100 isa: Clean up use of cannot_instantiate_with_device_add_yet Drop it when there's no obvious reason why device_add could not work. Else keep and document why. * isa-fdc: drop * i8042: drop, even though its I/O base is hardcoded (because you could conceivably still add one to a board that has none), and even though PC board code wires up the A20 line (because that wiring is optional) * port92: keep because it needs additional wiring by port92_init() * mc146818rtc: keep because it needs to be wired up by rtc_init() * m48t59_isa: keep because needs to be wired up by m48t59_init_isa() * isa-pit, kvm-pit: keep (in their abstract base pic-common) because the PIT needs additional wiring by board code, depending on HPET presence * pcspk: keep because of pointer property pit, and because realize sets global pcspk_state * vmmouse: keep because of pointer property ps2_mouse * vmport: keep because realize sets global port_state * isa-i8259, kvm-i8259: keep (in their abstract base pic-common), because the PICs' IRQ input lines are set up by board code, and the wiring of the slave to the master is hard-coded in device model code Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 04916ee9fb8ff4be4d9f612b85aef009ec57b0b4 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:27:01 2013 +0100 vt82c686: Clean up use of cannot_instantiate_with_device_add_yet A VT82C686B southbridge has multiple functions. We model each function as a separate qdev. One of them need some special wiring set up in mips_fulong2e_init() to work: the ISA bridge at 05.0. The IDE controller at 05.1 (via-ide) has always had cannot_instantiate_with_device_add_yet set, but there is no obvious reason why device_add could not work for them. Drop it. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 81aab2ff1118a4de8fd92ae89380ccfbc2870574 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:27:00 2013 +0100 piix3 piix4: Clean up use of cannot_instantiate_with_device_add_yet A PIIX3/PIIX4 southbridge has multiple functions. We model each function as a separate qdev. Two of them need some special wiring set up in pc_init1() or mips_malta_init() to work: the ISA bridge at 01.0, and the SMBus controller at 01.3. The IDE controller at 01.1 (piix3-ide, piix3-ide-xen, piix4-ide) has always had cannot_instantiate_with_device_add_yet set, but there is no obvious reason why device_add could not work for them. Drop it. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit bfa6dfd070f0cb5be37ae3bd6b90bdd67849c311 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:26:59 2013 +0100 ich9: Document why cannot_instantiate_with_device_add_yet An ICH9 southbridge contains several PCI devices, some of them with multiple functions. We model each function as a separate qdev. Two of them need some special wiring set up in pc_q35_init() to work: the LPC controller at 00:1f.0, and the SMBus controller at 00:1f.3. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 08c58f92f66dcf0a9097c3a6a65bcc4ffd71268f Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:26:58 2013 +0100 pci-host: Consistently set cannot_instantiate_with_device_add_yet Many PCI host bridges consist of a sysbus device and a PCI device. You need both for the thing to work. Arguably, these bridges should be modelled as a single, composite devices instead of pairs of seemingly independent devices you can only use together, but we're not there, yet. Since the sysbus part can't be instantiated with device_add, yet, permitting it with the PCI part is useless. We shouldn't offer useless options to the user, so let's set cannot_instantiate_with_device_add_yet for them. It's already set for Bonito, Grackle, i440FX and Raven. Document why. Set it for the others: dec-21154, e500-host-bridge, gt64120_pci, mch, pbm-pci, ppc4xx-host-bridge, sh_pci_host, u3-agp, uni-north-agp, uni-north-internal-pci, uni-north-pci, and versatile_pci_host. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f37a4374bae20ca678b808b5ee32319e943b1b4b Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:26:57 2013 +0100 apic: Document why cannot_instantiate_with_device_add_yet Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ffa957148698eec9cfdaf6e0c1b43cda8828cd61 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:26:56 2013 +0100 cpu: Document why cannot_instantiate_with_device_add_yet Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 837d37167dc446af8a91189108b363c04609e296 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:26:55 2013 +0100 sysbus: Set cannot_instantiate_with_device_add_yet device_add plugs devices into suitable bus. For "real" buses, that actually connects the device. For sysbus, the connections need to be made separately, and device_add can't do that. The device would be left unconnected, and could not possibly work. Quite a few, but not all sysbus devices already set cannot_instantiate_with_device_add_yet in their class init function. Set it in their abstract base's class init function sysbus_device_class_init(), and remove the now redundant assignments from device class init functions. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit efec3dd631d94160288392721a5f9c39e50fb2bc Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Nov 28 17:26:54 2013 +0100 qdev: Replace no_user by cannot_instantiate_with_device_add_yet In an ideal world, machines can be built by wiring devices together with configuration, not code. Unfortunately, that's not the world we live in right now. We still have quite a few devices that need to be wired up by code. If you try to device_add such a device, it'll fail in sometimes mysterious ways. If you're lucky, you get an unmysterious immediate crash. To protect users from such badness, DeviceClass member no_user used to make device models unavailable with -device / device_add, but that regressed in commit 18b6dad. The device model is still omitted from help, but is available anyway. Attempts to fix the regression have been rejected with the argument that the purpose of no_user isn't clear, and it's prone to misuse. This commit clarifies no_user's purpose. Anthony suggested to rename it cannot_instantiate_with_device_add_yet_due_to_internal_bugs, which I shorten somewhat to keep checkpatch happy. While there, make it bool. Every use of cannot_instantiate_with_device_add_yet gets a FIXME comment asking for rationale. The next few commits will clean them all up, either by providing a rationale, or by getting rid of the use. With that done, the regression fix is hopefully acceptable. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f976b09ea249cccc3fd41c98aaf6512908db0bae Author: Alexander Graf <agraf@xxxxxxx> Date: Fri Dec 20 11:01:50 2013 +0100 PPC: Fix compilation with TCG debug The recent VSX patches broken compilation of QEMU when configurated with --enable-debug, as it was treating "target long" TCG variables as "i64" which is not true for 32bit targets. This patch fixes all the places that the compiler has found to use the correct variable type and if necessary manually cast. Reported-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 8a1bd2973ed5f99a3c37c9afdff823c4a22152b1 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 20 15:54:27 2013 +0100 scsi-disk: add UNMAP limits to block limits VPD page Linux prefers WRITE SAME to UNMAP if the limits are zero, and WRITE SAME does not discard anything unless the device can guarantee that the resulting block is zero. Setting the maximum unmap block and descriptor counts to non-zero makes Linux choose UNMAP and fixes thin provisioning on glusterfs. While the maximum unmap block count can have some effect on performance, the (suggested) maximum number of descriptors is not particularly important so I didn't add a customization option. SCSI drivers are used to online firmware updates so I'm not yet adding versioning support for SCSI, but we're probably getting close to the point when it's worth thinking about it. Reported-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e8092f7ae1c71419829879e18ce2dd7249a4d00f Merge: 3376f41 10c8599 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Sat Dec 21 16:46:07 2013 +0100 Merge tag 'signed-s390-for-upstream' of git://github.com/agraf/qemu Patch queue for s390 - 2013-12-18 This covers mostly minor bug fixes and implements the SIGP START hypercall which allows to start a remote CPU without changing its state. Cornelia Huck (1): s390x/kvm: Fix diagnose handling. Thomas Huth (7): s390x/kvm: Removed duplicated SIGP defines s390x/kvm: Removed s390_store_status stub s390x/kvm: Fix coding style in handle_sigp() s390x/kvm: Implemented SIGP START s390x/kvm: Simplified the calculation of the SIGP order code s390x/kvm: Fixed condition code for unknown SIGP orders s390x/ioinst: CHSC has to set a condition code * tag 'signed-s390-for-upstream' of git://github.com/agraf/qemu: s390x/ioinst: CHSC has to set a condition code s390x/kvm: Fixed condition code for unknown SIGP orders s390x/kvm: Simplified the calculation of the SIGP order code s390x/kvm: Implemented SIGP START s390x/kvm: Fix coding style in handle_sigp() s390x/kvm: Removed s390_store_status stub s390x/kvm: Removed duplicated SIGP defines s390x/kvm: Fix diagnose handling. commit 3376f4151e4ce0534b35c49c56037cb347293c85 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Dec 11 07:56:47 2013 +0100 target-sh4: Use new qemu_ld/st opcodes Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 5f68f5ae444725de4f35d99f1026155fadaf514b Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Dec 11 08:35:27 2013 +0100 target-mips: Use new qemu_ld/st opcodes Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 8589467f9419b86644a1a5ccab670c948e148efd Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Tue Dec 10 10:35:28 2013 +0100 tcg/i386: fix a comment The comments apply to 8-bit stores, not 8-byte stores. Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 2a13f991123fa16841e6d94b02a9cc2c76d91725 Author: Corey Bryant <coreyb@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 18 11:48:11 2013 -0500 seccomp: exit if seccomp_init() fails This fixes a bug where we weren't exiting if seccomp_init() failed. Signed-off-by: Corey Bryant <coreyb@xxxxxxxxxxxxxxxxxx> Acked-by: Eduardo Otubo <otubo@xxxxxxxxxxxxxxxxxx> Acked-by: Paul Moore <pmoore@xxxxxxxxxx> commit 18da7f94cdce130f2a71387de4980ffa817181a1 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Dec 16 14:45:33 2013 +0800 commit: Remove unused check We support top == active for commit now, remove the check and add an assertion here. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4de43470f2f35762b4b3e6a59b4aed55e239024a Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Dec 16 14:45:32 2013 +0800 qemu-iotests: Update test cases for commit active Factor out commit test common logic into super class, and update test of committing the active image. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 20a63d2cec838c2dde4d246c4d7abe747d9b7a11 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Dec 16 14:45:31 2013 +0800 commit: Support commit active layer If active is top, it will be mirrored to base, (with block/mirror.c code), then the image is switched when user completes the block job. QMP documentation is updated. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 03544a6e9ecc1be115e8a29bd929f83b467d4816 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Dec 16 14:45:30 2013 +0800 block: Add commit_active_start() commit_active_start is implemented in block/mirror.c, It will create a job with "commit" type and designated base in block-commit command. This will be used for committing active layer of device. Sync mode is removed from MirrorBlockJob because there's no proper type for commit. The used information is is_none_mode. The common part of mirror_start and commit_active_start is moved to mirror_start_job(). Fix the comment wording for commit_start. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5bc361b8134eff68e2c40916d1cf58b3523d223b Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Dec 16 14:45:29 2013 +0800 mirror: Move base to MirrorBlockJob This allows setting the base before entering mirror_run, commit will make use of it. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f95c625ce4cb7863795fcc36502ac58a44fdb2f1 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Dec 16 14:45:28 2013 +0800 mirror: Don't close target Let reference count manage target and don't call bdrv_close here. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit de99c417f6208a64b68e3b35d2aecbca1f60eae0 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Dec 19 16:26:44 2013 +0100 qemu-iotests: drop duplicate virtio-blk initialization failure Commit 75884afd5c6c42e523b08565e289dbe319e17ad9 ("virtio-blk: Convert to QOM realize") dropped a duplicate error_report() call. Now we no longer get the following error message twice: QEMU_PROG: -drive if=virtio: Device initialization failed. Update qemu-iotests 051. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 917703c179d4483d050fe112a2a81acec3d6ffd7 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Dec 20 09:48:48 2013 +0800 vmdk: Allow vmdk_create to work with protocol This improves vmdk_create to use bdrv_* functions to replace qemu_open and other fd functions. The error handling are improved as well. One difference is that bdrv_pwrite will round up buffer to sectors, so for description file, an extra bdrv_truncate is used in the end to drop inding zeros. Notes: - A bonus bug fix is correct endian is used in initializing GD entries. - ROUND_UP and DIV_ROUND_UP are used where possible. I tested that new code produces exactly the same file as previously. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Tested-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b47053bd0359c68094d7a25a65687c0844771e34 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Dec 9 13:24:36 2013 +0800 vmdk: Check VMFS extent line field number VMFS extent line in description file should be with 4 fields: RW <size> VMFS "file-name.vmdk" Check the number explicitly and report error if offset is appended as FLAT, which should be invalid format. Reported-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8282db1b2e7394574cb55fcc608c5cb0df159d8f Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Tue Dec 17 13:56:06 2013 -0500 docs: updated qemu-img man page and qemu-doc to reflect VHDX support. The man page for qemu-img, and the qemu-doc, did not mention VHDX as a supported format. This adds in reference to VHDX in those documents. [Stefan Weil <sw@xxxxxxxxxxx> suggested s/Block Size/Block size/ for consistency. I have made this change. --Stefan] Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7e30e6a6746b417c7e0dbc9af009560fbb63f336 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Tue Dec 17 05:33:37 2013 -0500 block: vhdx - improve error message, and .bdrv_check implementation If there is a dirty log file to be replayed in a VHDX image, it is replayed in .vhdx_open(). However, if the file is opened read-only, then a somewhat cryptic error message results. This adds a more helpful error message for the user. If an image file contains a log to be replayed, and is opened read-only, the user is instructed to run 'qemu-img check -r all' on the image file. Running qemu-img check -r all will cause the image file to be opened r/w, which will replay the log file. If a log file replay is detected, this is flagged, and bdrv_check will increase the corruptions_fixed count for the image. [Fixed typo in error message that was pointed out by Eric Blake <eblake@xxxxxxxxxx>. --Stefan] Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 219c252193862898430e5dea5efb7447877aaa85 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Dec 17 08:57:10 2013 +0100 block/iscsi: Fix compilation for libiscsi 1.4.0 (API change) Function iscsi_read10_task got additional parameters starting with version libiscsi 1.5.0. libiscsi 1.4.0 is still widely used (Debian wheezy, jessie and other Linux distributions currently provide packages for QEMU which use it), so we still need support for this older API. Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c27de2a3e9c8664116287d639bacd600e61a6b45 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Dec 11 09:49:14 2013 +0100 qapi-schema: fix QEMU 1.8 references We are moving boldly on to QEMU 2.0 in the next release. Some patches written at a time where we assumed 1.8 would be the next version number managed to sneak in. s/1.8/2.0/ in qapi-schema.json Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 87b7f2f8c8da4d2da2728f0f1ad207973f1ea834 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Dec 10 13:27:01 2013 +0100 dataplane: replace hostmem with memory_region_find Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8c1b566fd165af6cb12d6ef69eb554a347641e20 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Dec 10 13:27:00 2013 +0100 dataplane: change vring API to use VirtQueueElement Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 781c117f3758bdb21e982d2aebba81febceccfe5 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Dec 10 13:26:59 2013 +0100 vring: factor common code for error exits Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4d684832e54afe971fd8f94cb830ec1e135648e7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Dec 10 13:26:58 2013 +0100 vring: create a common function to parse descriptors Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e50d7607f1800c9f9c576229c6119e4c82f456d6 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Sat Dec 14 01:29:28 2013 +0800 sheepdog: fix dynamic grow for running qcow2 format When running qcow2 over sheepdog, we might meet following problem qemu-system-x86_64: shrinking is not supported And cause IO errors to Guest. This is because we abuse bs->total_sectors, which is manipulated by generic block layer and race with sheepdog code. We should directly check if offset > vdi_size to dynamically enlarge the volume instead of 'offset > bs->total_sectors', which will cause problem when following case happens: vdi_size > offset > bs->total_sectors # then trigger sd_truncate() to shrink the volume wrongly. Cc: qemu-devel@xxxxxxxxxx Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reported-by: Hadrien KOHL <hadrien.kohl@xxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f8251db121c3f051b22a7536b97d160c30bcccd4 Merge: 3dc7e2a 5fe269b Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Dec 19 17:03:17 2013 -0800 Merge remote-tracking branch 'agraf/tags/signed-ppc-for-upstream' into staging Patch queue for ppc - 2013-12-20 Alexander Graf (3): PPC: Use default pci bus name for grackle and heathrow roms: Flush icache when writing roms to guest memory PPC: Add VSX to hflags Alexey Kardashevskiy (5): powerpc: add PVR mask support target-ppc: move POWER7+ to a separate family spapr-rtas: replace return code constants with macros spapr-rtas: add ibm, (get|set)-system-parameter spapr: make sure RMA is in first mode of first memory node Greg Kurz (1): target-ppc: add stubs for KVM breakpoints Paolo Bonzini (1): spapr: tie spapr-nvram to -pflash Paul Mackerras (1): spapr: limit numa memory regions by ram size Peter Crosthwaite (2): device_tree: s/qemu_devtree/qemu_fdt globally device_tree: qemu_fdt_setprop: Rename val_array arg Tom Musta (19): Declare and Enable VSX Add MSR VSX and Associated Exception Add VSX Instruction Decoders Add VSR to Global Registers Add lxvd2x Add stxvd2x Add xxpermdi Add lxsdx Add lxvdsx Add lxvw4x Add stxsdx Add stxvw4x Add VSX Scalar Move Instructions Add VSX Vector Move Instructions Add Power7 VSX Logical Instructions Add xxmrgh/xxmrgl Add xxsel Add xxspltw Add xxsldwi * agraf/tags/signed-ppc-for-upstream: (32 commits) spapr: limit numa memory regions by ram size spapr: make sure RMA is in first mode of first memory node device_tree: qemu_fdt_setprop: Rename val_array arg device_tree: s/qemu_devtree/qemu_fdt globally PPC: Add VSX to hflags Add xxsldwi Add xxspltw Add xxsel Add xxmrgh/xxmrgl Add Power7 VSX Logical Instructions Add VSX Vector Move Instructions Add VSX Scalar Move Instructions roms: Flush icache when writing roms to guest memory spapr: tie spapr-nvram to -pflash PPC: Use default pci bus name for grackle and heathrow spapr-rtas: add ibm, (get|set)-system-parameter spapr-rtas: replace return code constants with macros target-ppc: move POWER7+ to a separate family Add stxvw4x Add stxsdx ... commit 5fe269b16c6dc8f19da3e8c13d4c66958b00d2f0 Author: Paul Mackerras <paulus@xxxxxxxxx> Date: Mon Nov 25 14:14:51 2013 +1100 spapr: limit numa memory regions by ram size This makes sure that all NUMA memory blocks reside within RAM or have zero length. Reviewed-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit c4177479069d6d643e0e0f90595795406db7efbf Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Nov 25 14:14:50 2013 +1100 spapr: make sure RMA is in first mode of first memory node The SPAPR specification says that the RMA starts at the LPAR's logical address 0 and is the first logical memory block reported in the LPARâ??s device tree. So SLOF only maps the first block and that block needs to span the full RMA. This makes sure that the RMA area is where SLOF expects it. Reviewed-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit be5907f2cc6d075b1d687e51a0e0d8ac074a7ac8 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Nov 11 18:15:21 2013 +1000 device_tree: qemu_fdt_setprop: Rename val_array arg Looking at the implementation, this doesn't really have a lot to do with arrays. Its just a pointer to a buffer and is passed through to the wrapped fn (qemu_fdt_setprop) unchanged. So rename to make it consistent with libfdt, which in the wrapped function just calls it "val". Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5a4348d1114b7f3dccc578e39e33ef07a1cfabc7 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Mon Nov 11 18:14:41 2013 +1000 device_tree: s/qemu_devtree/qemu_fdt globally The qemu_devtree API is a wrapper around the fdt_ set of APIs. Rename accordingly. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> [agraf: also convert hw/arm/virt.c] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit c2b63f03977a84d0584d82be6981e4eb5f4faacd Author: Alexander Graf <agraf@xxxxxxx> Date: Wed Dec 18 09:21:02 2013 +0100 PPC: Add VSX to hflags We generate different code depending on whether MSR_VSX is set or clear, so it needs to be part of our hflags too which indicate whether we're still in the same translation block cache bucket. Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit acc429682c71968b8aef37822879dda3b54dda96 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:23 2013 -0500 Add xxsldwi This patch adds the VSX Shift Left Double by Word Immediate (xxsldwi) instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 76c15fe0bdaa5b0c4b458c2b291e27a24494a77f Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:22 2013 -0500 Add xxspltw This patch adds the VSX Splat Word (xxsplatw) instruction. This is the first instruction to use the UIM immediate field and consequently a decoder is also added. V2: reworked implementation per Richard Henderson's comments. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 551e3ef72e59d3975073e2ea3aaf2f7508323063 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:21 2013 -0500 Add xxsel This patch adds the VSX Select (xxsel) instruction. The xxsel instruction has four VSR operands. Thus the xC instruction decoder is added. The xxsel instruction is massively overloaded in the opcode table since only bits 26 and 27 are opcode bits. This overloading is done in matrix fashion with two macros (GEN_XXSEL_ROW and GEN_XX_SEL). V2: (1) eliminated unecessary XXSEL macro (2) tighter implementation using tcg_gen_andc_i64. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit ce577d2e48e756f17d4c4a6c6bdc96924a157ca0 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:20 2013 -0500 Add xxmrgh/xxmrgl This patch adds the VSX Merge High Word and VSX Merge Low Word instructions. V2: Now implemented using deposit (per Richard Henderson's comment) Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 79ca8a6a76517edb4f54793c638259b9e6dfce66 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:19 2013 -0500 Add Power7 VSX Logical Instructions This patch adds the VSX logical instructions that are defined by the Version 2.06 Power ISA (aka Power7): - xxland - xxlandc - xxlor - xxlxor - xxlnor Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit be574920b1285c0505ad116795d3a646422a1b8e Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:18 2013 -0500 Add VSX Vector Move Instructions This patch adds the vector move instructions: - xvabsdp - Vector Absolute Value Double-Precision - xvnabsdp - Vector Negative Absolute Value Double-Precision - xvnegdp - Vector Negate Double-Precision - xvcpsgndp - Vector Copy Sign Double-Precision - xvabssp - Vector Absolute Value Single-Precision - xvnabssp - Vector Negative Absolute Value Single-Precision - xvnegsp - Vector Negate Single-Precision - xvcpsgnsp - Vector Copy Sign Single-Precision V3: Per Paolo Bonzini's suggestion, used a temporary for the sign mask and andc. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit df020ce07045413ab3205916a3cde64bb150694c Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:17 2013 -0500 Add VSX Scalar Move Instructions This patch adds the VSX scalar move instructions: - xsabsdp (Scalar Absolute Value Double-Precision) - xsnabspd (Scalar Negative Absolute Value Double-Precision) - xsnegdp (Scalar Negate Double-Precision) - xscpsgndp (Scalar Copy Sign Double-Precision) A common generator macro (VSX_SCALAR_MOVE) is added since these instructions vary only slightly from each other. Macros to support VSX XX2 and XX3 form opcodes are also added. These macros handle the overloading of "opcode 2" space (instruction bits 26:30) caused by AX and BX bits (29 and 30, respectively). V3: Per feedback from Paolo Bonzini, moved the sign mask into a temporary and used andc. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 582b55a96ac4f66cea64d82e47651bd5ef38a8ec Author: Alexander Graf <agraf@xxxxxxx> Date: Wed Dec 11 14:17:44 2013 +0100 roms: Flush icache when writing roms to guest memory We use the rom infrastructure to write firmware and/or initial kernel blobs into guest address space. So we're basically emulating the cache off phase on very early system bootup. That phase is usually responsible for clearing the instruction cache for anything it writes into cachable memory, to ensure that after reboot we don't happen to execute stale bits from the instruction cache. So we need to invalidate the icache every time we write a rom into guest address space. We do not need to do this for every DMA since the guest expects it has to flush the icache manually in that case. This fixes random reboot issues on e5500 (booke ppc) for me. Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3978b863a5d8ac1c02848bf57d0a7f7067826a8a Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 10:27:40 2013 +0100 spapr: tie spapr-nvram to -pflash spapr-nvram's drive property is currently connected to a non-existent "-machine nvram=<drivename>" option. Instead, tie it to -pflash like other non-volatile RAM devices. This provides the following possibilities for adding a backend for the sPAPR non-volatile RAM: * -pflash filename * -drive if=pflash,file=filename,format=raw,... * -drive if=none,file=filename,format=raw,id=foo,... -global spapr-nvram.drive=foo Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 8a0e11045d5f50d300e0ab1ba05f4c8217fb5dcb Author: Alexander Graf <agraf@xxxxxxx> Date: Wed Dec 4 12:42:32 2013 +0100 PPC: Use default pci bus name for grackle and heathrow There's no good reason to call our bus "pci" rather than let the default bus name take over ("pci.0"). The big downside to calling it different from anyone else is that tools that pass -device get confused. They are looking for a bus "pci.0" rather than "pci". To make life easier for everyone, let's just drop the name override. Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3ada6b113726ae554154f6e5367bf4b4ed110bbe Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Nov 19 15:28:55 2013 +1100 spapr-rtas: add ibm, (get|set)-system-parameter This adds very basic handlers for ibm,get-system-parameter and ibm,set-system-parameter RTAS calls. The only parameter handled at the moment is "platform-processor-diagnostics-run-mode" which is always disabled and does not support changing. This is expected to make "ppc64_cpu --run-mode=1" happy. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> [agraf: s/papameter/parameter/g] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit a64d325df1ce9b554e15d612b80775159cc4d7a6 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Nov 19 15:28:54 2013 +1100 spapr-rtas: replace return code constants with macros Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit b650d6a2fcb77e2e42872ebd102ba387d547ab77 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Nov 19 12:39:15 2013 +1100 target-ppc: move POWER7+ to a separate family So far POWER7+ was a part of POWER7 family. However it has a different PVR base value so in order to support PVR masks, it needs a separate family class. This adds a new family class, PVR base and mask values and moves Power7+ v2.1 CPU to a new family. The class init function is copied from the POWER7 family. This defines a firmware name for the new family as "PowerPC,POWER7+" instead of previously used "PowerPC,POWER7" from the POWER7 family. The reason for that is that the Sapphire firmware (a h0st firmware) uses "PowerPC,POWER7+" already and since no specification defines exactly the CPU nodes naming in the device tree, we better stay in sync with the host firmware. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 86e61ce3d0e4806519c79f2555f20b7b3283bdab Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:16 2013 -0500 Add stxvw4x This patch adds the Store VSX Vector Word*4 Indexed (stxvw4x) instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 9231ba9ee9c7d68364a28657109d2f7c32e12971 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:15 2013 -0500 Add stxsdx This patch adds the Store VSX Scalar Doubleword Indexed (stxsdx) instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 897e61d13777a5995d3cd12fcaf44eb4bbb5439c Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:14 2013 -0500 Add lxvw4x This patch adds the Load VSX Vector Word*4 Indexed (lxvw4x) instruction. V2: changed to use deposit_i64 per Richard Henderson's review. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit ca03b46765d4633f5746764696058b0cb33ac487 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:13 2013 -0500 Add lxvdsx This patch adds the Load VSX Vector Doubleword & Splat Indexed (lxvdsx) instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit fa1832d7e2fccfe3ea55d2885c023daa285342d4 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Fri Nov 1 08:21:12 2013 -0500 Add lxsdx This patch adds the Load VSX Scalar Doubleowrd Indexed (lxsdx) instruction. The lower 8 bytes of the target register are undefined; this implementation leaves those bytes unaltered. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit cd73f2c992765141b3497551ebdf841b26c238ca Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Oct 22 22:09:35 2013 +1100 Add xxpermdi This patch adds the xxpermdi instruction. The instruction uses bits 22, 23, 29 and 30 for non-opcode fields (DM, AX and BX). This results in overloading of the opcode table with aliases, which can be seen in the GEN_XX3FORM_DM macro. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit fbed2478e9ba22f091e3842123252a902dc5b98d Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Oct 22 22:09:00 2013 +1100 Add stxvd2x This patch adds the stxvd2x instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 304af367427301697df32112c50448b7d55c7054 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Oct 22 22:08:32 2013 +1100 Add lxvd2x This patch adds the lxvd2x instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 472b24ce2b4f22363ec9a556e479be6ad5180727 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Oct 22 22:07:41 2013 +1100 Add VSR to Global Registers This patch adds VSX VSRs to the the list of global register indices. More specifically, it adds the lower halves of the first 32 VSRs to the list of global register indices. The upper halves of the first 32 VSRs are already defined via cpu_fpr[]. And the second 32 VSRs are already defined via the cpu_avrh[] and cpu_avrl[] arrays. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit f9fc6d810f6777a253337ba050639d266e9a3538 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Oct 22 22:06:46 2013 +1100 Add VSX Instruction Decoders This patch adds decoders for the VSX fields XT, XS, XA, XB and DM. The first four are split fields and a general helper for these types of fields is also added. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 1f29871cb7518692cf5c1fa8c19b117c789ff7f0 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Oct 22 22:06:17 2013 +1100 Add MSR VSX and Associated Exception This patch adds support for the VSX bit of the PowerPC Machine State Register (MSR) as well as the corresponding VSX Unavailable exception. The VSX bit is added to the defined bits masks of the Power7 and Power8 CPU models. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 74f239975501cf0ad886a5d40ce40aecbb9dc0b2 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Tue Oct 22 22:05:46 2013 +1100 Declare and Enable VSX This patch adds the flag POWERPC_FLAG_VSX to the list of defined flags and also adds this flag to the list of supported features of the Power7 and Power8 CPUs. Additionally, the VSX instructions are added to the list of TCG-enabled instruction. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3bc9ccc054574820190f0e6bbfd299bc2d42323d Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Sep 27 18:05:03 2013 +1000 powerpc: add PVR mask support IBM POWERPC processors encode PVR as a CPU family in higher 16 bits and a CPU version in lower 16 bits. Since there is no significant change in behavior between versions, there is no point to add every single CPU version in QEMU's CPU list. Also, new CPU versions of already supported CPU won't break the existing code. This adds PVR value/mask support for KVM, i.e. for -cpu host option. As CPU family class name for POWER7 is "POWER7-family", there is no need to touch aliases. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit c65f9a07a78afa3c98712f6192962ffd6babe339 Author: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 11 14:15:34 2013 +0100 target-ppc: add stubs for KVM breakpoints The latest update to v3.13-rc3 (bf63839f) breaks the ppc build with KVM: kvm-all.o: In function `kvm_update_guest_debug': kvm-all.c:1910: undefined reference to `kvm_arch_update_guest_debug' kvm-all.o: In function `kvm_insert_breakpoint': kvm-all.c:1937: undefined reference to `kvm_arch_insert_sw_breakpoint' kvm-all.c:1945: undefined reference to `kvm_arch_insert_hw_breakpoint' kvm-all.o: In function `kvm_remove_breakpoint': kvm-all.c:1977: undefined reference to `kvm_arch_remove_sw_breakpoint' kvm-all.c:1985: undefined reference to `kvm_arch_remove_hw_breakpoint' kvm-all.o: In function `kvm_remove_all_breakpoints': kvm-all.c:2009: undefined reference to `kvm_arch_remove_sw_breakpoint' kvm-all.c:2006: undefined reference to `kvm_arch_remove_sw_breakpoint' kvm-all.c:2017: undefined reference to `kvm_arch_remove_all_hw_breakpoints' We need stubs until something gets implemented. Signed-off-by: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3dc7e2a3fedafc2f951bd62300b342c84e3606f8 Merge: f46e720 84291fe Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Dec 19 11:56:33 2013 -0800 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20131217' into staging target-arm queue: * AES instruction support for 32 bit ARM * pflash01: much better emulation of 2x16bit and similar configs where multiple flash devices are banked together * fixed CBAR handling on Zynq, Highbank * initial AArch64 KVM control support * first two chunks of patches for A64 instruction emulation * new board: canon-a1100 (Canon DIGIC SoC) * new board: cubieboard (Allwinner A10 SoC) # gpg: Signature made Tue 17 Dec 2013 12:18:39 PM PST using RSA key ID 14360CDE # gpg: Can't check signature: public key not found # By Alexander Graf (14) and others # Via Peter Maydell * pmaydell/tags/pull-target-arm-20131217: (62 commits) MAINTAINERS: add myself to maintain allwinner-a10 hw/arm: add cubieboard support hw/arm: add allwinner a10 SoC support hw/intc: add allwinner A10 interrupt controller hw/timer: add allwinner a10 timer vmstate: Add support for an array of ptimer_state * MAINTAINERS: Document 'Canon DIGIC' machine hw/arm/digic: add NOR ROM support hw/arm/digic: add UART support hw/arm/digic: add timer support hw/arm/digic: prepare DIGIC-based boards support hw/arm: add very initial support for Canon DIGIC SoC target-arm: A64: add support for logical (immediate) insns target-arm: A64: add support for 1-src CLS insn host-utils: add clrsb32/64 - count leading redundant sign bits target-arm: A64: add support for bitfield insns target-arm: A64: add support for 1-src REV insns target-arm: A64: add support for 1-src RBIT insn target-arm: A64: add support for 1-src data processing and CLZ target-arm: A64: add support for 2-src shift reg insns ... Message-id: 1387312160-12318-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 10c8599a49f99180c2f79596325a5e856cdac59f Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 19:50:01 2013 +0100 s390x/ioinst: CHSC has to set a condition code I missed to set the CC in the CHSC instruction when I refactored the CC setting in the IO instructions with the following commit: 5d9bf1c07c1369ab3506fc82cc65a10f4415d867 s390/ioinst: Moved the CC setting to the IO instruction handlers This patch now restores the correct behaviour of CHSC by setting the condition code 0 at the end of the instruction. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3796f0e1cda41eacf4fc915e7edaf54f2279466c Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 14:22:09 2013 +0100 s390x/kvm: Fixed condition code for unknown SIGP orders If SIGP is called with an unknown order code, it has to return CC1 instead of CC3 and set the "invalid order" bit in the return status. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit b8031adba791325907d8a9e19af8d483996974fd Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 14:22:08 2013 +0100 s390x/kvm: Simplified the calculation of the SIGP order code We've already got a helper function for calculating the base/displacement of RS formatted instructions, so we can get rid of the manual calculation of the SIGP order code. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit b20a461fcd55d2b05e729c587244eddc60b9527f Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 14:22:07 2013 +0100 s390x/kvm: Implemented SIGP START This patch adds the missing START order to the SIGP instruction handler. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 0b9972a2483b27824f3ec71b7b8b4a5961614216 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 14:22:06 2013 +0100 s390x/kvm: Fix coding style in handle_sigp() To make scripts/checkpatch.pl happy for the following patches, the coding style in handle_sigp() has to be fixed first. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Acked-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit cd7a0f4cf905c421743357a55f107b86ee1ded9d Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 14:22:05 2013 +0100 s390x/kvm: Removed s390_store_status stub The SIGP order STORE STATUS AT ADDRESS will be handled in kernel space, so we do not need the stub in QEMU anymore. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 4f91e0b5d8b116c16964926a103e01623dbd81b6 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 14:22:04 2013 +0100 s390x/kvm: Removed duplicated SIGP defines The SIGP order defines are also available in cpu.h, so there is no need to re-define them in kvm.c. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 638129ff475dd3b4c0e57e0be598efe41461e9b3 Author: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Date: Tue Dec 17 18:27:33 2013 +0100 s390x/kvm: Fix diagnose handling. The instruction intercept handler for diagnose used only the displacement when trying to calculate the function code. This is only correct for base 0, however; we need to perform a complete base/displacement address calculation and use bits 48-63 as the function code. Reviewed-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Jens Freimann <jfrei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 6bdf863d942a267f984e4bd82be80cb2ac5b9915 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Dec 17 20:05:13 2013 +0100 kvm: x86: Separately write feature control MSR on reset If the guest is running in nested mode on system reset, clearing the feature MSR signals the kernel to leave this mode. Recent kernels processes this properly, but leave the VCPU state undefined behind. It is the job of userspace to bring it to a proper shape. Therefore, write this specific MSR first so that no state transfer gets lost. This allows to cleanly reset a guest with VMX in use. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 84291fe7a34f8c2d595bcdb77ff506d1d60fcd7c Author: liguang <lig.fnst@xxxxxxxxxxxxxx> Date: Tue Dec 17 19:42:38 2013 +0000 MAINTAINERS: add myself to maintain allwinner-a10 Signed-off-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Message-id: 1387159292-10436-7-git-send-email-lig.fnst@xxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a01c005327007562f3313f3efe235f77309db809 Author: liguang <lig.fnst@xxxxxxxxxxxxxx> Date: Tue Dec 17 19:42:38 2013 +0000 hw/arm: add cubieboard support Signed-off-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1387159292-10436-6-git-send-email-lig.fnst@xxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 9158fa5451b5929f1d882ef08c30b4f4aadd6945 Author: liguang <lig.fnst@xxxxxxxxxxxxxx> Date: Tue Dec 17 19:42:38 2013 +0000 hw/arm: add allwinner a10 SoC support Signed-off-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1387159292-10436-5-git-send-email-lig.fnst@xxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c3931ee8b42def4089831b4d79e93c5b05667ff6 Author: liguang <lig.fnst@xxxxxxxxxxxxxx> Date: Tue Dec 17 19:42:38 2013 +0000 hw/intc: add allwinner A10 interrupt controller Signed-off-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1387159292-10436-4-git-send-email-lig.fnst@xxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3589de8c971df29562fcaf2d9b04f0886aff4866 Author: liguang <lig.fnst@xxxxxxxxxxxxxx> Date: Tue Dec 17 19:42:37 2013 +0000 hw/timer: add allwinner a10 timer Signed-off-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1387159292-10436-3-git-send-email-lig.fnst@xxxxxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a1f05e79f2c207bded5efc23e8c6b1ca58161a8e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:37 2013 +0000 vmstate: Add support for an array of ptimer_state * Add support for defining a vmstate field which is an array of pointers to structures, and use this to define a VMSTATE_PTIMER_ARRAY() which allows an array of ptimer_state* to be used by devices. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1387159292-10436-2-git-send-email-lig.fnst@xxxxxxxxxxxxxx commit 9082f12173d407290bcec9f4ae84242972b2480c Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:37 2013 +0000 MAINTAINERS: Document 'Canon DIGIC' machine Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Message-id: 1387188908-754-7-git-send-email-antonynpavlov@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 04234a37b1a89f3f119ef59c143a7b2e0a1ab40e Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:37 2013 +0000 hw/arm/digic: add NOR ROM support Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Message-id: 1387188908-754-6-git-send-email-antonynpavlov@xxxxxxxxx [PMM: don't try to load ROM blob if qtest_enabled()] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 142593c9d700e02b316443bcaa99226720242625 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:37 2013 +0000 hw/arm/digic: add UART support Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1387188908-754-5-git-send-email-antonynpavlov@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 576e99cb951e9c1a289555a31cfd5b9040e80037 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:36 2013 +0000 hw/arm/digic: add timer support Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1387188908-754-4-git-send-email-antonynpavlov@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d91fd756fb2af16584d338c4ef715f40ea49924c Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:36 2013 +0000 hw/arm/digic: prepare DIGIC-based boards support Also this patch adds initial support for Canon PowerShot A1100 IS compact camera. Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Message-id: 1387188908-754-3-git-send-email-antonynpavlov@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c6f09eb4a0ea14b68f2745e87641c79a51057959 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:36 2013 +0000 hw/arm: add very initial support for Canon DIGIC SoC DIGIC is Canon Inc.'s name for a family of SoC for digital cameras and camcorders. There is no publicly available specification for DIGIC chips. All information about DIGIC chip internals is based on reverse engineering efforts made by CHDK (http://chdk.wikia.com) and Magic Lantern (http://www.magiclantern.fm) projects contributors. Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1387188908-754-2-git-send-email-antonynpavlov@xxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 71b46089303beb7d52a0b9397f5c286a7e66275f Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:36 2013 +0000 target-arm: A64: add support for logical (immediate) insns This patch adds support for C3.4.4 Logical (immediate), which include AND, ANDS, ORR, EOR. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted to new decoder, function renaming, removed a TCG temp variable] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> [PMM: cleaned up some unnecessary code in logic_imm_decode_wmask and added clarifying commentary on what it's actually doing. Dropped an ext32u that's not needed if we've just done an AND.] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e80c502023d332fb60866eb378e715ab3f158b72 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:35 2013 +0000 target-arm: A64: add support for 1-src CLS insn this patch adds support for the CLS instruction. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit afd3fe4ce56e6fb0d0384ddb8e3c4fac01935c37 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:35 2013 +0000 host-utils: add clrsb32/64 - count leading redundant sign bits this patch introduces wrappers for the clrsb builtins, which count the leading redundant sign bits. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 880777423525685ccaf1bf6967b27cc8a38e5f96 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:35 2013 +0000 target-arm: A64: add support for bitfield insns This patch implements the C3.4.2 Bitfield instructions: SBFM, BFM, UBFM. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 453232096c4e93ec871f7ff97abfc0bf54258c95 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:35 2013 +0000 target-arm: A64: add support for 1-src REV insns This adds support for C5.6.149 REV, C5.6.151 REV32, C5.6.150 REV16. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 82e14b02a2bd822af6db2ef728a1698b9a24e50c Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:35 2013 +0000 target-arm: A64: add support for 1-src RBIT insn This adds support for the C5.6.147 RBIT instruction. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted to new decoder, use bswap64, make RBIT part standalone from the rest of the patch, splitting REV into a separate patch] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 680ead216e666e5cc192fe86adf30563999a5dd8 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:35 2013 +0000 target-arm: A64: add support for 1-src data processing and CLZ This patch adds support for decoding 1-src data processing insns, and the first user, C5.6.40 CLZ (count leading zeroes). Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6c1adc919b6a81e008b919c53902b4877ef4d737 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:34 2013 +0000 target-arm: A64: add support for 2-src shift reg insns This adds 2-src variable shift register instructions: C5.6.115 LSLV, C5.6.118 LSRV, C5.6.17 ASRV, C5.6.154 RORV Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted to new decoder, use enums for shift types] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8220e911c240df5b4b2a1473f0ba9feddc154c45 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:34 2013 +0000 target-arm: A64: add support for 2-src data processing and DIV This patch adds support for decoding 2-src data processing insns, and the first users, UDIV and SDIV. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted to new decoder adding the 2-src decoding level, always zero-extend result in 32bit mode] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e801de93d0155c0c14d6b4dea1b3577ca36e214b Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:34 2013 +0000 target-arm: A64: add support for EXTR This patch adds emulation support for the EXTR instruction. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted for new decoder, removed a few temporaries, fixed the 32bit bug, added checks for more unallocated cases] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 15bfe8b650a0fd40940cb8f4bfc8c57d6940173e Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:34 2013 +0000 target-arm: A64: add support for ADR and ADRP Add support for the instructions described in "C3.4.6 PC-rel. addressing" (ADR and ADRP). Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted to new decoder structure] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 832ffa1ce073f010fd1c766361b2e35ce3f105d3 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:34 2013 +0000 target-arm: A64: add support for logical (shifted register) Add support for the instructions described in "C3.5.10 Logical (shifted register)". We store the flags in the same locations as the 32 bit decoder. This is slightly awkward when calculating 64 bit results, but seems a better tradeoff than having to rework the whole 32 bit decoder and also make 32 bit result calculation in A64 awkward. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: some refactoring to avoid hidden allocation of temps, rework flags, use enums for shift types, renaming of functions] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> [PMM: Use TCG's andc/orc/eqv ops rather than manually inverting] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit e952d8c77a59dd31b5a4332f19e19f43dc90bd68 Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:33 2013 +0000 target-arm: A64: add support for conditional select This patch adds support for the instruction group "C3.5.6 Conditional select": CSEL, CSINC, CSINV, CSNEG. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> [PMM: Improved code generated in the nomatch case as per RTH suggestions] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 60e5338831e35e7b407b1670f5fe936859ea5490 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:33 2013 +0000 target-arm: A64: add support for compare and branch imm This patch adds emulation for the compare and branch insns, CBZ and CBNZ. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted to new decoder, compare with immediate 0, introduce read_cpu_reg to get the 0 extension on (!sf)] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit db0f79589c16fe7f697716f4cadc903a2575ef55 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:33 2013 +0000 target-arm: A64: add support for 'test and branch' imm This patch adds emulation for the test and branch insns, TBZ and TBNZ. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted for new decoder always compare with 0 remove a TCG temporary ] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 39fb730aed8c5f7b0058845cb9feac0d4b177985 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:33 2013 +0000 target-arm: A64: add support for conditional branches This patch adds emulation for the conditional branch (b.cond) instruction. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: adapted to new decoder structure, reused arm infrastructure for checking the flags] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit b001c8c3d6855b0b52fc0fdd63b5a93fd326bf0c Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:33 2013 +0000 target-arm: A64: add support for BR, BLR and RET insns Implement BR, BLR and RET. This is all of the 'unconditional branch (register)' instruction category except for ERET and DPRS (which are system mode only). Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: reimplemented on top of new decoder structure] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 11e169de9940b9dc057e534ecf864c542fafb425 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:32 2013 +0000 target-arm: A64: add support for B and BL insns Implement the B and BL instructions (PC relative branches and calls). For convenience in managing TCG temporaries which might be generated if a source register is the zero-register XZR, we provide a simple mechanism for creating a new temp which is automatically freed at the end of decode of the instruction. Signed-off-by: Alexander Graf <agraf@xxxxxxx> [claudio: renamed functions, adapted to new decoder layout] Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 87462e0f41fccc353f9c902caed563ab7cbdd8ed Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:32 2013 +0000 target-arm: A64: expand decoding skeleton for system instructions Decode the various kinds of system instructions: hints (HINT), which include NOP, YIELD, WFE, WFI, SEV, SEL sync instructions, which include CLREX, DSB, DMB, ISB msr_i, which move immediate to processor state field sys, which include all SYS and SYSL instructions msr, which move from a gp register to a system register mrs, which move from a system register to a gp register Provide implementations where they are trivial nops. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit ad7ee8a290d08a2fe9d408af2461d1f583d96f7d Author: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Date: Tue Dec 17 19:42:32 2013 +0000 target-arm: A64: provide skeleton for a64 insn decoding Provide a skeleton for a64 instruction decoding in translate-a64.c, by dividing instructions into the classes defined by the ARM Architecture Reference Manual(DDI0487A_a) section C3. Signed-off-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit d3e35a1fe4562ee3f9f1af91ab02d62cf31b9488 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:32 2013 +0000 target-arm: A64: add stubs for a64 specific helpers We will need helpers that only make sense with AArch64. Add helper-a64.{c,h} files as stubs that we can fill with these helpers in the following patches. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6a66942735569ec7f8b761c1205e6f4c50962fe4 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:32 2013 +0000 target-arm: Support fp registers in gdb stub Register the aarch64-fpu XML and implement the necessary read/write handlers so we can support reading and writing of FP registers in the gdb stub. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit f903fa22f4d7f3a20c4d0f42e7585ed80a3ec051 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:31 2013 +0000 target-arm: A64: provide functions for accessing FPCR and FPSR The information which AArch32 holds in the FPSCR is split for AArch64 into two logically distinct registers, FPSR and FPCR. Since they are carefully arranged to use non-overlapping bits, we leave the underlying state in the same place, and provide accessor functions which just update the appropriate bits via vfp_get_fpscr() and vfp_set_fpscr(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5ce4f35781028ce1aee3341e6002f925fdc7aaf3 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Dec 17 19:42:31 2013 +0000 target-arm: A64: add set_pc cpu method When executing translation blocks we need to be able to recover our program counter. Add a method to set it for AArch64 CPUs. This covers user-mode, but for system mode emulation we will need to check if the CPU is in an AArch32 execution state. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 40f860cd6c1aa0d3399e3f8158f20bdc5b2bfbfe Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:31 2013 +0000 target-arm: Split A64 from A32/T32 gen_intermediate_code_internal() The A32/T32 gen_intermediate_code_internal() is complicated because it has to deal with: * conditionally executed instructions * Thumb IT blocks * kernel helper page * M profile exception-exit special casing None of these apply to A64, so putting the "this is A64 so call the A64 decoder" check in the middle of the A32/T32 loop is confusing and means the A64 decoder's handling of things like conditional jump and singlestepping has to take account of the conditional-execution jumps the main loop might emit. Refactor the code to give A64 its own gen_intermediate_code_internal function instead. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 013424d436b83f7ba8366b1d40bf82c4f6716f5e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:31 2013 +0000 default-configs: Add config for aarch64-softmmu Add a config for aarch64-softmmu; this enables building of this target. The resulting executable doesn't know about any 64 bit CPUs, but all the 32 bit CPUs and board models work. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1385645602-18662-8-git-send-email-peter.maydell@xxxxxxxxxx Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 4d9ebf751a5a98e5dc2e26baf2344e744f4fa7b9 Author: Mian M. Hamayun <m.hamayun@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 19:42:30 2013 +0000 hw/arm/boot: Add boot support for AArch64 processor This commit adds support for booting a single AArch64 CPU by setting appropriate registers. The bootloader includes placeholders for Board-ID that are used to implement uniform indexing across different bootloaders. Signed-off-by: Mian M. Hamayun <m.hamayun@xxxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1385645602-18662-7-git-send-email-peter.maydell@xxxxxxxxxx [PMM: * updated to use ARMInsnFixup style bootloader fragments * dropped virt.c additions * use runtime checks for "is this an AArch64 core" rather than ifdefs * drop some unnecessary setting of registers in reset hook ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> commit 47b1da8134610c10a672b249808dbc763308668e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:30 2013 +0000 hw/arm/boot: Allow easier swapping in of different loader code For AArch64 we will obviously require a different set of primary and secondary boot loader code fragments. However currently we hardcode the offsets into the loader code where we must write the entrypoint and other data into arm_load_kernel(). This makes it hard to substitute a different loader fragment, so switch to a more flexible scheme where instead of a raw array of instructions we use an array of (instruction, fixup-type) pairs that indicate which words need special action or data written into them. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1385645602-18662-6-git-send-email-peter.maydell@xxxxxxxxxx Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> commit 70a5f682f34c04d13164eb0d55241b7378f02030 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:30 2013 +0000 configure: Enable KVM for aarch64 host/target combination Enable KVM if the host and target CPU are both aarch64. Note that host aarch64 + target arm is not valid for KVM acceleration: the 64 bit kernel does not support the ioctl interface for 32 bit CPUs. 32 bit VMs on 64 bit hosts need to be created using the 64 bit ioctl interface; when QEMU supports this it will be on the arch64-softmmu target with a -cpu parameter for a 32 bit CPU, which is still an aarch64/aarch64 combination as far as configure is concerned. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1385645602-18662-5-git-send-email-peter.maydell@xxxxxxxxxx Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> commit 26861c7ce06c055786323ff4c65af74d735d1c19 Author: Mian M. Hamayun <m.hamayun@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue Dec 17 19:42:30 2013 +0000 target-arm: Add minimal KVM AArch64 support Add the bare minimum set of functions needed for control of an AArch64 KVM vcpu: * CPU initialization * minimal get/put register functions which only handle the basic state of the CPU Signed-off-by: Mian M. Hamayun <m.hamayun@xxxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1385645602-18662-4-git-send-email-peter.maydell@xxxxxxxxxx [PMM: significantly overhauled; most notably: * code lives in kvm64.c rather than using #ifdefs * support '-cpu host' rather than implicitly using whatever the host's CPU is regardless of what the user requests * fix bug attempting to get/set nonexistent X[31] * fix bug writing 64 bit kernel pstate into uint32_t env field ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> commit d356312fdc8640af929e0dbab61c6e514d47feb8 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:30 2013 +0000 target-arm: Clean up handling of AArch64 PSTATE The env->pstate field is a little odd since it doesn't strictly speaking represent an architectural register. However it's convenient for QEMU to use it to hold the various PSTATE architectural bits in the same format the architecture specifies for SPSR registers (since this is the same format the kernel uses for signal handlers and the KVM register). Add some structure to how we deal with it: * document what env->pstate is * add some #defines for various bits in it * add helpers for reading/writing it taking account of caching of NZCV, and use them where appropriate * reset it on startup Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1385645602-18662-3-git-send-email-peter.maydell@xxxxxxxxxx Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> commit b197ebd410f0298ec078c3048f9cfb9f6bfc3b3c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Dec 17 19:42:29 2013 +0000 target-arm/kvm: Split 32 bit only code into its own file Split ARM KVM support code which is 32 bit specific out into its own file, which we only compile on 32 bit hosts. This will give us a place to add the 64 bit support code without adding lots of ifdefs to kvm.c. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1385645602-18662-2-git-send-email-peter.maydell@xxxxxxxxxx Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> commit 387f980676aedcc67baddbf5fd1c9169f331f30b Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:29 2013 +0000 ARM: arm_cpu_reset: make it possible to use high vectors for reset_exc If hivecs are being used on reset, the CPU should come out of reset at the hivecs reset vector (0xFFFF0000) Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 3afc69c4f58f60aa2bbee7b91574a4eb414b1c23.1387160489.git.peter.crosthwaite@xxxxxxxxxx [ PC Changes: * Fixed Grammar error in commit message * Elaborated commit message. ] Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 68e0a40a5342e798a76ff4c9bf33837e30099ef7 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Dec 17 19:42:29 2013 +0000 ARM: cpu: add "reset_hivecs" property Add an ARM CPU property for the reset value of hivecs as it is a board/SoC configurable setting. The existence of the property is conditional on the ARM CPU not being M class. Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: b04216c6bda4bd163f44a55bba552d0e8267481f.1387160489.git.peter.crosthwaite@xxxxxxxxxx [ PC Changes: * Elaborated commit message * refactored to use qdev_property_add_static ] Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e2cddeeb97a47cd58384cfd86ae79c9bbe829255 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:29 2013 +0000 arm/highbank.c: Fix MPCore periphbase name GIC_BASE_ADDR is not the base address of the GIC. Its clear from the code that this is the base address of the MPCore. Rename to MPCORE_PERIPHBASE accordingly. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 90798bd3507205c16238b8b19a1a58c5437cf7ca.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c25771281ea17c2a09c86ac6a74672f2ec297f8d Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:29 2013 +0000 arm/xilinx_zynq: Implement CBAR initialisation Fix the CBAR initialisation by using the newly defined static property. Zynq will now correctly init the CBAR to the SCU base address. Needed to boot Linux on the xilinx_zynq machine model. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 8db7d57ebe5418fed397fcc86ea719f98446c178.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d8bbdcf8d6cb71735014dbd22baf274aea46066f Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:28 2013 +0000 arm/xilinx_zynq: Use object_new() rather than cpu_arm_init() To allow the machine model to set device properties before CPU realization. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: e57658b4506b26ab6b6fadbe6d7827f669f51895.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c0f1ead985e024dd8d01bba650bc753083a2cc2a Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:28 2013 +0000 arm/highbank: Fix CBAR initialisation Fix the CBAR initialisation by using the newly defined static property. CBAR is now set before realization, so the intended value is now actually used. So I have kind of tested this. I booted an ARM kernel on Highbank with the stock Highbank DTB. It doesn't boot (and I will be doing something wrong), but before this patch I got this: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 0 at /workspaces/pcrost/public/linux2.git/arch/arm/mm/ioremap.c:301 __arm_ioremap_pfn_caller+0x180/0x198() CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 3.13.0-rc1-next-20131126-dirty #2 [<c0015164>] (unwind_backtrace) from [<c00118c0>] (show_stack+0x10/0x14) [<c00118c0>] (show_stack) from [<c02bd5fc>] (dump_stack+0x78/0x90) [<c02bd5fc>] (dump_stack) from [<c001f110>] (warn_slowpath_common+0x68/0x84) [<c001f110>] (warn_slowpath_common) from [<c001f1f4>] (warn_slowpath_null+0x1c/0x24) [<c001f1f4>] (warn_slowpath_null) from [<c0017c6c>] (__arm_ioremap_pfn_caller+0x180/0x198) [<c0017c6c>] (__arm_ioremap_pfn_caller) from [<c0017cd8>] (__arm_ioremap_caller+0x54/0x5c) [<c0017cd8>] (__arm_ioremap_caller) from [<c0017d10>] (__arm_ioremap+0x18/0x1c) [<c0017d10>] (__arm_ioremap) from [<c03913c0>] (highbank_init_irq+0x34/0x8c) [<c03913c0>] (highbank_init_irq) from [<c038c228>] (init_IRQ+0x28/0x2c) [<c038c228>] (init_IRQ) from [<c03899ec>] (start_kernel+0x234/0x398) [<c03899ec>] (start_kernel) from [<00008074>] (0x8074) ---[ end trace 3406ff24bd97382f ]--- Which disappears with this patch. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: fedec366aaa512d75093635f523d1dbcb3358361.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f282f29626b6ce65641fb5f8cb631aaade0e51c5 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:28 2013 +0000 arm/highbank: Use object_new() rather than cpu_arm_init() To allow the machine model to set device properties before CPU realization. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 8c671e500390c8be0cc363e887e32867d1d1b0d2.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 07a5b0d21e450842e3474546366593a5893e8c61 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:28 2013 +0000 target-arm/cpu: Convert reset CBAR to a property The reset value of the CP15 CBAR is a vendor (machine) configurable property. If ARM_FEATURE_CBAR is set, add it as a property at post_init time. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 2f1eec3f912135deea6252360e03645003d12e0a.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d8ba780b6a17020aadea479ad96ed9fe3bb10661 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:28 2013 +0000 target-arm: Define and use ARM_FEATURE_CBAR Some processors (notably A9 within Highbank) define and use the CP15 configuration base address (CBAR). This is vendor specific so its best implemented as a CPU property (otherwise we would need vendor specific child classes for every ARM implementation). This patch prepares support for converting CBAR reset value to a CPU property by moving the CP registration out of the CPU init fn, as registration will need to happen at realize time to pick up any property updates. The easiest way to do this is via definition of a new ARM_FEATURE to flag the existence of the register. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 9f697ef1e2ee60a3b9ef971a7f3bc3fa6752a9b7.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3671cd879a2666ca1d6e8820a319924be25d6746 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 17 19:42:27 2013 +0000 target-arm/helper.c: Allow cp15.c15 dummy override The cp15.c15 space is implementation defined. Currently there is a dummy placeholder register RAZing it. Allow overriding of this RAZ so implementations of specific registers can take precedence. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: ed1bacec56dae00cb398c798f8240e8e685f949c.1387160489.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0163a2dc80b52553a478fa6e60f09cef4b338d42 Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Dec 17 19:42:27 2013 +0000 Fix NOR flash device ID reading Fix NOR flash manufacturer and device ID reading. This now properly takes into account device widths and device max widths as required. The reading of these IDs uses the same max_width dependent addressing as CFI queries. The old code remains for chips that don't specify a device width, as the new code relies on a device width being set in order to properly operate. The existing code seems very broken. Only ident0 and ident1 are used in the new code, as other fields relate to the lock state of blocks in flash. The VExpress flash configuration has been updated to match the new code, as the existing definition was 'wrong' in order to return the expected results with the broken device ID code. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Message-id: 1386279359-32286-8-git-send-email-roy.franz@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4433e660e3ff19747d9ca7fd3873407ecfb276bf Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Dec 17 19:42:27 2013 +0000 Fix CFI query responses for NOR flash This change fixes the CFI query responses to handle NOR device widths that are different from the bank width. Support is also added for multi-width devices in a x8 configuration. This is typically x8/x16 devices, but the CFI specification mentions x8/x32 devices so those should be supported as well if they exist. The query response data is now replicated per-device in the bank, and is adjusted for x16 or x32 parts configured in x8 mode. The existing code is left in place for boards that have not been updated to specify an explicit device_width. The VExpress board has been updated in an earlier patch in this series so this is the only board currently affected. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Message-id: 1386279359-32286-7-git-send-email-roy.franz@xxxxxxxxxx [PMM: fixed a few formatting nits] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit fa21a7b13e97120c789eda1dbae87a9bcb1efe09 Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Dec 17 19:42:27 2013 +0000 Add max device width parameter for NOR devices For handling CFI and device ID reads, we need to not only know the width that a NOR flash device is configured for, but also its maximum width. The maximum width addressing mode is used for multi-width parts no matter which width they are configured for. The most common case is x16 parts that also support x8 mode. When configured for x8 operation these devices respond to CFI and device ID requests differently than native x8 NOR parts. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Message-id: 1386279359-32286-6-git-send-email-roy.franz@xxxxxxxxxx [PMM: Added comment explaining the semantics of width vs device-width vs max-device-width] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit b8433303fbc5a4a694adb0f0aff5059442ae63e3 Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Dec 17 19:42:26 2013 +0000 Set proper device-width for vexpress flash Create vexpress specific pflash registration function which properly configures the device-width of 16 bits (2 bytes) for the NOR flash on the vexpress platform. This change is required for buffered flash writes to work properly. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Message-id: 1386279359-32286-5-git-send-email-roy.franz@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 2003889f67755d47ab355c7813c587adb204eeea Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Dec 17 19:42:26 2013 +0000 return status for each NOR flash device Now that we know how wide each flash device that makes up the bank is, return status for each device in the bank. Leave existing code that treats 32 bit wide banks as composed of two 16 bit devices as otherwise we may break configurations that do not set the device_width propery. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Message-id: 1386279359-32286-4-git-send-email-roy.franz@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 1997b48527c38fe8cdbbb3df82ed79aa3ee88b83 Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Dec 17 19:42:26 2013 +0000 Add device-width property to pflash_cfi01 The width of the devices that make up the flash interface is required to mask certain commands, in particular the write length for buffered writes. This length will be presented to each device on the interface by the program writing the flash, and the flash emulation code needs to be able to determine the length of the write as recieved by each flash device. The device-width defaults to the bank width which should maintain existing behavior for platforms that don't need this change. This change is required to support buffered writes on the vexpress platform that has a 32 bit flash interface with 2 16 bit devices on it. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Message-id: 1386279359-32286-3-git-send-email-roy.franz@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4b6fedcac0f51157ef042cde80d5dc5d0c9ef8a4 Author: Roy Franz <roy.franz@xxxxxxxxxx> Date: Tue Dec 17 19:42:26 2013 +0000 rename pflash_t member width to bank_width Rename the 'width' member of the pflash_t structure in preparation for adding a bank_width member. Signed-off-by: Roy Franz <roy.franz@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386279359-32286-2-git-send-email-roy.franz@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 9d935509fdb48e47cc46e81d2b9d466b18b546ba Author: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> Date: Tue Dec 17 19:42:25 2013 +0000 target-arm: add support for v8 AES instructions This adds support for the AESE/AESD/AESMC/AESIMC instructions that are available on some v8 implementations of Aarch32. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> Message-id: 1386266078-6976-1-git-send-email-ard.biesheuvel@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f46e720a82ccdf1a521cf459448f3f96ed895d43 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Thu Nov 28 18:12:59 2013 +0100 qemu_opts_parse(): always check return value qemu_opts_parse() can always return NULL, even if the QemuOptsList.desc in question would be trivial to satisfy (eg. because it's empty). For example: qemu_opts_parse() opts_parse() qemu_opts_create() id_wellformed() In practice: $ .../qemu-system-x86_64 -acpitable id=3 qemu-system-x86_64: -acpitable id=3: Parameter 'id' expects an identifier ** ERROR:vl.c:3491:main: assertion failed: (opts != NULL) Aborted (core dumped) $ .../qemu-system-x86_64 -smbios id=3 qemu-system-x86_64: -smbios id=3: Parameter 'id' expects an identifier Segmentation fault (core dumped) I checked all qemu_opts_parse() invocations (and all drive_def() invocations too, because it blindly forwards the former's retval). Only the two above examples look problematic. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Message-id: 1385658779-7529-1-git-send-email-lersek@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit b91f93243bbe36dc436a64a662a9bbfb2362534a Merge: 80d6f5e 75c70e3 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Dec 16 09:44:13 2013 -0800 Merge remote-tracking branch 'spice/tags/pull-spice-1' into staging Collection of little cleanups anf bugfixes. nbd patches in preparation of spice-nbd. # gpg: Signature made Mon 16 Dec 2013 01:27:45 AM PST using RSA key ID D3E87138 # gpg: Can't check signature: public key not found # By Marc-André Lureau (12) and Gerd Hoffmann (4) # Via Gerd Hoffmann * spice/tags/pull-spice-1: spice: stop server for qxl hard reset spice: move spice_server_vm_{start,stop} calls into qemu_spice_display_*() spice: move qemu_spice_display_*() from spice-graphics to spice-core nbd: avoid uninitialized warnings nbd: finish any pending coroutine nbd: make nbd_client_session_close() idempotent nbd: pass export name as init argument nbd: don't change socket block during negotiate Split nbd block client code spice-char: implement chardev port event char: add qemu_chr_fe_event() include: add missing config-host.h include qmp_change_blockdev() remove unused has_format spice-char: remove unused field vscclient: do not add a socket watch if there is not data to send spice: flip streaming video mode to off by default commit 80d6f5eae79b009bf3e02e59e9e225db42ddf887 Merge: e157b8f c547e56 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Dec 16 09:43:27 2013 -0800 Merge remote-tracking branch 'kwolf/tags/for-anthony' into staging Block patches # gpg: Signature made Fri 13 Dec 2013 09:47:03 AM PST using RSA key ID C88F2FD6 # gpg: Can't check signature: public key not found # By Peter Lieven (2) and others # Via Kevin Wolf * kwolf/tags/for-anthony: blkdebug: Use QLIST_FOREACH_SAFE to resume IO qemu-img: make progress output more accurate during convert block: expect get_block_status errors in bdrv_make_zero block/vvfat: Fix compiler warnings for OpenBSD qapi-schema.json: Change 1.8 reference to 2.0 sheepdog: check if '-o redundancy' is passed from user Message-id: 1386956943-19474-1-git-send-email-kwolf@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 8b9dfe9098d91e06a3dd6376624307fe5fa13be8 Author: Peter Lieven <pl@xxxxxxx> Date: Sat Dec 14 17:31:40 2013 +0100 block/iscsi: use a bh to schedule co reentrance this fixes a potential segfault and performance regression. If the coroutine is reentered directly in the iscsi_co_generic_cb iscsi_process_{read,write} are interrupted and reentered any time later. One the one hand this could happen after an iscsi_close where the iscsi context is already gone (segfault). On the other hand this limits the number of processed callbacks in each aio_dispatch to one (potential performance regression). Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 75c70e37bc4a6bdc394b4d1b163fe730abb82c72 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 9 16:03:49 2013 +0100 spice: stop server for qxl hard reset Hard reset can happen at any time. We should be able to put qxl into a known-good state no matter what. Stop spice server thread for reset so it can't be confused by fetching stale commands lingering around in the rings while we reset is ongoing. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit b50f3e42b9438e033074222671c0502ecfeba82c Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 9 16:00:15 2013 +0100 spice: move spice_server_vm_{start,stop} calls into qemu_spice_display_*() So calling spice server to start/stop the worker goes hand in hand with the status variable update. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 7cc6a25fe94b430cb5a041bcb19d7d854b4e99a7 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 9 15:54:46 2013 +0100 spice: move qemu_spice_display_*() from spice-graphics to spice-core Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit b1b27b64262fdace45e5ab134c4438338076cb98 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Sun Dec 1 22:23:46 2013 +0100 nbd: avoid uninitialized warnings ==15815== Thread 1: ==15815== Syscall param socketcall.sendto(msg) points to uninitialised byte(s) ==15815== at 0x65AD5CB: send (send.c:31) ==15815== by 0x37F84B: nbd_wr_sync (nbd.c:145) ==15815== by 0x37F94B: write_sync (nbd.c:186) ==15815== by 0x380FA9: nbd_send_request (nbd.c:681) ==15815== by 0x1C4A2D: nbd_teardown_connection (nbd-client.c:337) ==15815== by 0x1C4AD8: nbd_client_session_close (nbd-client.c:354) ==15815== by 0x1ED2D8: close_socketpair (spicebd.c:132) ==15815== by 0x1EE265: spice_close (spicebd.c:457) ==15815== by 0x1ACBF6: bdrv_close (block.c:1519) ==15815== by 0x1AD804: bdrv_delete (block.c:1772) ==15815== by 0x1B4136: bdrv_unref (block.c:4476) ==15815== by 0x1ACCE0: bdrv_close (block.c:1541) ==15815== Address 0x7feffef98 is on thread 1's stack Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 69152c09d337a8e1368e65bcd5a598def6c3079f Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Sun Dec 1 22:23:45 2013 +0100 nbd: finish any pending coroutine Make sure all pending coroutines are finished when closing the session. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5ad283ebb82c007f49535907874213cdb05c307a Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:44 2013 +0100 nbd: make nbd_client_session_close() idempotent Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e2bc625f9bbb3a5d3ef2cb0f14dd52b517b92ffd Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:43 2013 +0100 nbd: pass export name as init argument There is no need to keep the export name around, and it seems a better fit as an argument in the init() call. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e53a18e488c657bbc6f218ae60de8e813a912667 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:42 2013 +0100 nbd: don't change socket block during negotiate The caller might handle non-blocking using coroutine. Leave the choice to the caller to use a blocking or non-blocking negotiate. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 2302c1cafb13df23938b098d9c6595de52ec2577 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:41 2013 +0100 Split nbd block client code Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit be733d6d484cd6a9e27a43a3f426688124fd0652 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Sun Dec 1 22:23:40 2013 +0100 spice-char: implement chardev port event Wire up chardev fe_event to Spice port. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit d61b0c9a2f7f39cc30cbd713e0798a23a51340e7 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:39 2013 +0100 char: add qemu_chr_fe_event() Teach the chardev frontend to send event. This is used by the Spice port chardev currently. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f7d48052644f3307748f47062728bb3e5f051ffe Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:38 2013 +0100 include: add missing config-host.h include Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 314f7ea74f0c36e3291c4c6d58816da83a232fc2 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:37 2013 +0100 qmp_change_blockdev() remove unused has_format Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit d8a03a09524c141325f3469cc5c393f7eae3c9cf Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:36 2013 +0100 spice-char: remove unused field Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit fa88afa51c7db927b3dd6c2f7878c23e53441de6 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Date: Sun Dec 1 22:23:35 2013 +0100 vscclient: do not add a socket watch if there is not data to send Fixes the following error: ** (process:780): CRITICAL **: do_socket_send: assertion `socket_to_send->len != 0' failed Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f1d3e586f069e17f83b669842bc02d60d509daca Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 2 11:17:04 2013 +0100 spice: flip streaming video mode to off by default Video streaming detection heuristics in spice-server have problems keeping modern desktop animations (as done by gnome shell) and real video playback apart. This leads to jpeg compression artefacts on your desktop, due to spice using mjpeg to send what it thinks is a video stream. Turn off video detection by default to avoid these artifacts. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Alon Levy <alevy@xxxxxxxxxx> commit e157b8fdd412d48eacfbb8c67d3d58780154faa3 Merge: 5d0e228 306ec6c Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 13 11:10:33 2013 -0800 Merge remote-tracking branch 'bonzini/virtio' into staging # By Andreas Färber (18) and Paolo Bonzini (12) # Via Paolo Bonzini * bonzini/virtio: (30 commits) virtio: Convert exit to unrealize virtio: Complete converting VirtioDevice to QOM realize virtio-scsi: Convert to QOM realize virtio-rng: Convert to QOM realize virtio-balloon: Convert to QOM realize virtio-net: Convert to QOM realize virtio-serial: Convert to QOM realize virtio-blk: Convert to QOM realize virtio-9p: Convert to QOM realize virtio: Start converting VirtioDevice to QOM realize virtio-scsi: QOM realize preparations virtio-rng: QOM realize preparations virtio-balloon: QOM realize preparations virtio-net: QOM realize preparations virtio-serial: QOM realize preparations virtio-blk: QOM realize preparations virtio-9p: QOM realize preparations virtio-blk-dataplane: Improve error reporting virtio-pci: add device_unplugged callback virtio-rng: switch exit callback to VirtioDeviceClass ... commit 5d0e2280cc344f1b939acff431ed2731a9ee7db5 Merge: bf6e3cc 5111610 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 13 11:10:19 2013 -0800 Merge remote-tracking branch 'mst/tags/for_anthony' into staging acpi.pci,pc,memory core fixes Most notably this includes changes to exec to support full 64 bit addresses. This also flushes out patches that got queued during 1.7 freeze. There are new tests, and a bunch of bug fixes all over the place. There are also some changes mostly useful for downstreams. I'm also listing myself as pc co-maintainer. I'm doing this reluctantly, but this seems to be necessary to make sure patches are not lost or delayed too much, and posting the MAINTAINERS patch did not seem to make anyone else volunteer. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Wed 11 Dec 2013 10:21:51 AM PST using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Michael S. Tsirkin (14) and others # Via Michael S. Tsirkin * mst/tags/for_anthony: (28 commits) pc: use macro for HPET type hpet: fix build with CONFIG_HPET off acpi unit-test: adjust the test data structure for better handling acpi unit-test: load and check facs table exec: separate sections and nodes per address space memory.c: bugfix - ref counting mismatch in memory_region_find hpet: enable to entitle more irq pins for hpet hpet: inverse polarity when pin above ISA_NUM_IRQS pci: fix pci bridge fw path ACPI DSDT: Make control method `IQCR` serialized acpi: strip compiler info in built-in DSDT acpi unit-test: verify signature and checksum smbios: Set system manufacturer, product & version by default exec: reduce L2_PAGE_SIZE exec: make address spaces 64-bit wide exec: memory radix tree page level compression exec: pass hw address to phys_page_find exec: extend skip field to 6 bit, page entry to 32 bit exec: replace leaf with skip split definitions for exec.c and translate-all.c radix trees ... Message-id: cover.1386786228.git.mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit bf6e3cc4fadaa6884dd1e561215f5d93cfe4f5f3 Merge: 47acdd6 2fe3798 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 13 11:10:02 2013 -0800 Merge remote-tracking branch 'bonzini/scsi-next' into staging # By Paolo Bonzini (4) and Peter Lieven (1) # Via Paolo Bonzini * bonzini/scsi-next: help: add id suboption to -iscsi scsi-disk: fix WRITE SAME with large non-zero payload block/iscsi: introduce bdrv_co_{readv, writev, flush_to_disk} scsi-disk: fix VERIFY emulation scsi-bus: fix transfer length and direction for VERIFY command Message-id: 1386594157-17535-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit c547e5640d5b0993cdfb252331065c1a1d813bd8 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Dec 13 15:25:12 2013 +0800 blkdebug: Use QLIST_FOREACH_SAFE to resume IO Qemu-iotest 030 was broken. When the coroutine runs and finishes, it will remove itself from the req list, so let's use safe version of foreach to avoid use after free. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 802c3d4ccc9853ee11c742bc206f284f04259426 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Dec 5 15:54:53 2013 +0100 qemu-img: make progress output more accurate during convert the progress output is very bumpy if the input images contains a significant portion of unallocated sectors. This patch checks how much sectors are allocated a priori if progress output is selected. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3d94ce60ae7ad7c31dc143fdd9da95c61b4e529e Author: Peter Lieven <pl@xxxxxxx> Date: Thu Dec 12 13:57:05 2013 +0100 block: expect get_block_status errors in bdrv_make_zero during testing around with 4k LUNs a bad target implementation triggert an -EIO in iscsi_get_block_status, but it got never caught resulting in an infinite loop. CC: qemu-stable@xxxxxxxxxx Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f671d173c7e1da555b693e8b14f3ed0852601809 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Dec 11 21:37:11 2013 +0100 block/vvfat: Fix compiler warnings for OpenBSD The buildbot shows these compiler warnings: block/vvfat.c: In function 'create_short_and_long_name': block/vvfat.c:620: warning: array size (8) smaller than bound length (11) block/vvfat.c:620: warning: array size (8) smaller than bound length (11) block/vvfat.c:635: warning: array size (8) smaller than bound length (11) block/vvfat.c:635: warning: array size (8) smaller than bound length (11) They are caused by tricky code where 8 characters for the name are followed by 3 characters for the extension, and some operations touch both name and extension. Using an 11 character name which includes the extension fixes the compiler warning, satisfies cppcheck, valgrind and maybe other static and dynamic code checkers, and even simplifies some parts of the code. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 01443e1388971999514511a26f9d36a7cdaa2cc2 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Dec 10 14:01:27 2013 +0100 qapi-schema.json: Change 1.8 reference to 2.0 Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a3120deee5fc1d702ba5da98fd9c845ad1c8f301 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Mon Dec 9 00:11:20 2013 +0800 sheepdog: check if '-o redundancy' is passed from user This fix a segfault (that is caused by b3af018f3) of following command: $ qemu-img convert some_img sheepdog:some_img Cc: qemu-devel@xxxxxxxxxx Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a94b36ddd6af28593c8a5171b5100e6c3dfc063e Author: Alexander Graf <agraf@xxxxxxx> Date: Thu Dec 12 10:29:19 2013 +0100 roms: Flush icache when writing roms to guest memory We use the rom infrastructure to write firmware and/or initial kernel blobs into guest address space. So we're basically emulating the cache off phase on very early system bootup. That phase is usually responsible for clearing the instruction cache for anything it writes into cachable memory, to ensure that after reboot we don't happen to execute stale bits from the instruction cache. So we need to invalidate the icache every time we write a rom into guest address space. We do not need to do this for every DMA since the guest expects it has to flush the icache manually in that case. This fixes random reboot issues on e5500 (booke ppc) for me. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 47acdd63a33a5966bf4fc94a6ac835d72a70c555 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Dec 10 15:40:21 2013 -0800 target-microblaze: Use the new qemu_ld/st opcodes The ability of the new opcodes to byte-swap the memory operation simplifies the code in and around dec_load and dec_store significantly. Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Tested-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Cc: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 0522604b09b8cff54ba2450a7478da2a4d084817 Author: Fernando Luis Vázquez Cao <fernando_b1@xxxxxxxxxxxxx> Date: Fri Dec 6 17:33:01 2013 +0900 target-i386: clear guest TSC on reset VCPU TSC is not cleared by a warm reset (*), which leaves some types of Linux guests (non-pvops guests and those with the kernel parameter no-kvmclock set) vulnerable to the overflow in cyc2ns_offset fixed by upstream commit 9993bc635d01a6ee7f6b833b4ee65ce7c06350b1 ("sched/x86: Fix overflow in cyc2ns_offset"). To put it in a nutshell, if such a Linux guest without the patch above applied has been up more than 208 days and attempts a warm reset chances are that the newly booted kernel will panic or hang. (*) Intel Xeon E5 processors show the same broken behavior due to the errata "TSC is Not Affected by Warm Reset" (Intel® Xeon® Processor E5 Family Specification Update - August 2013): "The TSC (Time Stamp Counter MSR 10H) should be cleared on reset. Due to this erratum the TSC is not affected by warm reset." Cc: Will Auld <will.auld@xxxxxxxxx> Cc: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Signed-off-by: Fernando Luis Vazquez Cao <fernando@xxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Fernando Luis Vázquez Cao <fernando_b1@xxxxxxxxxxxxx> commit f86746c263753cf7a7e4bdb8829c70272dfcf36c Author: Fernando Luis Vázquez Cao <fernando_b1@xxxxxxxxxxxxx> Date: Fri Dec 6 17:38:24 2013 +0900 target-i386: do not special case TSC writeback Newer kernels are capable of synchronizing TSC values of multiple VCPUs on writeback, but we were excluding the power up case, which is not needed anymore. Signed-off-by: Fernando Luis Vazquez Cao <fernando@xxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Fernando Luis Vázquez Cao <fernando_b1@xxxxxxxxxxxxx> commit 79e9ebebbf2a00c46fcedb6dc7dd5e12bbd30216 Author: Liu Jinsong <jinsong.liu@xxxxxxxxx> Date: Thu Dec 5 08:32:12 2013 +0800 target-i386: Intel MPX Add some MPX related definiation, and hardcode sizes and offsets of xsave features 3 and 4. It also add corresponding part to kvm_get/put_xsave, and vmstate. Signed-off-by: Liu Jinsong <jinsong.liu@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 511161027a0ecab6e12107128adeb8a884c5bcbe Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Dec 11 02:48:49 2013 +0200 pc: use macro for HPET type avoid hard-coding strings Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 142e0950cfaf023a81112dc3cdfa799d769886a4 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Dec 11 02:47:16 2013 +0200 hpet: fix build with CONFIG_HPET off make hpet_find inline so we don't need to build hpet.c to check if hpet is enabled. Fixes link error with CONFIG_HPET off. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8ac2adf79a06372fe2c50ddac64cfffb93dbfeb8 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Nov 21 21:33:22 2013 +0200 acpi unit-test: adjust the test data structure for better handling Ensure more then one instance of test_data may exist at a given time. It will help to compare different acpi table versions. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 15650602195be9f2957818318457c5d5096ff4c2 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Nov 21 21:33:21 2013 +0200 acpi unit-test: load and check facs table FACS table does not have a checksum, so we can check at least the signature (existence). Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 53cb28cbfea038f8ad50132dc8a684e638c7d48b Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Sun Dec 1 14:02:23 2013 +0200 exec: separate sections and nodes per address space Every address space has its own nodes and sections, but it uses the same global arrays of nodes/section. This limits the number of devices that can be attached to the guest to 20-30 devices. It happens because: - The sections array is limited to 2^12 entries. - The main memory has at least 100 sections. - Each device address space is actually an alias to main memory, multiplying its number of nodes/sections. Remove the limitation by using separate arrays of nodes and sections for each address space. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 6307d974f9a28bb6652352f52da97f820427d29d Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Dec 2 16:20:59 2013 +0200 memory.c: bugfix - ref counting mismatch in memory_region_find 'address_space_get_flatview' gets a reference to a FlatView. If the flatview lookup fails, the code returns without "unreferencing" the view. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 7a10ef51c2397ac4323bc786af02c58b413b5cd2 Author: Liu Ping Fan <qemulist@xxxxxxxxx> Date: Sun Dec 8 17:38:17 2013 +0800 hpet: enable to entitle more irq pins for hpet Owning to some different hardware design, piix and q35 need different compat. So making them diverge. On q35, IRQ2/8 can be reserved for hpet timer 0/1. And pin 16~23 can be assigned to hpet as guest chooses. So we introduce intcap property to do that. Consider the compat and piix/q35, we finally have the following value for intcap: For piix, hpet's intcap is hard coded as IRQ2. For pc-q35-1.7 and earlier, we use IRQ2 for compat reason. Otherwise IRQ2, IRQ8, and IRQ16~23 are allowed. Signed-off-by: Liu Ping Fan <pingfank@xxxxxxxxxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 0d63b2dd31464cfccc80bbeedc24e3863fe4c895 Author: Liu Ping Fan <qemulist@xxxxxxxxx> Date: Sun Dec 8 17:38:16 2013 +0800 hpet: inverse polarity when pin above ISA_NUM_IRQS According to hpet spec, hpet irq is high active. But according to ICH spec, there is inversion before the input of ioapic. So the OS will expect low active on this IRQ line. (On bare metal, if OS driver claims high active on this line, spurious irq is generated) We fold the emulation of this inversion inside the hpet logic. Signed-off-by: Liu Ping Fan <pingfank@xxxxxxxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4c41425d2e79f267b2236da31abedb866777d92f Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Dec 6 12:24:40 2013 +0100 pci: fix pci bridge fw path qemu uses "pci" as name for pci bridges in the firmware device path. seabios expects "pci-bridge". Result is that bootorder is broken for devices behind pci bridges. Some googling suggests that "pci-bridge" is the correct one. At least PPC-based Apple machines are using this. See question "How do I boot from a device attached to a PCI card" here: http://www.netbsd.org/ports/macppc/faq.html So lets change qemu to use "pci-bridge" too. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 6747f6456fd1e5e986b6385ff5d706c79ebd8a32 Merge: b9aad5d 0ec9eab Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Dec 10 16:14:36 2013 -0800 Merge remote-tracking branch 'rth/tcg-temp-order' into staging # By Richard Henderson # Via Richard Henderson * rth/tcg-temp-order: tcg: Use bitmaps for free temporaries Message-id: 1386698065-6661-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit b9aad5d68d0fa636d1a1edbbeffa0d7a80370711 Merge: 1ead3ed 02d38fc Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Dec 10 16:14:20 2013 -0800 Merge remote-tracking branch 'stefanha/net-next' into staging # By Vincenzo Maffione (2) and others # Via Stefan Hajnoczi * stefanha/net-next: net: Update netdev peer on link change virtio-net: don't update mac_table in error state MAINTAINERS: Add netmap maintainers net: Adding netmap network backend Message-id: 1386594692-21278-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 1ead3ed55584a62a12d840a71d3aab71f12ec42e Merge: b5527da 74f1c6d Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Dec 10 16:13:32 2013 -0800 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20131210' into staging target-arm queue: * support REFCNT register on integrator/cp board * implement the A9MP's global timer * add the 'virt' platform * support '-cpu host' on KVM/ARM * Cadence GEM ethernet device bugfixes * Implement 32-bit ARMv8 VSEL, VMAXNM, VMINNM * fix TTBCR write masking * update 32 bit decoder to use new qemu_ld/st TCG opcodes # gpg: Signature made Tue 10 Dec 2013 06:22:01 AM PST using RSA key ID 14360CDE # gpg: Can't check signature: public key not found # By Peter Crosthwaite (16) and others # Via Peter Maydell * pmaydell/tags/pull-target-arm-20131210: (37 commits) target-arm: fix TTBCR write masking target-arm: Use new qemu_ld/st opcodes target-arm: Implement ARMv8 SIMD VMAXNM and VMINNM instructions. target-arm: Implement ARMv8 FP VMAXNM and VMINNM instructions. softfloat: Add minNum() and maxNum() functions to softfloat. softfloat: Remove unused argument from MINMAX macro. target-arm: Implement ARMv8 VSEL instruction. target-arm: Move call to disas_vfp_insn out of disas_coproc_insn. net/cadence_gem: Don't rx packets when no rx buffer available net/cadence_gem: Improve can_receive debug printfery net/cadence_gem: Fix register w1c logic net/cadence_gem: Fix small packet FCS stripping net/cadence_gem: Fix rx multi-fragment packets net/cadence_gem: Add missing VMSTATE_END_OF_LIST net/cadence_gem: Implement SAR (de)activation net/cadence_gem: Implement SAR match bit in rx desc net/cadence_gem: Implement RX descriptor match mode flags net/cadence_gem: Prefetch rx descriptors ASAP net/cadence_gem: simplify rx buf descriptor walking net/cadence_gem: Don't assert against 0 buffer address ... Message-id: 1386686613-2390-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit b5527dad7dba7d85520aaec787fb6fb14be1c366 Merge: 75c4ce8 d58ce68 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Dec 10 16:11:21 2013 -0800 Merge remote-tracking branch 'kraxel/tags/pull-audio-1' into staging Change audio wakeup rate from 250 Hz to 100 Hz. Emulation bugfixes for intel-hda and adlib. # gpg: Signature made Mon 09 Dec 2013 06:04:16 AM PST using RSA key ID D3E87138 # gpg: Can't check signature: public key not found # By Gerd Hoffmann (2) and others # Via Gerd Hoffmann * kraxel/tags/pull-audio-1: intel-hda: fix position buffer adlib: fix patching of port I/O addresses audio: adjust pulse to 100Hz wakeup rate audio: Lower default wakeup rate to 100 times / second Message-id: 1386597974-26506-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 75c4ce824ffd04a59f0af270f823fd5f1a59bd1a Merge: 45506cc 5ad04fb Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Dec 10 16:11:10 2013 -0800 Merge remote-tracking branch 'alon/libcacard_ccid.4' into staging # By Stefan Weil # Via Alon Levy * alon/libcacard_ccid.4: libcacard: Fix compilation for older versions of glib (bug #1258168) Message-id: 1386596263-26151-1-git-send-email-alevy@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 45506cc2be6834196ac2773ec4267ca6780f17a1 Merge: 8f84271 b1829cd Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Dec 10 16:09:34 2013 -0800 Merge remote-tracking branch 'mjt/trivial-patches' into staging # By Stefan Weil # Via Michael Tokarev * mjt/trivial-patches: qxl: Add missing trace.h (fix broken build) Message-id: 1386441094-9971-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0ec9eabc7f6020418e1f3b3273d1dd701f7f87f9 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 19 12:16:45 2013 -0700 tcg: Use bitmaps for free temporaries We previously allocated 32-bits per temp for the next_free_temp entry. We now allocate 4 bits per temp across the 4 bitmaps. Using a linked list meant that if a translator is tweeked, resulting in temps being freed in a different order, that would have follow-on effects throughout the TB. Always allocating the lowest free temp means that follow-on effects are minimized, which can make it easier to diff output when debugging the translators. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 74f1c6ddec8dc7566d9b75574bb006214cc7d3b4 Author: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Date: Tue Dec 10 10:41:49 2013 +0400 target-arm: fix TTBCR write masking Current implementation is not accurate according to ARMv7-AR reference manual. See "B4.1.153 TTBCR, Translation Table Base Control Register, VMSA | TTBCR format when using the Long-descriptor translation table format". When LPAE feature is supported, EAE, bit[31] selects translation descriptor format and, therefore, TTBCR format. Signed-off-by: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386657709-23399-1-git-send-email-s.fedorov@xxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 09f7813522238555b77ec2b9f2d3bc20d6e3c796 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Dec 9 14:37:06 2013 -0800 target-arm: Use new qemu_ld/st opcodes Retain the existing gen_aa32_* inlines, to aid compilation for A64. Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1386628626-21627-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 505935fc766e84b58af6e4c3c4233ed0a29b1288 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Dec 6 17:01:42 2013 +0000 target-arm: Implement ARMv8 SIMD VMAXNM and VMINNM instructions. This adds support for the ARMv8 Advanced SIMD VMAXNM and VMINNM instructions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Message-id: 1386158099-9239-7-git-send-email-will.newton@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 40cfacdd806b68706b10ceeeca6d0eea417d1a75 Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Dec 6 17:01:41 2013 +0000 target-arm: Implement ARMv8 FP VMAXNM and VMINNM instructions. This adds support for the ARMv8 floating point VMAXNM and VMINNM instructions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386158099-9239-6-git-send-email-will.newton@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e17ab310e98c55bd5cb8026c1086f9d19d181d3d Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Dec 6 17:01:41 2013 +0000 softfloat: Add minNum() and maxNum() functions to softfloat. Add floatnn_minnum() and floatnn_maxnum() functions which are equivalent to the minNum() and maxNum() functions from IEEE 754-2008. They are similar to min() and max() but differ in the handling of QNaN arguments. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Message-id: 1386158099-9239-5-git-send-email-will.newton@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e70614eaa0b8c6a2c948efa3ad71e75cd1f8ff8a Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Dec 6 17:01:41 2013 +0000 softfloat: Remove unused argument from MINMAX macro. The nan_exp argument is not used, so remove it. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386158099-9239-4-git-send-email-will.newton@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 04731fb5f3825409fd5ad64dbc0b1dfe7e7fb82f Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Dec 6 17:01:40 2013 +0000 target-arm: Implement ARMv8 VSEL instruction. This adds support for the VSEL floating point selection instruction which was added in ARMv8. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386158099-9239-3-git-send-email-will.newton@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 6a57f3ebba2dbe4a398319cec4df62cbcf3c5b8d Author: Will Newton <will.newton@xxxxxxxxxx> Date: Fri Dec 6 17:01:40 2013 +0000 target-arm: Move call to disas_vfp_insn out of disas_coproc_insn. Floating point is an extension to the instruction set rather than a coprocessor, so call it directly from the ARM and Thumb decode functions. Signed-off-by: Will Newton <will.newton@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1386158099-9239-2-git-send-email-will.newton@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8202aa539135a44906c38f82a469234ec65e0ef7 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 22:02:03 2013 -0800 net/cadence_gem: Don't rx packets when no rx buffer available Return false from can_receive() when no valid buffer descriptor is available. Ensures against mass packet droppage in some applications. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: cde00ef774e84e2586bf10fd37b542f75bf36cfb.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3ae5725f86a82751cccf6bc075e5ebfb327ac283 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 22:01:28 2013 -0800 net/cadence_gem: Improve can_receive debug printfery Currently this just floods indicating that can_receive has been called by the net framework. Instead, save the result of the most recent can_receive callback as state and only print a message if the result changes (indicating some sort of actual state change in GEM). Make said debug message more meaningful as well. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 2eb74ca6a5756aea242d9f525961db95d6cfcf2c.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e2314fda62c42c89f91dcf104ed3702170a90308 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 22:00:54 2013 -0800 net/cadence_gem: Fix register w1c logic This write-1-clear logic was incorrect. It was always clearing w1c bits regardless of whether the written value was 1 or not. i.e. it was implementing a write-anything-to-clear strategy. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: ed905b04d3343966ded425f06aa2224bc7a35b59.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 191946c51f28e6ac76e94c7379d5e0f69c016e83 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 22:00:17 2013 -0800 net/cadence_gem: Fix small packet FCS stripping The minimum packet size is 64, however this is before FCS stripping occurs. So when FCS stripping the minimum packet size is 60. Fix. Reported-by: Deepika Dhamija <deepika@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 8aac5bd737f9cf48b87f32943d7eb5939061e546.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 305706980267dae191d0fca2c769d7a31011be14 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:59:43 2013 -0800 net/cadence_gem: Fix rx multi-fragment packets Bytes_to_copy was being updated before its final use where it advances the rx buffer pointer. This was causing total mayhem, where packet data for any subsequent fragments was being fetched from the wrong place. Reported-by: Deepika Dhamija <deepika@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: c2a1c65c1fd06eb274442a0fa4a6839d940e145e.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 17cf2c76b684b679cb25fcb4a36d536ba9944d4d Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:59:08 2013 -0800 net/cadence_gem: Add missing VMSTATE_END_OF_LIST Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 8f8c2bfb15f40fb5f0d5766aa4cd3d54c596de6a.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 64eb9301769c97c7fd340e4e7ef98edcd500ebff Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:58:34 2013 -0800 net/cadence_gem: Implement SAR (de)activation The Specific address registers can be enabled or disabled by software. QEMU was assuming they were always enabled. Implement the disable/enable feature. SARs are disabled by writing to the lower half register. They are re-enabled by then writing the upper half. Reported-by: Deepika Dhamija <deepika@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 49efd1f7450af8f980b967d3054245bae137866c.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit a03f742983f9b6ed03913b30005b6f053290d285 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:57:59 2013 -0800 net/cadence_gem: Implement SAR match bit in rx desc Bit 27 of the RX buffer desc word 1 should be set when the packet was accepted due to specific address register match. Implement. This feature is absent from the Xilinx documentation (UG585) but the behaviour is tested as accurate on real hardware. Reported-by: Deepika Dhamija <deepika@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 7e3f26fc4ab244e8123efc12723e7164730abdcb.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 63af1e0cff8879a3ddd1b08abb3172b49fb88c88 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:57:24 2013 -0800 net/cadence_gem: Implement RX descriptor match mode flags The various Rx packet address matching mode flags were not being set in the rx descriptor. Implement. Reported-by: Deepika Dhamija <deepika@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 6002a24a6a8ceaa11d3009ab5392840d1c084b28.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 06c2fe951d58cdf2cafb432a76415236c8f73328 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:56:50 2013 -0800 net/cadence_gem: Prefetch rx descriptors ASAP The real hardware prefetches rx buffer descriptors ASAP and potentially throws relevant interrupts following the fetch even in the absence of a received packet. Reported-by: Deepika Dhamija <deepika@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 41629e35edfdb1f02f1e401f2c3d0e2e4c9e44b3.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 7cfd65e41c51cd8a55730524af750638cd416f95 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:56:15 2013 -0800 net/cadence_gem: simplify rx buf descriptor walking There was a replication of the rx descriptor address walking logic. Reorder the flow control to remove. This refactoring also obsoletes the local variables packet_desc_addr and last_desc_addr. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 2a425b457ff0b57274bf206ad2236690cd7f5909.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 11785f5352d45c6ef3efe3349ade42387ccebd5d Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:55:40 2013 -0800 net/cadence_gem: Don't assert against 0 buffer address This has no real hardware analog and asserting correctness of DMA addresses is not a perhiperal level problem. Delete. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: fc02417eb1874cb05e4f20531c6203c5a00110f1.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3b2c97f9916e15ef630e3f8449b1b10902bf9407 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Date: Tue Dec 3 21:55:05 2013 -0800 net/cadence_gem: Update DMA rx descriptors as we process them We were updating the ownership bit of all descriptors if packets get split and written through several descriptors. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: d61b7847b51487118783c93765a485bc5c66d272.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 24e822ea4669145c94552cef67751fbd9a42b4c8 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 3 21:54:30 2013 -0800 net/cadence_gem: Implement mac level loopback mode Cadence GEM has a MAC level loopback mode. Implement. Use the same basic operation as the already implemented PHY loopback. Reported-by: Deepika Dhamija <deepika@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 3a0baf1b6b2fc1be638bdf1a37408ec38988e970.1386136219.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 198aa06459ba6c0e689ed0f61b59ebe8aa9f9287 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:18 2013 +0000 hw/arm/virt: Support -cpu host Support -cpu host in virt machine (treating it like an A15, ie with a GIC v2 and the A15's private peripherals.) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-12-git-send-email-peter.maydell@xxxxxxxxxx commit a96c0514ab7d74ecb04677d3dc599facafa44e5b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:17 2013 +0000 target-arm: Provide '-cpu host' when running KVM Implement '-cpu host' for ARM when we're using KVM, broadly in line with other KVM-supporting architectures. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-11-git-send-email-peter.maydell@xxxxxxxxxx commit 3541addc888413b84fb309e3f4abf210c0c5eb57 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:16 2013 +0000 target-arm: Don't hardcode KVM target CPU to be A15 Instead of assuming that a KVM target CPU must always be a Cortex-A15 and hardcoding this in kvm_arch_init_vcpu(), store the KVM_ARM_TARGET_* value in the ARMCPU class, and use that. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-10-git-send-email-peter.maydell@xxxxxxxxxx commit f5fdcd6e58ec35b4463569694fc15d28c505c4d0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:14 2013 +0000 hw/arm: Add 'virt' platform Add 'virt' platform support corresponding to arch/arm/mach-virt in the Linux kernel tree. This has no platform-specific code but can use any device whose kernel driver is is able to work purely from a device tree node. We use this to instantiate a minimal set of devices: a GIC and some virtio-mmio transports. Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-8-git-send-email-peter.maydell@xxxxxxxxxx [PMM: Significantly overhauled: * renamed user-facing machine to just "virt" * removed the A9 support (it can't work since the A9 has no generic timers) * added virtio-mmio transports instead of random set of 'soc' devices (though we retain a pl011 UART) * instead of updating io_base as we step through adding devices, define a memory map with an array (similar to vexpress) * similarly, define irqmap with an array * folded in some minor fixes from John's aarch64-support patch * rather than explicitly doing endian-swapping on FDT cells, use fdt APIs that let us just pass in host-endian values and let the fdt layer take care of the swapping * miscellaneous minor code cleanups and style fixes ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 5de164304ad6473c812f24a29fda33a2d1b2bf45 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:13 2013 +0000 target-arm: Allow secondary KVM CPUs to be booted via PSCI New ARM boards are generally expected to boot their secondary CPUs via the PSCI interface, rather than ad-hoc "loop around in holding pen code" as hw/arm/boot.c implements. In particular this is necessary for mach-virt kernels. For KVM we achieve this by creating the VCPUs with a feature flag marking them as starting in PSCI powered-down state; the guest kernel will then make a PSCI call (implemented in the host kernel) to start the secondaries at an address of its choosing once it has got the primary CPU up. Implement this setting of the feature flag, controlled by a qdev property for ARMCPU, which board code can set if it is a PSCI system. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-7-git-send-email-peter.maydell@xxxxxxxxxx commit 54d3e3f52e5d540766af35f99fe0fa415c40cac2 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:12 2013 +0000 target-arm: Add ARMCPU field for Linux device-tree 'compatible' string Linux requires device tree CPU nodes to include a 'compatible' string describing the CPU. Add a field in the ARMCPU struct for this so that boards which construct a device tree can insert the correct CPU nodes. Note that there is currently no officially specified 'compatible' string for the TI925T, Cortex-M3 or SA1110 CPUs. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-6-git-send-email-peter.maydell@xxxxxxxxxx commit a22ec1e6825c7a00d25648027d08d4a332c29c84 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:11 2013 +0000 target-arm: Provide PSCI constants to generic QEMU code Provide versions of the KVM PSCI constants to non-KVM code; this will allow us to avoid an ifdef in boards which set up a PSCI node in the device tree. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-5-git-send-email-peter.maydell@xxxxxxxxxx commit 0fb79851c3dffa06de648d955ee2f2b47bfb96ce Author: John Rigby <john.rigby@xxxxxxxxxx> Date: Fri Nov 22 17:17:10 2013 +0000 hw/arm/boot: Allow boards to provide an fdt blob If no fdt is provided on command line and the new field get_dtb in struct arm_boot_info is set then call it to get a device tree blob. Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-4-git-send-email-peter.maydell@xxxxxxxxxx [PMM: minor tweaks and cleanup] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit ef6de70ea811d66ebb6b9b6046e304f588e754bb Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:09 2013 +0000 device_tree.c: Terminate the empty reservemap in create_device_tree() Device trees created with create_device_tree() may not have any entries in their reservemap, because the FDT API requires that the reservemap is completed before any FDT nodes are added, and create_device_tree() itself creates a node. However we were not calling fdt_finish_reservemap(), which meant that there was no terminator in the reservemap list and whatever happened to be at the start of the FDT data section would end up being interpreted as reservemap entries. Avoid this by calling fdt_finish_reservemap() to add the terminator. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Message-id: 1385140638-10444-3-git-send-email-peter.maydell@xxxxxxxxxx commit 72b0cd35ad3e216a1db7f6a08a2ff65bb577c119 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Nov 22 17:17:08 2013 +0000 target-arm: Provide mechanism for getting KVM constants even if not CONFIG_KVM There are a number of places where it would be convenient for ARM code to have working definitions of KVM constants even in code which is compiled with CONFIG_KVM not set. In this situation we can't simply include the kernel KVM headers (which might conflict with host header definitions or not even compile on the compiler we're using) so we have to redefine equivalent constants. Provide a mechanism for doing this and checking that the values match, and use it for the constants we're currently exposing via an ad-hoc mechanism. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Message-id: 1385140638-10444-2-git-send-email-peter.maydell@xxxxxxxxxx commit 57e72f2a1977448959fe4a492bc48cd2988c1f3b Author: François LEGAL <devel@xxxxxxxxxxxxxx> Date: Sun Dec 1 23:37:11 2013 -0800 cpu/a9mpcore: Add Global Timer Add the global timer to A9 MPCore. Signed-off-by: François LEGAL <devel@xxxxxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: ff92f35f438ac671b57d99d823723dd3e62d2c49.1385969450.git.peter.crosthwaite@xxxxxxxxxx [PC Changes: * new commit message * split off original version as a separate patch * Rebased against new mpcore implementation (with struct embedding) ] Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c21c3b53e122a807ae4f5443b7f74f3850f21e37 Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 10 13:24:51 2013 +0000 hw/timer: Introduce ARM A9 Global Timer. The ARM A9 MPCore has a timer that is global to all cores in the cluster. The timer is shared but each core has a private independent comparator and interrupt. Based on version contributed by Francois LEGAL. Signed-off-by: François LEGAL <devel@xxxxxxxxxxxxxx> Message-id: 4918e89476b8da916be2964ec41578b50d569a37.1385969450.git.peter.crosthwaite@xxxxxxxxxx [PC changes: * New commit message * Re-implemented as single timer model * Fixed backwards counting issue in polled mode * completed VMSD fields * macroified magic numbers (and headerified reg definitions) * split of as device-model-only patch * use bitops for 64 bit register access * Fixed auto increment mode to check condition properly * general cleanup (names/style etc). ] Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> [PMM: * minor typo fixes * added missing return after error_setg() * dropped setting dc->no_user = 1 ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4c25f365ab3a4f7de0a49af5d39ddc9d459e245b Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 10 13:24:51 2013 +0000 cpu/a9mpcore: reorder operations/declarations To make it consistent for easier code reading. The order in which variables are defined and functions are called is set to match the address map ordering. The new consistent order of doing stuff is: SCU -> GIC -> MPTimer -> WDT. 0 functional change. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 8f31398e6d9a93f57291399f269039da1a77a2b5.1385969450.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit d3053e6be5d90b86cbeba5eb3bba6d210014014b Author: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Date: Tue Dec 10 13:24:51 2013 +0000 cpu/a9mpcore: rename timerbusdev variable Rename this variable for consistency with the above defined mptimerdev variable. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 28939ef95589a62414634e86c47cef76b21b15f7.1385969450.git.peter.crosthwaite@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f53977f788c05e8795d22206c40eafb93a15d72b Author: Jan Petrous <jan.petrous@xxxxxxxxx> Date: Tue Dec 10 13:24:51 2013 +0000 integrator/cp: add support for REFCNT register Linux kernel from version 3.4 requires CM_REFCNT register for sched timer for Integrator/CP board (integrator_defconfig). See http://infocenter.arm.com/help/topic/com.arm.doc.dui0138e/ch04s06s11.html Signed-off-by: Jan Petrous <jan.petrous@xxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 6b9b4405743ffd428f35247516de9e6f4240f73f Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 14 14:12:47 2013 +0200 ACPI DSDT: Make control method `IQCR` serialized Forward-port the following commit from seabios: commit 995bbeef78b338370f426bf8d0399038c3fa259c Author: Paul Menzel <paulepanter@xxxxxxxxxxxxxxxxxxxxx> Date: Thu Oct 3 11:30:52 2013 +0200 The ASL Optimizing Compiler version 20130823-32 [Sep 11 2013] issues the following warning. $ make [â?¦] Compiling IASL out/src/fw/acpi-dsdt.hex out/src/fw/acpi-dsdt.dsl.i 360: Method(IQCR, 1, NotSerialized) { Remark 2120 - ^ Control Method should be made Serialized (due to creation of named objects within) [â?¦] ASL Input: out/src/fw/acpi-dsdt.dsl.i - 475 lines, 19181 bytes, 316 keywords AML Output: out/src/fw/acpi-dsdt.aml - 4407 bytes, 159 named objects, 157 executable opcodes Listing File: out/src/fw/acpi-dsdt.lst - 143715 bytes Hex Dump: out/src/fw/acpi-dsdt.hex - 41661 bytes Compilation complete. 0 Errors, 0 Warnings, 1 Remarks, 246 Optimizations [â?¦] After changing the parameter from `NotSerialized` to `Serialized`, the remark is indeed gone and there is no size change. The remark was added in ACPICA version 20130517 [1] and gives the following explanation. If a thread blocks within the method for any reason, and another thread enters the method, the method will fail because an attempt will be made to create the same (named) object twice. In this case, issue a remark that the method should be marked serialized. ACPICA BZ 909. [1] https://github.com/acpica/acpica/commit/ba84d0fc18ba910a47a3f71c68a43543c06e6831 Signed-off-by: Paul Menzel <paulepanter@xxxxxxxxxxxxxxxxxxxxx> Reported-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Tested-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 53db092ad1c81c30a617f44e83e8fb9e27c001ba Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 14 13:51:25 2013 +0200 acpi: strip compiler info in built-in DSDT IASL stores it's revision in each table header it generates. That's not nice since guests will see a change each time they move between hypervisors. We generally fill our own info for tables, but we (and seabios) forgot to do this for the built-in DSDT. Modifications in DSDT table: OEM ID: "BXPC" -> "BOCHS " OEM Table ID: "BXDSDT" -> "BXPCDSDT" Compiler ID: "INTL" -> "BXPC" Compiler Version: 0x20130823 -> 0x00000001 Tested-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 53333801e7bb41487147599e1b16b60ebea74695 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Tue Nov 12 18:32:24 2013 +0200 acpi unit-test: verify signature and checksum Read all ACPI tables from guest - will be useful for further unit tests. Follow pointers between ACPI tables checking signature and format for correctness. Verify checksum for all tables. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit b29ad07ee8ff44115ac9167bba51d1cf59f8649c Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Oct 30 13:56:40 2013 +0100 smbios: Set system manufacturer, product & version by default Currently, we get SeaBIOS defaults: manufacturer Bochs, product Bochs, no version. Best SeaBIOS can do, but we can provide better defaults: manufacturer QEMU, product & version taken from QEMUMachine desc and name. Take care to do this only for new machine types, of course. Note: Michael Tsirkin doesn't trust us to keep values of QEMUMachine member product stable in the future. Use copies instead, and in a way that makes it obvious that they're guest ABI. Note that we can be trusted to keep values of member name, because that has always been ABI. Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 026736cebfe0e4a96f0761a2bae62cca92ce2a4e Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Nov 13 20:13:03 2013 +0200 exec: reduce L2_PAGE_SIZE With the single exception of ppc with 16M pages, we get the same number of levels with L2_PAGE_SIZE = 10 as with L2_PAGE_SIZE = 9. by doing this we reduce memory footprint of a single level in the node memory map by 2x without runtime overhead. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 57271d63c4d93352406704d540453c43a4a241a7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Nov 7 17:14:37 2013 +0100 exec: make address spaces 64-bit wide As an alternative to commit 818f86b (exec: limit system memory size, 2013-11-04) let's just make all address spaces 64-bit wide. This eliminates problems with phys_page_find ignoring bits above TARGET_PHYS_ADDR_SPACE_BITS and address_space_translate_internal consequently messing up the computations. In Luiz's reported crash, at startup gdb attempts to read from address 0xffffffffffffffe6 to 0xffffffffffffffff inclusive. The region it gets is the newly introduced master abort region, which is as big as the PCI address space (see pci_bus_init). Due to a typo that's only 2^63-1, not 2^64. But we get it anyway because phys_page_find ignores the upper bits of the physical address. In address_space_translate_internal then diff = int128_sub(section->mr->size, int128_make64(addr)); *plen = int128_get64(int128_min(diff, int128_make64(*plen))); diff becomes negative, and int128_get64 booms. The size of the PCI address space region should be fixed anyway. Reported-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit b35ba30f8fa235c779d876ee299b80a2d501d204 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Nov 11 17:52:07 2013 +0200 exec: memory radix tree page level compression At the moment, memory radix tree is already variable width, but it can only skip the low bits of address. This is efficient if we have huge memory regions but inefficient if we are only using a tiny portion of the address space. After we have built up the map, detect configurations where a single L2 entry is valid. We then speed up the lookup by skipping one or more levels. In case any levels were skipped, we might end up in a valid section instead of erroring out. We handle this by checking that the address is in range of the resulting section. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 97115a8d4500abeb090b968f01605e0bdafcdfd3 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Nov 13 20:08:19 2013 +0200 exec: pass hw address to phys_page_find callers always shift by target page bits so let's just do this internally. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8b795765db36544da6193fb64e4e0f1dc55aaa36 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Nov 11 14:51:56 2013 +0200 exec: extend skip field to 6 bit, page entry to 32 bit Extend skip to 6 bit. As page entry doesn't fit in 16 bit any longer anyway, extend it to 32 bit. This doubles node map memory requirements, but follow-up patches will save this memory. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9736e55b78dc49b7f3a265932ab32ed360f633e4 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Nov 11 14:42:43 2013 +0200 exec: replace leaf with skip In preparation for dynamic radix tree depth support, rename is_leaf field to skip, telling us how many bits to skip to next level. Set to 0 for leaf. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 03f4995781a64e106e6f73864a1e9c4163dac53b Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Nov 7 17:14:36 2013 +0100 split definitions for exec.c and translate-all.c radix trees The exec.c and translate-all.c radix trees are quite different, and the exec.c one in particular is not limited to the CPU---it can be used also by devices that do DMA, and in that case the address space is not limited to TARGET_PHYS_ADDR_SPACE_BITS bits. We want to make exec.c's radix trees 64-bit wide. As a first step, stop sharing the constants between exec.c and translate-all.c. exec.c gets P_L2_* constants, translate-all.c gets V_L2_*, for consistency with the existing V_L1_* symbols. Though actually in the softmmu case translate-all.c is also indexed by physical addresses... This patch has no semantic change. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 92b8e39c7f582e15f9e9423bc9fd3f186536b073 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Nov 6 20:25:21 2013 +0200 spapr_pci: s/INT64_MAX/UINT64_MAX/ It doesn't make sense for a region to be INT64_MAX in size: memory core uses UINT64_MAX as a special value meaning "all 64 bit" this is what was meant here. While this should never affect the spapr system which at the moment always has < 63 bit size, this makes us hit all kind of corner case bugs with sub-pages, so users are probably better off if we just use UINT64_MAX instead. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> commit 286690e34ce04fa29bf812ef2bb7b32c3e7c3b85 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Nov 6 20:18:08 2013 +0200 pc: s/INT64_MAX/UINT64_MAX/ It doesn't make sense for a region to be INT64_MAX in size: memory core uses UINT64_MAX as a special value meaning "all 64 bit" this is what was meant here. While this should never affect the PC system which at the moment always has < 63 bit size, this makes us hit all kind of corner case bugs with sub-pages, so users are probably better off if we just use UINT64_MAX instead. Reported-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Tested-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit cf252e5173e46aa4956b88a95fd09ef7eb38b8a6 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Nov 6 20:23:26 2013 +0200 pci: fix address space size for bridge Address space size for bridge should be full 64 bit, so we should use UINT64_MAX not INT64_MAX as it's size. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 046a648661517f63496aaa34ed2647c77cc2ebe5 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Nov 6 17:16:42 2013 +0200 MAINTAINERS: update X86 machine entry Add a bunch of files missing, and add self as maintainer. Since I'm hacking on these anyway, it will be helpful if people Cc me on patches. Anthony gets to review everything anyway ... Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit ad6423a7fbbaedc4ec1ed41a9688ca4a10909e89 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Fri Oct 18 00:52:18 2013 +0300 acpi-test: basic acpi unit-test We run bios, and boot a minimal boot sector that immediately halts. Then poke at memory to find ACPI tables. This only checks that RSDP is there. More will be added later. Cc: Andreas Färber <afaerber@xxxxxxx> Cc: Markus Armbruster <armbru@xxxxxxxxxx> Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d4fce24f3a59eda081cdf2e38e7001591b95d173 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Oct 18 13:51:11 2013 +0200 qtest: split configuration of qtest accelerator and chardev qtest uses the icount infrastructure to implement a test-driven vm_clock. This however is not necessary when using -qtest as a "probe" together with a normal TCG-, KVM- or Xen-based virtual machine. Hence, split out the call to configure_icount into a new function that is called only for "-machine accel=qtest"; and disable those commands when running with an accelerator other than qtest. This also fixes an assertion failure with "qemu-system-x86_64 -machine accel=qtest" but no -qtest option. This is a valid case, albeit somewhat weird; nothing will happen in the VM but you'll still be able to interact with the monitor or the GUI. Now that qtest_init is not limited to an int(void) function, change global variables that are not used outside qtest_init to arguments. And finally, cleanup useless parts of include/sysemu/qtest.h. The file is not used at all for user-only emulation, and qtest is not available on Win32 due to its usage of sigwait. Reported-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Tested-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 83d08f2673504a299194dcac1657a13754b5932a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Oct 29 13:57:34 2013 +0100 pc: map PCI address space as catchall region for not mapped addresses With a help of negative memory region priority PCI address space is mapped underneath RAM regions effectively catching every access to addresses not mapped by any other region. It simplifies PCI address space mapping into system address space. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> commit e689f7c668cbd9d08f330e17c3dd3a059c9553d3 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Oct 30 13:56:39 2013 +0100 hw: Pass QEMUMachine to its init() method Put it in QEMUMachineInitArgs, so I don't have to touch every board. Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 306ec6c3cece7004429c79c1ac93d49919f1f1cc Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 03:50:44 2013 +0200 virtio: Convert exit to unrealize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0ba94b6f94a5b0bed9f125ce4c3348adc83db5de Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 04:05:02 2013 +0200 virtio: Complete converting VirtioDevice to QOM realize Drop VirtioDeviceClass::init. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 71a6520b83414b4ebe3ecfdee3dc3a70db98c91f Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 03:19:55 2013 +0200 virtio-scsi: Convert to QOM realize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit a8d57dfb28bd8fd8ebddf08d0cfafdcb61a764fb Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 02:57:37 2013 +0200 virtio-rng: Convert to QOM realize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 74def47c8c1453a48f9bd61633050cc681e67fba Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 02:51:37 2013 +0200 virtio-balloon: Convert to QOM realize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e6f746b380ad04246e5cce621f174355f39addcd Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 02:36:06 2013 +0200 virtio-net: Convert to QOM realize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 863462440d646098d2b83fb0ffa5f165e7f90511 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 02:24:34 2013 +0200 virtio-serial: Convert to QOM realize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 75884afd5c6c42e523b08565e289dbe319e17ad9 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 01:35:08 2013 +0200 virtio-blk: Convert to QOM realize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 59be75227d3985c9f0a9f5396fc64e357a54defb Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 01:04:01 2013 +0200 virtio-9p: Convert to QOM realize Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 1d244b42d200c02ad60eb564c75d8adea9243366 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 00:50:27 2013 +0200 virtio: Start converting VirtioDevice to QOM realize Temporarily allow either VirtioDeviceClass::init or VirtioDeviceClass::realize. Introduce VirtioDeviceClass::unrealize for symmetry. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 7598f0f30e027146ba70517a2bda98d16bac1e24 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 05:41:42 2013 +0200 virtio-scsi: QOM realize preparations Rename qdev -> dev since that's what realize's argument is called by convention. No need to keep more "qdev" around than necessary. Avoid duplicate VIRTIO_DEVICE() cast. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit af7671fdc530dd597b1ddb4561f5ffc0d534c44c Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 05:12:47 2013 +0200 virtio-rng: QOM realize preparations Rename qdev -> dev because that's what realize's argument is called by convention. No need to keep more "qdev" around than necessary. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit a546fb174162b0186fe6c275476cb45e5cafa68c Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 05:33:58 2013 +0200 virtio-balloon: QOM realize preparations Rename qdev -> dev since that's what realize's argument is called by convention. No need to keep more "qdev" around than necessary. Avoid duplicate VIRTIO_DEVICE() cast. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 284a32f0b33dce4e77e896168387b8dca90c4bea Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 05:02:48 2013 +0200 virtio-net: QOM realize preparations Rename variable qdev -> dev since that's what realize's argument is called by convention. Avoid duplicate VIRTIO_DEVICE() cast. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit b1a20c3fcab96832c3813e9e7162748f325e0c82 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 05:30:09 2013 +0200 virtio-serial: QOM realize preparations Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 179b417e17ada41dce4e8112bea0a78a70b6162c Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 30 04:48:15 2013 +0200 virtio-blk: QOM realize preparations Rename variable qdev -> dev since that's what realize's argument is called by convention. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0f3657ec3664b340ae20b461a7e15dbdac129179 Author: Andreas Färber <afaerber@xxxxxxx> Date: Thu Aug 1 00:32:45 2013 +0200 virtio-9p: QOM realize preparations Avoid unnecessary VIRTIO_DEVICE(). Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 3ffeeef735fdb52ffee2eed4fb398f3a1199728f Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Jun 7 16:18:50 2013 +0200 virtio-blk-dataplane: Improve error reporting Return an Error so that it can be propagated later. Tested-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Acked-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> [AF: Rebased] Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 06a1307379fcd6c551185ad87679cd7ed896b9ea Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 14:10:26 2013 +0200 virtio-pci: add device_unplugged callback This fixes a crash in hot-unplug of virtio-pci devices behind a PCIe switch. The crash happens because the ioeventfd is still set whent the child is destroyed (destruction happens in postorder). Then the proxy tries to unset to ioeventfd, but the virtqueue structure that holds the EventNotifier has been trashed in the meanwhile. kvm_set_ioeventfd_pio does not expect failure and aborts. The fix is simply to move parts of uninitialization to a new device_unplugged callback, which is called before the child is destroyed. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 7bb6edb0e3dd78d74e0ac980cf6c0a07307f61bf Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 14:06:08 2013 +0200 virtio-rng: switch exit callback to VirtioDeviceClass This ensures hot-unplug is handled properly by the proxy, and avoids leaking bus_name which is freed by virtio_device_exit. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit baa61b9870dd7e0bb07e0ae61c6ec805db13f699 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 14:06:08 2013 +0200 virtio-balloon: switch exit callback to VirtioDeviceClass This ensures hot-unplug is handled properly by the proxy, and avoids leaking bus_name which is freed by virtio_device_exit. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e3c9d76acc984218264bbc6435b0c09f959ed9b8 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 14:06:08 2013 +0200 virtio-scsi: switch exit callback to VirtioDeviceClass This ensures hot-unplug is handled properly by the proxy, and avoids leaking bus_name which is freed by virtio_device_exit. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 3786cff5eb384d058395a2729af627fa3253d056 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 14:06:08 2013 +0200 virtio-net: switch exit callback to VirtioDeviceClass This ensures hot-unplug is handled properly by the proxy, and avoids leaking bus_name which is freed by virtio_device_exit. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0e86c13fe2058adb8c792ebb7c51a6a7ca9d3d55 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 14:05:56 2013 +0200 virtio-serial: switch exit callback to VirtioDeviceClass This ensures hot-unplug is handled properly by the proxy, and avoids leaking bus_name which is freed by virtio_device_exit. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 40dfc16f5fe0afb66f9436718781264dfadb6c61 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 14:05:42 2013 +0200 virtio-blk: switch exit callback to VirtioDeviceClass This ensures hot-unplug is handled properly by the proxy, and avoids leaking bus_name which is freed by virtio_device_exit. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 5e96f5d2f8d2696ef7d2d8d7282c18fa6023470b Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 13:59:08 2013 +0200 virtio-bus: cleanup plug/unplug interface Right now we have these pairs: - virtio_bus_plug_device/virtio_bus_destroy_device. The first takes a VirtIODevice, the second takes a VirtioBusState - device_plugged/device_unplug callbacks in the VirtioBusClass (here it's just the naming that is inconsistent) - virtio_bus_destroy_device is not called by anyone (and since it calls qdev_free, it would be called by the proxies---but then the callback is useless since the proxies can do whatever they want before calling virtio_bus_destroy_device) And there is a k->init but no k->exit, hence virtio_device_exit is overwritten by subclasses (except virtio-9p). This cleans it up by: - renaming the device_unplug callback to device_unplugged - renaming virtio_bus_plug_device to virtio_bus_device_plugged, matching the callback name - renaming virtio_bus_destroy_device to virtio_bus_device_unplugged, removing the qdev_free, making it take a VirtIODevice and calling it from virtio_device_exit - adding a k->exit callback virtio_device_exit is still overwritten, the next patches will fix that. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit a3fc66d9fd37acbfcee013692246a8ae42bd93bb Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 13:36:40 2013 +0200 virtio-pci: remove vdev field The vdev field is complicated to synchronize. Just access the BusState's list of children. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit f24a684073bcdaf4e9d3c592345744ba3356d9e3 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 13:51:52 2013 +0200 virtio-ccw: remove vdev field The vdev field is complicated to synchronize. Just access the BusState's list of children. Cc: qemu-stable@xxxxxxxxxx Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 06d3dff0723c712a4b109ced4243edf49ef850af Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 13:31:39 2013 +0200 virtio-bus: remove vdev field The vdev field is complicated to synchronize. Just access the BusState's list of children. Cc: qemu-stable@xxxxxxxxxx Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0b81c1ef5c677c2a07be5f8bf0dfe2c62ef52115 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Oct 15 16:47:16 2013 +0200 virtio-ccw: move virtio_ccw_stop_ioeventfd to virtio_ccw_busdev_unplug Similar to the PCI bug that prompted these patches, virtio-ccw will segfault after the reworking of hotplug/hot-unplug. Prepare for this by moving virtio_ccw_stop_ioeventfd to before the freeing of the proxy device. A better place for this could be the device_unplugged callback for the virtio-ccw bus. However, we do not yet have a callback that works: this patch avoids the problem while leaving the tree bisectable. Cc: qemu-stable@xxxxxxxxxx Reported-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Suggested-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Acked-by: Andreas Faerber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 8f84271da83c0e9f92aa7c1c2d0d3875bf0a5cb8 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 14:48:07 2013 +0100 target-mips: Use macro ARRAY_SIZE where possible This improves readability and simplifies the code. Cc: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 4d66261f71f2efa31e1052e4041c5ee505572fe5 Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Fri Nov 29 17:27:42 2013 +0100 target-mips: fix 64-bit FPU config for user-mode emulation FR bit should be initialized to 1 for MIPS64, under condition that this bit is writable and that CPU has an FPU unit. It should be initialized to zero for MIPS32. This fixes different MIPS32 issues with FPU instructions whose behaviour defaulted to 64-bit FPU mode. Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 21c046118e740704d0ba81f6281dc95905bc30a8 Author: Bobby Bingham <koorogi@xxxxxxxxxxxx> Date: Sun Nov 24 14:03:05 2013 -0600 target-sh4: move features flag after CPU_COMMON Everything before CPU_COMMON in the structure is cleared as part of a CPU reset. This included the features flag, which indicates whether SH4A instructions are supported or not. As a result, a CPU reset downgraded the CPU from an SH4A to an SH4. Signed-off-by: Bobby Bingham <koorogi@xxxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 2fe3798cd5fab65ee7c86758b1b7701d7fe3709f Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Dec 6 16:08:05 2013 +0100 help: add id suboption to -iscsi Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 98e33f1b0eff84d9538cf957dde48c3f67f6f9d8 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Dec 9 13:40:15 2013 +0100 scsi-disk: fix WRITE SAME with large non-zero payload Due to a thinko in the patch that implemented WRITE SAME. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 02d38fcb2caa4454cf4ed728d5908c3cc9ba47be Author: Vlad Yasevich <vyasevic@xxxxxxxxxx> Date: Thu Nov 21 21:05:51 2013 -0500 net: Update netdev peer on link change When a link change occurs on a backend (like tap), we currently do not propage such change to the nic. As a result, when someone turns off a link on a tap device, for instance, then a guest doesn't see that change and continues to try to send traffic or run DHCP even though the lower-layer is disconnected. This is OK when the network is set up as a HUB since the the guest may be connected to other HUB ports too, but when it's set up as a netdev, it makes thinkgs worse. The patch addresses this by setting the peers link down only when the peer is not a HUBPORT device. With this patch, in the following config -netdev tap,id=net0 -device e1000,mac=XXXXX,netdev=net0 when net0 link is turned off, the guest e1000 shows lower-layer link down. This allows guests to boot much faster in such configurations. With windows guest, it also allows the network to recover properly since windows will not configure the link-local IPv4 address, and when the link is turned on, the proper address address is configured. Signed-off-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit cae2e5562cdaf3aafa1c4ec2d5f2b19af6c886dd Author: Amos Kong <akong@xxxxxxxxxx> Date: Mon Nov 11 11:48:36 2013 +0800 virtio-net: don't update mac_table in error state mac_table was always cleaned up first in handling VIRTIO_NET_CTRL_MAC_TABLE_SET command, and we din't recover mac_table content in error state, it's not correct. This patch makes all the changes in temporal variables, only update the real mac_table if everything is ok. We won't change mac_table in error state, so rxfilter notification isn't needed. This patch also fixed same problame in http://lists.nongnu.org/archive/html/qemu-devel/2013-11/msg01188.html (not merge) I will send patch for virtio spec to clarifying this change. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> Acked-by: Jason Wang <jasowang@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit aee09baf915491eabbf46f9cf55a445ec59b8269 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Wed Nov 6 18:34:55 2013 +0100 MAINTAINERS: Add netmap maintainers Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 58952137b0b3e1c9e3ce718ed952c1baf8832652 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Wed Nov 6 11:44:06 2013 +0100 net: Adding netmap network backend This patch adds support for a network backend based on netmap. netmap is a framework for high speed packet I/O. You can use it to build extremely fast traffic generators, monitors, software switches or network middleboxes. Its companion software switch VALE lets you interconnect virtual machines. netmap and VALE are implemented as a non-intrusive kernel module, support NICs from multiple vendors, are part of standard FreeBSD distributions and available in source format for Linux too. To compile QEMU with netmap support, use the following configure options: ./configure [...] --enable-netmap --extra-cflags=-I/path/to/netmap/sys where "/path/to/netmap" contains the netmap source code, available at http://info.iet.unipi.it/~luigi/netmap/ The same webpage contains more information about the netmap project (together with papers and presentations). Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 063c3378a9e3c25cc0afac3c72e4823d0621e352 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Dec 5 16:47:17 2013 +0100 block/iscsi: introduce bdrv_co_{readv, writev, flush_to_disk} this converts read, write and flush functions from aio to coroutines eliminating almost 200 lines of code. The requirement for libiscsi is bumped to version 1.4.0 which was released in may 2012. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit d97e7730816094a71cd1f19a56d7a73f77cdbf96 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Nov 28 11:18:56 2013 +0100 scsi-disk: fix VERIFY emulation VERIFY emulation was completely botched (and remained botched through all the refactorings). The command must be emulated both in check-medium mode (BYTCHK=00, which we implement by doing nothing) and in check-bytes mode (which we do not implement yet). Unlike WRITE AND VERIFY (which we treat simply as WRITE with FUA bit set), VERIFY cannot be handled like READ. In fact the device is _receiving_ data for VERIFY, not _sending_ it like READ. Cc: qemu-stable@xxxxxxxxxx Tested-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit d12ad44cc4cc9142179e64295608611f118b8ad8 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Nov 28 11:01:13 2013 +0100 scsi-bus: fix transfer length and direction for VERIFY command The amount of bytes to transfer depends on the BYTCHK field. If any data is transferred, it is sent to the device. Cc: qemu-stable@xxxxxxxxxx Tested-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 5ad04fb6f112cf2917909be4c22109dbb65fed18 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Dec 5 19:41:28 2013 +0100 libcacard: Fix compilation for older versions of glib (bug #1258168) See https://bugs.launchpad.net/bugs/1258168 libcacard/vscclient.c: In function 'do_socket_read': libcacard/vscclient.c:410: warning: implicit declaration of function 'g_warn_if_reached' libcacard/vscclient.c:410: warning: nested extern declaration of 'g_warn_if_reached' libcacard/vscclient.c: In function 'main': libcacard/vscclient.c:763: warning: implicit declaration of function 'g_byte_array_unref' libcacard/vscclient.c:763: warning: nested extern declaration of 'g_byte_array_unref' ... libcacard/vscclient.o: In function `do_socket_read': libcacard/vscclient.c:410: undefined reference to `g_warn_if_reached' libcacard/vscclient.o: In function `main': libcacard/vscclient.c:763: undefined reference to `g_byte_array_unref' g_warn_if_reached was added in glib 2.16, and g_byte_array_unref is supported since glib 2.22. QEMU requires glib 2.12, so both names must not be used. Instead of showing a warning for code which should not be reached, vscclient better stop running, so g_warn_if_reached is not useful for vscclient. In libcacard/vsclient.c, g_byte_array_unref can be replaced by g_byte_array_free. This is not generally true, so adding a compatibility layer in include/glib-compat.h is no option here. Reported-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Reported-by: Don Slutz <dslutz@xxxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit d58ce68a454e5ae9cbde0308def379e272f13b10 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Nov 29 14:25:33 2013 +0100 intel-hda: fix position buffer Fix position buffer updates to use the correct stream offset. Without this patch both IN (record) and OUT (playback) streams will update the IN buffer positions. The linux kernel notices and complains: hda-intel: Invalid position buffer, using LPIB read method instead. The bug may also lead to glitches when recording and playing at the same time: https://bugzilla.redhat.com/show_bug.cgi?id=947785 Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 7f0ba7bb4378f22b017e08947219a352d491bac4 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Dec 2 10:16:18 2013 +0100 adlib: fix patching of port I/O addresses Commit 2b21fb5 (adlib: sort offsets in portio registration, 2013-08-14) fixed the offsets in adlib_portio_list, but forgot the matching indices in adlib_realizefn. Reported at http://virtuallyfun.superglobalmegacorp.com/?p=3616 by "neozeed". Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 0e8ae611bda0dfb038da2d865801d8adbd692bad Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 2 10:49:13 2013 +0100 audio: adjust pulse to 100Hz wakeup rate Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 40a814b0b1789b94c483190b3208729b5182e5bd Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Wed Oct 9 21:38:32 2013 +0200 audio: Lower default wakeup rate to 100 times / second This is more then plenty to keep audio card fifos filles / emptied. This drops host cpu-load for audio playback inside a linux vm from 13% to 9%. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit a1d22a367d5780c9553b2cd5a24f665534ce6ed6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Dec 7 14:52:34 2013 +1300 target-cris: Use new qemu_ld/st opcodes Using the new opcodes we can reduce if/else trees to a single statement. Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Cc: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit b1829cdebe2c5cc0b445f2959dbdb63a48118b12 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Dec 7 15:09:12 2013 +0100 qxl: Add missing trace.h (fix broken build) Commit ac86048bcd41129b18702ba63395f222871804de removed trace.h from console.h and ignored the fact that qxl-render.c needs this file (it includes qxl.h which includes console.h which included trace.h). Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit d2aa90cda81ae3f860dd047ce5e37e0473452d54 Merge: 9353137 3e40ba0 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sat Dec 7 07:47:24 2013 -0800 Merge remote-tracking branch 'awilliam/tags/vfio-pci-for-qemu-20131206.0' into staging vfio-pci updates include: - Update linux-headers to include KVM-VFIO device support - Enable QEMU support for KVM-VFIO device - Additional Nvidia x-vga quirk to ACK MSI interrupts - Debug options to disable MSI/X KVM acceleration - Fix to cleanup MSI-X vectors on shutdown and avoid IRQ route leaks The KVM-VFIO device support enables KVM to manage how it handles coherency instructions in the presence of non-coherent I/O. Dave Airlie had noted that the Nvidia MSI ACK support here may just be scratching the surface, but it's better than what we have now and it's only enabled via the x-vga option, so I'm willing to add since it does enable some users. # gpg: Signature made Fri 06 Dec 2013 12:28:19 PM PST using RSA key ID 3BB08B22 # gpg: Can't check signature: public key not found # By Alex Williamson # Via Alex Williamson * awilliam/tags/vfio-pci-for-qemu-20131206.0: vfio-pci: Release all MSI-X vectors when disabled vfio-pci: Add debug config options to disable MSI/X KVM support vfio-pci: Fix Nvidia MSI ACK through 0x88000 quirk vfio-pci: Make use of new KVM-VFIO device linux-headers: Update from v3.13-rc3 Message-id: 20131206204715.16731.12627.stgit@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 93531372f0f74bb4d886480c0c8aa0e4ca6f5423 Merge: 0c0cb6a ac9524d Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sat Dec 7 07:35:31 2013 -0800 Merge remote-tracking branch 'stefanha/block' into staging # By Paolo Bonzini (17) and others # Via Stefan Hajnoczi * stefanha/block: (48 commits) qemu-iotests: filter QEMU monitor \r\n aio: make aio_poll(ctx, true) block with no fds block: clean up bdrv_drain_all() throttling comments qcow2: use start_of_cluster() and offset_into_cluster() everywhere qemu-img: decrease progress update interval on convert qemu-img: round down request length to an aligned sector qemu-img: dynamically adjust iobuffer size during convert block/iscsi: set bs->bl.opt_transfer_length block: add opt_transfer_length to BlockLimits block/iscsi: set bdi->cluster_size qemu-img: fix usage instruction for qemu-img convert qemu-img: add support for skipping zeroes in input during convert qemu-nbd: add doc for option -f qemu-iotests: add test for snapshot in qemu-img convert qemu-img: add -l for snapshot in convert qemu-iotests: add 058 internal snapshot export with qemu-nbd case qemu-nbd: support internal snapshot export snapshot: distinguish id and name in load_tmp qemu-iotests: Split qcow2 only cases in 048 qemu-iotests: Clean up spaces in usage output ... Message-id: 1386347807-27359-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0c0cb6a2378f937410f5f55cbf3e3b2c20f293c6 Merge: 3c88da3 33f373d Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sat Dec 7 07:35:25 2013 -0800 Merge remote-tracking branch 'qemu-kvm/uq/master' into staging # By Alex Williamson (1) and others # Via Paolo Bonzini * qemu-kvm/uq/master: target-i386: fix cpuid leaf 0x0d qemu: mempath: prefault pages manually (v4) kvm: Query KVM for available memory slots Message-id: 1386345276-9803-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 3c88da3c243ff7b452026e207cbba853123250cc Merge: 2a576ee bcf2b7d Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sat Dec 7 07:35:16 2013 -0800 Merge remote-tracking branch 'kraxel/tags/pull-seabios-31b8b4e-1' into staging Update seabios to master snapshot (pre-1.7.4). Update vgabios, switch from lgplvgabios to seavgabios. Update build process to build both 128k and 256k bios versions. Use 256k bios for pc-*-2.0+ machine types. # gpg: Signature made Fri 06 Dec 2013 12:01:24 AM PST using RSA key ID D3E87138 # gpg: Can't check signature: public key not found # By Gerd Hoffmann # Via Gerd Hoffmann * kraxel/tags/pull-seabios-31b8b4e-1: pc: switch 2.0 machine types to large seabios binary roms: update vgabios binaries roms: update seabios binaries roms: enable seabios cross builds roms: build two seabios binaries roms: update seabios submodule to 31b8b4eea9d9ad58a73b22a6060d3ac1c419c26d add firmware to machine options add pc-{i440fx,q35}-2.0 machine types Message-id: 1386322527-23148-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 2a576ee6e36924bb3c3e6690e9ca35a9942e0634 Merge: 0a0ee0b e9eecb5 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sat Dec 7 07:35:01 2013 -0800 Merge remote-tracking branch 'otubo/seccomp' into staging # By Paul Moore # Via Eduardo Otubo * otubo/seccomp: seccomp: add kill() to the syscall whitelist Message-id: 1386075077-3240-1-git-send-email-otubo@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0a0ee0b93bdd6e1ef628283d00bb979e27655ebb Merge: 9ed5dac 981cbf5 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 6 12:59:58 2013 -0800 Merge remote-tracking branch 'kwolf/tags/for-anthony' into staging Block patches for 2.0 (flushing block-next) # gpg: Signature made Fri 29 Nov 2013 08:43:18 AM PST using RSA key ID C88F2FD6 # gpg: Can't check signature: public key not found # By Peter Lieven (17) and others # Via Kevin Wolf * kwolf/tags/for-anthony: (41 commits) qemu-iotests: Add sample image and test for VMDK version 3 vmdk: Allow read only open of VMDK version 3 qemu-iotests: Filter out 'qemu-io> ' prompt qemu-iotests: Filter qemu-io output in 025 block: Use BDRV_O_NO_BACKING where appropriate qemu-iotests: Test snapshot mode block: Enable BDRV_O_SNAPSHOT with driver-specific options qemu-iotests: Make test case 030, 040 and 055 deterministic qemu-iotest: Add pause_drive and resume_drive methods blkdebug: add "remove_break" command qemu-iotests: Drop local version of cancel_and_wait from 040 sheepdog: support user-defined redundancy option sheepdog: refactor do_sd_create() qdict: Optimise qdict_do_flatten() qdict: Fix memory leak in qdict_do_flatten() MAINTAINERS: add sheepdog development mailing list COW: Extend checking allocated bits to beyond one sector COW: Speed up writes qapi: Change BlockDirtyInfo to list block: per caller dirty bitmap ... Message-id: 1385743555-27888-1-git-send-email-kwolf@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 9ed5dacbfa0f3f74238854776385f150b68e78b9 Merge: cdac7a7 539891a Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 6 12:58:28 2013 -0800 Merge remote-tracking branch 'sstabellini/xen-2013-12-01' into staging # By Paul Durrant (1) and Wei Liu (1) # Via Stefano Stabellini * sstabellini/xen-2013-12-01: xen-pvdevice: make device-id property compulsory xen: fix two errors when debug is enabled Message-id: alpine.DEB.2.02.1312011829000.3198@xxxxxxxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit cdac7a7184065467ba45ec83a9abfeeae060ce4b Merge: a55d121 0b959cf Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 6 12:57:21 2013 -0800 Merge remote-tracking branch 'rth/auxv-2' into staging # By Richard Henderson # Via Richard Henderson * rth/auxv-2: linux-user: Use qemu_getauxval for AT_EXECFD util: Use qemu_getauxval in linux qemu_cache_utils_init tcg-s390: Use qemu_getauxval in query_facilities tcg-arm: Use qemu_getauxval tcg-ppc64: Use qemu_getauxval osdep: Create qemu_getauxval and qemu_init_auxval Message-id: 1385757754-10702-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit a55d121f4a932dcd19eb8164804cc98d5ea88e72 Merge: e679f05 a292678 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 6 12:56:51 2013 -0800 Merge remote-tracking branch 'riku/linux-user-for-upstream' into staging # By Erik de Castro Lopo (2) and others # Via Riku Voipio * riku/linux-user-for-upstream: linux-user: pass correct parameter to do_shmctl() linux-user: create target_structs header to place ipc_perm and shmid_ds flatload: fix non-GOT relocations linux-user: Implement handling of 5 POSIX timer syscalls. linux-user: Add target struct defs needed for POSIX timer syscalls. Message-id: cover.1385732338.git.riku.voipio@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit e679f05248e220b8ef587e8fd6c64ffe83b1e16f Merge: 783eb67 0b1fa34 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 6 12:54:35 2013 -0800 Merge remote-tracking branch 'kraxel/tags/pull-usb-1' into staging Improvements for usb3 bulk stream (usb core, xhci). Bugfixes for uas emulation. Add remote wakeup support for ehci. Add suspend support for xhci. Misc minor tweaks and fixes. # gpg: Signature made Thu 28 Nov 2013 11:44:49 PM PST using RSA key ID D3E87138 # gpg: Can't check signature: public key not found # By Hans de Goede (11) and others # Via Gerd Hoffmann * kraxel/tags/pull-usb-1: usb: move usb_{hi,lo} helpers to header file. usb: add vendor request defines trace-events: Clean up after removal of old usb-host code Revert "usb-tablet: Don't claim wakeup capability for USB-2 version" ehci: implement port wakeup xhci: Call usb_device_alloc/free_streams usb: Add usb_device_alloc/free_streams usb: Add max_streams attribute to endpoint info uas: s/ui/iu/ uas: Fix response iu struct definition uas: Bounds check tags when using streams uas: Streams are numbered 1-y, rather then 0-x uas: Fix / cleanup usb_uas_task error handling uas: Only use report iu-s for task_mgmt status reporting scsi: Add 2 new sense codes needed by uas xhci: add support for suspend/resume xhci: Add a few missing checks for disconnected devices Message-id: 1385712381-30918-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 783eb67e7a125eaf226e5ea4f5df97c1ea42311e Merge: 7dc65c0 6fedcaa Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Dec 6 12:52:50 2013 -0800 Merge remote-tracking branch 'mjt/trivial-patches' into staging # By Stefan Weil (9) and others # Via Michael Tokarev * mjt/trivial-patches: eeprom93xx: fix coding style hw/ppc/mac.h: remove unused BIOS_FILENAME definition Don't crash on keyboard input with no handler libcacard/vcard_emul_nss: Remove unused statement (value stored is never read) libcacard/cac: Remove unused statement (value stored is never read) virtio-net: fix the indent misc: Replace 'struct QEMUTimer' by 'QEMUTimer' qobject: Fix compiler warning (missing gnu_printf format attribute) acpi-build: Fix compiler warning (missing gnu_printf format attribute) .gitignore: Ignore config.status gtk: Replace conditional debug messages by trace methods console: Replace conditional debug messages by trace methods trace: Remove trace.h from hw/usb/hcd-ehci.h (less dependencies) trace: Remove trace.h from console.h (less dependencies) Message-id: 1385408466-13183-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 6fedcaa1c5419fa89c31fd34dabbd71861c615d2 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Wed Dec 4 10:27:29 2013 +0400 eeprom93xx: fix coding style scripts/checkpatch.pl reports about some style problems, this commit fixes some of them: ERROR: space prohibited before open square bracket '[' + .fields = (VMStateField []) { ERROR: space prohibited after that '!' (ctx:BxW) + if (! eeprom->eecs && eecs) { ^ ERROR: space prohibited after that '!' (ctx:WxW) + } else if (eeprom->eecs && ! eecs) { ^ ERROR: space prohibited after that '!' (ctx:WxW) + } else if (eecs && ! eeprom->eesk && eesk) { ^ ERROR: switch and case should be at the same indent switch (address >> (eeprom->addrbits - 2)) { + case 0: [...] + case 1: [...] + case 2: [...] + case 3: ERROR: return is not a function, parentheses are not required + return (eeprom->eedo); ERROR: switch and case should be at the same indent switch (nwords) { + case 16: + case 64: [...] + case 128: + case 256: [...] + default: Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Cc: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Cc: qemu-trivial@xxxxxxxxxx Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 3e40ba0faf0822fa78336fe6cd9d677ea9b14f1b Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Dec 6 11:16:40 2013 -0700 vfio-pci: Release all MSI-X vectors when disabled We were relying on msix_unset_vector_notifiers() to release all the vectors when we disable MSI-X, but this only happens when MSI-X is still enabled on the device. Perform further cleanup by releasing any remaining vectors listed as in-use after this call. This caused a leak of IRQ routes on hotplug depending on how the guest OS prepared the device for removal. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx commit b3ebc10c373ed5922d4bdb5076fd0e9fd7ff8056 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Dec 6 11:16:29 2013 -0700 vfio-pci: Add debug config options to disable MSI/X KVM support It's sometimes useful to be able to verify interrupts are passing through correctly. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 96eeeba0db38b856eb2cae0e4a2a620d8d65771a Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Dec 6 11:16:23 2013 -0700 vfio-pci: Fix Nvidia MSI ACK through 0x88000 quirk When MSI is enabled on Nvidia GeForce cards the driver seems to acknowledge the interrupt by writing a 0xff byte to the MSI capability ID register using the PCI config space mirror at offset 0x88000 from BAR0. Without this, the device will only fire a single interrupt. VFIO handles the PCI capability ID/next registers as virtual w/o write support, so any write through config space is currently dropped. Add a check for this and allow the write through the BAR window. The registers are read-only anyway. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 5b49ab188ff0339aa3097ce7f5309f1306092f9e Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Dec 6 11:16:13 2013 -0700 vfio-pci: Make use of new KVM-VFIO device Add and remove groups from the KVM virtual VFIO device as we make use of them. This allows KVM to optimize for performance and correctness based on properties of the group. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit bf63839ffa2d0eebb1eb1706022f46e93b6fec08 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Dec 6 11:16:09 2013 -0700 linux-headers: Update from v3.13-rc3 Update to tag v3.13-rc3 (374b105797c3d4f29c685f3be535c35f5689b30e) Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit ac9524dc55dc32e492ac3e6fbc9785be7168f8a2 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Nov 14 15:24:58 2013 +0100 qemu-iotests: filter QEMU monitor \r\n SMTP does not preserve newlines. This is normally not a problem if the email body uses DOS or UNIX newlines consistently. In 051.out we mix UNIX newlines with DOS newlines (since QEMU monitor output uses \r\n). This patch filters the QEMU monitor output so the golden master file uses UNIX newlines exclusively. The result is that patches touching 051.out will apply cleanly without mangling newlines after this commit. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d3fa923044321b2ccc12bbdedd582d2c49d958aa Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Nov 26 16:18:01 2013 +0100 aio: make aio_poll(ctx, true) block with no fds This patch drops a special case where aio_poll(ctx, true) returns false instead of blocking if no file descriptors are waiting on I/O. Now it is possible to block in aio_poll() to wait for aio_notify(). This change eliminates busy waiting. bdrv_drain_all() used to rely on busy waiting to completed throttled I/O requests but this is no longer required so we can simplify aio_poll(). Note that aio_poll() still returns false when aio_notify() was used. In other words, stopping a blocking aio_poll() wait is not considered making progress. Adjust test-aio /aio/bh/callback-delete/one which assumed aio_poll(ctx, true) would immediately return false instead of blocking. Reviewed-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0b06ef3bdd17742ae50c0662d3fe8ed944648890 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Nov 26 16:18:00 2013 +0100 block: clean up bdrv_drain_all() throttling comments Since cc0681c45430a1f1a4c2d06e9499b7775afc9a18 ("block: Enable the new throttling code in the block layer.") bdrv_drain_all() no longer spins. The code used to look as follows: do { busy = qemu_aio_wait(); /* FIXME: We do not have timer support here, so this is effectively * a busy wait. */ QTAILQ_FOREACH(bs, &bdrv_states, list) { while (qemu_co_enter_next(&bs->throttled_reqs)) { busy = true; } } } while (busy); Note that throttle requests are kicked but I/O throttling limits are still in effect. The loop spins until the vm_clock time allows the request to make progress and complete. The new throttling code introduced bdrv_start_throttled_reqs(). This function not only kicks throttled requests but also temporarily disables throttling so requests can run. The outdated FIXME comment can be removed. Also drop the busy = true assignment since we overwrite it immediately afterwards. Reviewed-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ac95acdb8e0876fa489bd31a48e8ecd6ef901d67 Author: Hu Tao <hutao@xxxxxxxxxxxxxx> Date: Thu Dec 5 14:32:34 2013 +0800 qcow2: use start_of_cluster() and offset_into_cluster() everywhere Signed-off-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 405889820bcd5c2abf4eb70598e96f525f862c0f Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:09 2013 +0100 qemu-img: decrease progress update interval on convert when doing very large jobs updating the progress only every 2% is too rare. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 24f833cd43dbfb5f8ae99e8a6d3691671622d3ea Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:07 2013 +0100 qemu-img: round down request length to an aligned sector this patch shortens requests to end at an aligned sector so that the next request starts aligned. [Squashed Peter's fix for bdrv_get_info() failure discussed on the mailing list. --Stefan] Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bcf2b7d2af7c54bb42be1229df9e78ba7d08d2a7 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 2 12:52:04 2013 +0100 pc: switch 2.0 machine types to large seabios binary Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 6eefccc0bb9c34051b1e21880fc3a1c1c8686edd Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 2 13:01:20 2013 +0100 roms: update vgabios binaries This also switches from lgplvgabios to seavgabios. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 385724e7887670e17865d97cd8106a235f113faa Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 2 12:58:45 2013 +0100 roms: update seabios binaries Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 07403a5a0319d1c9783ea7da13782c8835a42cc9 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Oct 15 17:05:55 2013 +0200 roms: enable seabios cross builds Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 94e68caaa089f90f5210435c7e07e97701c98ee5 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Sep 30 11:37:12 2013 +0200 roms: build two seabios binaries Adding xhci support to seabios made it jump over the 128k line. Changing the bios size breaks migration, so we have to keep a 128k seabios binary for old machine types. New machine types can use a large 256k bios which should be big enougth for a while. This patch updates the seabios build process to build seabios twice, once full featured and once with xen and xhci turned off so the resulting binary is small enougth to fit into 128k. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 11938d7863203d5ca523865761cac6130783c858 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Oct 15 17:02:19 2013 +0200 roms: update seabios submodule to 31b8b4eea9d9ad58a73b22a6060d3ac1c419c26d Updates seabios to git master snapshot. seabios is in freeze now, update to final 1.7.4 will follow later this year. Summary of major changes: * Support for acpi table loading from qemu. * Support for the xhci host adapter. * Support for the pvscsi HBA. * Various minor bug fixes. * Lots of cleanups. Full shortlog since 1.7.3 (note that some of these changes have been cherry-picked into 1.7.3-stable): Evgeny Budilovsky (1): Add pvscsi boot support Gerd Hoffmann (27): coreboot: add cbmem console support Add CONFIG_DEBUG_COREBOOT config option apm: fix shutdown ahci: add missing check for allocation failure bochsvga: fallback to stdvga if dispi interface isn't present Add generic qemu detection Drop coreboot qemu detection Add qemu detection to csm uas: add (temporary) superspeed stopgap usb: add usb_update_pipe() usb: add xhci support fix buildversion.sh build: simplify cross builds build: create output dirs in do-kconfig build: explicitly set ROM size Add qemu_cfg_e820 function. Add support for etc/e820 fw_cfg file pci: don't reorder entries when moving to 64bit list pci: don't map usb host adapters above 4G pci: align 64bit pci regions to 1G pci: tweak + comment minimum allocations pci: log pci windows pci: map 64-bit BARs at location provided by emulator ahci: zap real mode macros ahci: remote some parentheses ahci: alloc structs in high memory add hw/serialio.c to SRC32SEG Jonathan A. Kollasch (1): vgahooks: add SM720 VGA BIOS hooks for WIN Enterprises MB-60470 Kevin O'Connor (80): Fix USB EHCI detection that was broken in hlist conversion of PCIDevices. Update README to include info on VARLOW variables. PIC code cleanups. Move internal timer code from clock.c to a new file timer.c. Don't pass khz to pmtimer_setup - it's always PM_TIMER_FREQUENCY. Add helper functions to convert timer irqs to milliseconds. Improve accuracy of internal timers. Rename cpu_khz to TimerKHz. Shift CPU TSC down to reduce need for 64bit variables. Rename check_timer() function (and similar) to irqtimer_check(). Rename check_tsc() (and similar) to timer_check() and use u32. Separate out timer setup code. Unify pmtimer_read() and pittimer_read() code. Default unused UMB areas to be read-only. Add missing mathcp_setup() call to CSM code. Fix bug in CBFS file walking with compressed files. Support custom boot menu prompt and custom boot menu key. Minor cleanups to smm assembler. Add config option to support memory allocations in 9-segment. Minor - no need to declare MaxCountCPUs as VARFSEG. Minor - simplify rom_reserve(). Rename tools/ directory to scripts/ directory. Update kconfig to latest version. build: Don't use vpath makefile directive. Move code centered around specific hardware devices to src/hw/ Move code cenetered around firmware initialization to src/fw/ build: Reorder makefile source list to group like files together. README: Update readme to note scripts/ directory rename and vgasrc/ directory. vgabios: Rename stdvga_bpp_factor to stdvga_vram_ratio. vgabios: Limit the range of the VBE number of "pages" parameter. readme: Minor - fix typo in readme. Split x86 specific functions out of util.c/h to new files x86.c/h. Move keyboard calling code from util.c to boot.c. Rename util.c to string.c and introduce string.h. build: Perform compile checking on vgasrc code. Move stacks.c definitions from util.h to new file stacks.h. Move romfile definitions from util.h to new file romfile.h. Move malloc code from pmm.c to new files malloc.c and malloc.h. Move function definitions for output.c from util.h to new file output.h. Move definition of struct segoff_s from farptr.h to types.h. build: Fix import of gcc dependency files. Move pirtable definitions from hw/pci.h to std/pirtable.h and util.h. Move optionroms.h to std/optionrom.h and util.h. Move vbe.h to std/vbe.h. Move fw/LegacyBios.h to std/LegacyBios.h and remove csm.h. Move fw/smbios.h to std/smbios.h. Move fw/mptable.h to std/mptable.h. Move fw/acpi.h to std/acpi.h. Move pnpbios definition to new file std/pnpbios.h. Move pmm definitions to new file std/pmm.h. Split disk.h into block.h and std/disk.h. Move standard bda type info from biosvar.h to std/bda.h. Merge bmp.h, boot.h, jpeg.h, and post.h into util.h. Sort the sections of util.h. Move PIT setup from clock.c to hw/timer.c. Rename hw/cmos.h to hw/rtc.h and copy RTC code from clock.c to hw/rtc.c. Move dma code to new file hw/dma.c. Remove ioport.h; disperse its contents to other header files. Minor - update file comments in src/malloc.c. Rename fields of 'struct chs_s' and use in floppy lba2chs(). Rearrange stack_hop_back() call in wait_irq, check_irqs, and _farcall16. Minor - move call16 assembler in romlayout.S. Make __call16 use C calling convention and support two passed parameters. Update _farcall16() to pass segment of callregs explicitly. Support call16() calls after entering 32bit mode from call32(). Run ahci code entirely in 32bit mode. Build different final files for QEMU, coreboot, and CSM. Convert op->drive_g from a 16bit pointer to a 32 bit "GLOBALFLAT" pointer. megasas: Don't attempt to access 'struct pci_device' at runtime. Minor - eliminate the SET_GLOBAL macro. Move low-level hardware writing from output.c to new file hw/serialio.c. vgabios: Load the DAC palette in "packed" modes on Cirrus and BochsVGA. vgabios: Support custom fonts in vga framebuffer text writing. vgabios: Add bochsvga "HDTV" resolutions. vgabios: Avoid possible divide by zero in bochsvga_set_displaystart. vgabios: Work around lack of support for "calll" in x86emu emulation. Minor - update file comment on bootsplash.c. vgabios: Support allocating an extra stack for vgabios calls and default on. vgabios: Move initialization code to new file vgainit.c. floppy: Minor - add warnings if timeouts occur. Michael S. Tsirkin (6): acpi: sync FADT flags from PIIX4 to Q35 acpi_extract.py: document DEVICE directives biostables: support looking up RSDP romfile_loader: utility to patch in-memory ROM files acpi: load and link tables through romfile loader acpi: strip compiler info in built-in DSDT if any Paul Menzel (2): ACPI DSDT: Make control method `IQCR` serialized hw/usb-xhci.c: Code refactoring to not override initializers in `speed_from_xhci[16]` Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 33f373d7c56350fd2ec3e31f4f2c46cb49464911 Author: Liu Jinsong <jinsong.liu@xxxxxxxxx> Date: Tue Dec 3 04:17:50 2013 +0800 target-i386: fix cpuid leaf 0x0d Fix cpuid leaf 0x0d which incorrectly parsed eax and ebx. However, before this patch the CPUID worked fine -- the .offset field contained the size _and_ was stored in the register that is supposed to hold the size (eax), and likewise the .size field contained the offset _and_ was stored in the register trhat is supposed to hold the offset (ebx). Signed-off-by: Liu Jinsong <jinsong.liu@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit f2521c9023067a007d18b844fe7639c1c5b6f2ac Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:06 2013 +0100 qemu-img: dynamically adjust iobuffer size during convert since the convert process is basically a sync operation it might be benificial in some case to change the hardcoded I/O buffer size to a greater value. This patch increases the I/O buffer size if the output driver advertises an optimal transfer length or discard alignment that is greater than the default buffer size of 2M. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7572ddc8db114d8c437a97ca3eaedab397f66cda Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:05 2013 +0100 block/iscsi: set bs->bl.opt_transfer_length Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7337acaf219fc988e7ba91780b11770ff95169b4 Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:04 2013 +0100 block: add opt_transfer_length to BlockLimits Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1c0704a556dbb004a3b82791779760f418053951 Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:03 2013 +0100 block/iscsi: set bdi->cluster_size this patch aims to set bdi->cluster_size to the internal page size of the iscsi target so that enabled callers can align requests properly. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 049b09825fe479f4caa013ccde0ff87fc9d82856 Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:02 2013 +0100 qemu-img: fix usage instruction for qemu-img convert Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 13c28af87a5541a9b09a59502b876a1725fb502d Author: Peter Lieven <pl@xxxxxxx> Date: Wed Nov 27 11:07:01 2013 +0100 qemu-img: add support for skipping zeroes in input during convert we currently do not check if a sector is allocated during convert. This means if a sector is unallocated that we allocate a bounce buffer of zeroes, find out its zero later and do not write it in the best case. In the worst case this can lead to reading blocks from a raw device (like iSCSI) altough we could easily know via get_block_status that they are zero and simply skip them. This patch also fixes the progress output not being at 100% after a successful conversion. Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4323fdcf9451deaaf48468afa91b8bcaeac00cff Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 4 17:10:59 2013 +0800 qemu-nbd: add doc for option -f Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f33d287393d58f5513d25b097310ed4706fbf5b5 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 4 17:10:58 2013 +0800 qemu-iotests: add test for snapshot in qemu-img convert Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ef80654d0dc1edf2dd2a51feff8cc3e1102a6583 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 4 17:10:57 2013 +0800 qemu-img: add -l for snapshot in convert Now qemu-img convert have similar options as qemu-nbd for internal snapshot. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 9c468a013fd0b0eb6154f8c5cfd2b1d498a86113 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 4 17:10:56 2013 +0800 qemu-iotests: add 058 internal snapshot export with qemu-nbd case This case can't run when IMGPROTO=nbd, since it needs to create some internal snapshot which would fail for EOF write request, even when TEST_IMG is exported with "-f raw" in common.rc, so set _supported_proto to file. _require_command() is changed to tip what util is missing, instead of printing a blank. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8c116b0e4141400f8d43a7e6dac8ff3adcc8aadd Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 4 17:10:55 2013 +0800 qemu-nbd: support internal snapshot export Now it is possible to directly export an internal snapshot, which can be used to probe the snapshot's contents without qemu-img convert. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7b4c4781e390a041fa0ef70817678f1b97fc6db6 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 4 17:10:54 2013 +0800 snapshot: distinguish id and name in load_tmp Since later this function will be used so improve it. The only caller of it now is qemu-img, and it is not impacted by introduce function bdrv_snapshot_load_tmp_by_id_or_name() that call bdrv_snapshot_load_tmp() twice to keep old search logic. bdrv_snapshot_load_tmp_by_id_or_name() return int to let caller know the errno, and errno will be used later. Also fix a typo in comments of bdrv_snapshot_delete(). Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 34602dd6424c4f1cc414ba672f4f430182b5d9f2 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Dec 4 09:07:03 2013 +0800 qemu-iotests: Split qcow2 only cases in 048 Format "raw" doesn't always work on certain file systems (e.g. tmpfs). Use qcow2 to make the allocation status explicit and split into a new case. [Resolved merge conflict due to "qemu-io> " prompt filter, added 074 to group file, and fixed up s/048/074/ copy-paste mistake. --Stefan] Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 236c796432bed70e442aa617807a528c18b1ebd3 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Dec 4 09:07:02 2013 +0800 qemu-iotests: Clean up spaces in usage output Whitespace changes to align columns. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e14fb91312b27754aa30e78d4bb4ad5cb183b646 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Dec 4 09:07:01 2013 +0800 qemu-iotests: Change default cache mode to "writeback" So that the tests can run faster. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f210a83c1f809516acd9179d02d8c986c5db24cd Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Dec 4 09:07:00 2013 +0800 qemu-iotests: Add _default_cache_mode and _supported_cache_modes This replaces _unsupported_qemu_io_options and check for support of current cache mode, and allow to provide a default if user didn't specify. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 58cc2ae1e3f9f8cd6830a0af116c51c3355710d3 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Dec 4 09:06:59 2013 +0800 qemu-iotests: Honour cache mode in iotests.py This will allow overriding cache mode from the "-c mode" option. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3baa84491a43c6ba4909cbff69a9f045df9f4879 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Dec 4 09:06:58 2013 +0800 qemu-iotests: Add "-c <cache-mode>" option The option sets cache mode used in the tests. "-nocache" is changed to an alias to "-c none", and internally passes "-t none" to qemu-io. Python scripts will make use of option this in the next commit. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f8413b3c23b08a547ce18609acc6fae5fd04ed5c Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Dec 4 11:06:36 2013 +0100 qcow2: Zero-initialise first cluster for new images Strictly speaking, this is only required for has_zero_init() == false, but it's easy enough to just do a cluster-aligned write that is padded with zeros after the header. This fixes that after 'qemu-img create' header extensions are attempted to be parsed that are really just random leftover data. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 66f6b8143ba0fd873a0b4b4b3da41cf604bc5a11 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Dec 3 14:57:52 2013 +0100 block: Close backing file early in bdrv_img_create Leaving the backing file open although it is not needed anymore can cause problems if it is opened through a block driver which allows exclusive access only and if the create function of the block driver used for the top image (the one being created) tries to close and reopen the image file (which will include opening the backing file a second time). In particular, this will happen with a backing file opened through qemu-nbd and using qcow2 as the top image file format (which reopens the image to flush it to disk). In addition, the BlockDriverState in bdrv_img_create() is used for the backing file only; it should therefore be made local to the respective block. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 84f94a9a82487639bc87d5f09f938c9f6a61f79a Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:40:01 2013 +0100 scsi-disk: correctly implement WRITE SAME Fetch the data to be written from the input buffer. If it is all zeroes, we can use the write_zeroes call (possibly with the new MAY_UNMAP flag). Otherwise, do as many write cycles as needed, writing 512k at a time. Strictly speaking, this is still incorrect because a zero cluster should only be written if the MAY_UNMAP flag is set. But this is a bug in qcow2 and the other formats, not in the SCSI code. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 823bd7391c96ba675f20fd6d952d1cb6e1ffb851 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:40:00 2013 +0100 scsi-disk: reject ANCHOR=1 for UNMAP and WRITE SAME commands Since we report ANC_SUP==0 in VPD page B2h, we need to return an error (ILLEGAL REQUEST/INVALID FIELD IN CDB) for all WRITE SAME requests with ANCHOR==1. Inspired by a similar patch to the LIO in-kernel target. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c5fd1fb038405ed13496761970b3b531f747a892 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:59 2013 +0100 scsi-disk: catch write protection errors in UNMAP This is the same that is already done for WRITE SAME. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e18d90c15bab0d47d8f30696058abfb78396081f Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:58 2013 +0100 qemu-iotests: 033 is fast Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 97a2ae34537882df34810d538ab1f51085499d2c Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:57 2013 +0100 raw-posix: add support for write_zeroes on XFS and block devices The code is similar to the implementation of discard and write_zeroes with UNMAP. However, failure must be propagated up to block.c. The stale page cache problem can be reproduced as follows: # modprobe scsi-debug lbpws=1 lbprz=1 # ./qemu-io /dev/sdXX qemu-io> write -P 0xcc 0 2M qemu-io> write -z 0 1M qemu-io> read -P 0x00 0 512 Pattern verification failed at offset 0, 512 bytes qemu-io> read -v 0 512 00000000: cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc ................ ... # ./qemu-io --cache=none /dev/sdXX qemu-io> write -P 0xcc 0 2M qemu-io> write -z 0 1M qemu-io> read -P 0x00 0 512 qemu-io> read -v 0 512 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ ... And similarly with discard instead of "write -z". Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d0b4503ed2d8713791c38839341b023f78d1a3d9 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:56 2013 +0100 raw-posix: implement write_zeroes with MAY_UNMAP for block devices See the next commit for the description of the Linux kernel problem that is worked around in raw_open_common. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 260a82e524b7f86c12b8e39d4c3f208af95645f7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:55 2013 +0100 raw-posix: implement write_zeroes with MAY_UNMAP for files Writing zeroes to a file can be done by punching a hole if MAY_UNMAP is set. Note that in this case ENOTSUP is not ignored, but makes the block layer fall back to the generic implementation. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit fa6252b0565526ec2347e248172f91771e0d9f47 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:54 2013 +0100 block/iscsi: check WRITE SAME support differently depending on MAY_UNMAP The current check is right for MAY_UNMAP=1. For MAY_UNMAP=0, just try and fall back to regular writes as soon as a WRITE SAME command fails. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2af8a1a704a352bab2e9eaf803db0b3552e826d0 Author: Peter Lieven <pl@xxxxxxx> Date: Fri Nov 22 13:39:53 2013 +0100 block/iscsi: updated copyright added myself to reflect recent work on the iscsi block driver. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4b52498e62d02a30f780875f54431d1bad0bcabd Author: Peter Lieven <pl@xxxxxxx> Date: Fri Nov 22 13:39:52 2013 +0100 block/iscsi: remove .bdrv_has_zero_init since commit 3ac21627 the default value changed to 0. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit cffb1ec600de83f693a23578fc2f344c1af9b96f Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:51 2013 +0100 block drivers: expose requirement for write same alignment from formats This will let misaligned but large requests use zero clusters. This is important because the cluster size is not guest visible. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 95de6d7078b029b73708059a17cef20f332adcb7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:50 2013 +0100 block drivers: add discard/write_zeroes properties to bdrv_get_info implementation Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 97b00e285119e611f500686f32f9bccffbb9126a Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:49 2013 +0100 vpc, vhdx: add get_info Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b8d71c09f31a9cae248d167dddc75c66d5135ff2 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:48 2013 +0100 block: make bdrv_co_do_write_zeroes stricter in producing aligned requests Right now, bdrv_co_do_write_zeroes will only try to align the beginning of the request. However, it is simpler for many formats to expect the block layer to separate both the head *and* the tail. This makes sure that the format's bdrv_co_write_zeroes function will be called with aligned sector_num and nb_sectors for the bulk of the request. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7ce21016b69b512bf4777965a4292318f2bc7544 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:47 2013 +0100 block: handle ENOTSUP from discard in generic code Similar to write_zeroes, let the generic code receive a ENOTSUP for discard operations. Since bdrv_discard has advisory semantics, we can just swallow the error. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d5ef94d43da8c57a2d597efbdec3d9a54d97fdf7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:46 2013 +0100 block: add bdrv_aio_write_zeroes This will be used by the SCSI layer. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 94d6ff21f48c8c98e6e9eef58cc6f6346c9dd851 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:45 2013 +0100 block: add flags argument to bdrv_co_write_zeroes tracepoint Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d20d9b7c6723d0123b7d60dd5557aa0a6599f471 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:44 2013 +0100 block: add flags to BlockRequest This lets bdrv_co_do_rw receive flags, so that it can be used for zero writes. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d51e9fe505f7c7b97762100dd0e42cef43c90524 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Nov 22 13:39:43 2013 +0100 block: generalize BlockLimits handling to cover bdrv_aio_discard too bdrv_co_discard is only covering drivers which have a .bdrv_co_discard() implementation, but not those with .bdrv_aio_discard(). Not very nice, and easy to avoid. Suggested-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e9eecb5bf82a71564bf018fcbbfc6cda19cab6c2 Author: Paul Moore <pmoore@xxxxxxxxxx> Date: Thu Nov 21 10:40:15 2013 -0500 seccomp: add kill() to the syscall whitelist The kill() syscall is triggered with the following command: # qemu -sandbox on -monitor stdio \ -device intel-hda -device hda-duplex -vnc :0 The resulting syslog/audit message: # ausearch -m SECCOMP ---- time->Wed Nov 20 09:52:08 2013 type=SECCOMP msg=audit(1384912328.482:6656): auid=0 uid=0 gid=0 ses=854 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 pid=12087 comm="qemu-kvm" sig=31 syscall=62 compat=0 ip=0x7f7a1d2abc67 code=0x0 # scmp_sys_resolver 62 kill Reported-by: CongLi <coli@xxxxxxxxxx> Tested-by: CongLi <coli@xxxxxxxxxx> Signed-off-by: Paul Moore <pmoore@xxxxxxxxxx> Acked-by: Eduardo Otubo <otubo@xxxxxxxxxxxxxxxxxx> commit af057fe74092df2e7a576448ddbdc0daac1370bf Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Dec 3 10:41:05 2013 +0800 vmdk: Fix creating big description file The buffer for description file was 4096 which only covers a few hundred of extents. This changes the buffer to dynamic allocated with g_strdup_printf in order to support bigger cases. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a6b6d08a3bf93c8cc6521336a89ac0467ab7edca Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Mon Dec 2 21:17:19 2013 +0400 hw/ppc/mac.h: remove unused BIOS_FILENAME definition This definition has been moved to prep.c. Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 4282c8277013dc5613b8f27845f6121b66b7cbff Author: Don Koch <dkoch@xxxxxxxxxxx> Date: Tue Nov 19 15:01:59 2013 -0500 Don't crash on keyboard input with no handler Prevent a call to put_kbd if null. On shutdown of some OSes, the keyboard handler goes away before the system is down. If a key is typed during this window, qemu crashes. Signed-off-by: Don Koch <dkoch@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit efbc42e5848bb8000bfa6927847f1870850942ba Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 17 22:12:18 2013 +0100 libcacard/vcard_emul_nss: Remove unused statement (value stored is never read) Warning from ccc-analyzer: libcacard/vcard_emul_nss.c:937:9: warning: Value stored to 'cert_count' is never read cert_count = options->vreader[i].cert_count; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 754e72e195faca8042072ada054bc3668aa1647d Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 17 22:11:23 2013 +0100 libcacard/cac: Remove unused statement (value stored is never read) Warning from ccc-analyzer: libcacard/cac.c:192:13: warning: Value stored to 'ret' is never read ret = VCARD_DONE; ^ ~~~~~~~~~~ Here 'ret' is assigned a value inside of a switch statement and also after that switch statement. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit cb77e358152afb348a513d8eb404cb7ff65cfad2 Author: Zhi Yong Wu <wuzhy@xxxxxxxxxxxxxxxxxx> Date: Wed Nov 27 15:35:26 2013 +0800 virtio-net: fix the indent Signed-off-by: Zhi Yong Wu <wuzhy@xxxxxxxxxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 1246b259f846136d58a89568fdc0421d02e4df65 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Dec 1 08:49:47 2013 +0100 misc: Replace 'struct QEMUTimer' by 'QEMUTimer' Most code already used QEMUTimer without the redundant 'struct' keyword. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 47908a0f66c5369a94e93d951a5d0c28d007ff80 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 17 19:00:42 2013 +0100 qobject: Fix compiler warning (missing gnu_printf format attribute) gcc 4.8.2 reports this warning when extra warnings are enabled (-Wextra): CC qobject/qerror.o qobject/qerror.c: In function â??qerror_from_infoâ??: qobject/qerror.c:53:5: error: function might be possible candidate for â??gnu_printfâ?? format attribute [-Werror=suggest-attribute=format] qerr->err_msg = g_strdup_vprintf(fmt, *va); ^ Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 867d898ccf50ef095b95c403d7dc809c188b14e2 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 17 19:00:22 2013 +0100 acpi-build: Fix compiler warning (missing gnu_printf format attribute) gcc 4.8.2 reports this warning when extra warnings are enabled (-Wextra): CC m68k-softmmu/hw/m68k/mcf5206.o hw/i386/acpi-build.c: In function â??build_append_namesegâ??: hw/i386/acpi-build.c:294:5: error: function might be possible candidate for â??gnu_printfâ?? format attribute [-Werror=suggest-attribute=format] g_string_vprintf(s, format, args); ^ When this warning is fixed, there is a new compiler warning: CC i386-softmmu/hw/i386/acpi-build.o hw/i386/acpi-build.c: In function â??build_append_notifyâ??: hw/i386/acpi-build.c:632:5: error: format not a string literal and no format arguments [-Werror=format-security] build_append_nameseg(method, name); ^ This is fixed here, too. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit b2e2395f1308f784acd2e0af0d6f2a6f5668aafb Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Nov 22 14:39:56 2013 +0800 .gitignore: Ignore config.status Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ef0dd982cb7dbff3ea234fe48187d556e69d6765 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 10 16:24:02 2013 +0100 gtk: Replace conditional debug messages by trace methods Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 5d28b0e960cd3a99f7e013900a0e12468720b402 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 10 16:04:16 2013 +0100 console: Replace conditional debug messages by trace methods Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 12269616227c2ee34f4c853cae676e18a5e01b18 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 10 14:20:17 2013 +0100 trace: Remove trace.h from hw/usb/hcd-ehci.h (less dependencies) This reduces the dependencies on trace.h. Only one source file which needs hcd-ehci.h also needs trace.h. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ac86048bcd41129b18702ba63395f222871804de Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 10 14:20:16 2013 +0100 trace: Remove trace.h from console.h (less dependencies) This reduces the dependencies on trace.h. Only two source files which need console.h also need trace.h. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 7b6b145dbc62162df818dc2c5153defd0417c688 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Sun Dec 1 22:23:47 2013 +0100 coroutine: remove unused CoQueue AioContext The AioContext ctx field is apparently unused in qemu codebase since 02ffb504485. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f287c41381efe172ff5dc62498e2afc83a9ab995 Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Sun Dec 1 22:23:34 2013 +0100 coroutine: remove qemu_co_queue_wait_insert_head qemu_co_queue_wait_insert_head() is unused in qemu code base now. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1442d3e6912d7ec88480099503cfa0aeaedf5634 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Oct 15 16:57:45 2013 +0200 add firmware to machine options This patch adds firmware to the machine options. -bios <file> becomes a shortcut for -machine firmware=<file>. Advantage is that the firmware can be specified via config file as -machine is parsed using QemuOpts and it is also possible to use different defaults for different machine types (via QEMUMachine->default_machine_opts). Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit aeca6e8d8b7dba78c3d1622463e238b773d9df13 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Dec 2 12:47:29 2013 +0100 add pc-{i440fx,q35}-2.0 machine types Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 539891a85d17bd8c23a2547e52e26993350d2c3a Author: Paul Durrant <paul.durrant@xxxxxxxxxx> Date: Wed Nov 13 15:25:07 2013 +0000 xen-pvdevice: make device-id property compulsory The intention of the Xen PV device is that it is used as a parent device for PV drivers in Xen HVM guests and the set of PV drivers that bind to the device is determined by its device ID (and possibly vendor ID and revision). As such, the device should not have a default device ID, it should always be supplied by the Xen toolstack. Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit d18e173a07a9c1e7f087384a8832d295043136bb Author: Wei Liu <wei.liu2@xxxxxxxxxx> Date: Mon Oct 14 13:53:53 2013 +0100 xen: fix two errors when debug is enabled This patch fixes: 1. build error in xen_pt.c when XEN_PT_LOGGING_ENABLED is defined 2. debug output format string error when DEBUG_XEN is defined In the second case I also have the output info in consistent with the output in mapping function - that is, print start_addr instead of phys_offset. Signed-off-by: Sander Eikelenboom <linux@xxxxxxxxxxxxxx> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 0b959cf5e4cce08ed96bd7832447e1543cd3622f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Oct 15 15:00:36 2013 -0700 linux-user: Use qemu_getauxval for AT_EXECFD Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 664d2c4458a268eb176a223c397453a72ed167f4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Jun 10 09:05:09 2013 -0700 util: Use qemu_getauxval in linux qemu_cache_utils_init With this we no longer pass down envp, and thus all systems can have the same void prototype. So also eliminate a useless thunk. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c9baa30f42a87f61627391698f63fa4d1566d9d8 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Jun 7 07:43:33 2013 -0700 tcg-s390: Use qemu_getauxval in query_facilities No need to set up a SIGILL signal handler for detection anymore. Remove a ton of sanity checks that must be true, given that we're requiring a 64-bit build (the note about 31-bit KVM is satisfied by configuring with TCI). Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 41d9ea80ac8455845494c889fe6ac447b39a7d64 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Jun 7 07:26:20 2013 -0700 tcg-arm: Use qemu_getauxval Allow host detection on linux systems without glibc 2.16 or later. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit cd629de1cf013e9654c6f0b92b2329f04dfaf880 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Jun 4 11:37:17 2013 -0700 tcg-ppc64: Use qemu_getauxval Allow host detection on linux systems without glibc 2.16 or later. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b6a3e690b4f396633c75e18a9c3e7b6771fb71ba Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Jun 4 11:24:49 2013 -0700 osdep: Create qemu_getauxval and qemu_init_auxval Abstract away dependence on a system implementation of getauxval. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 981cbf59b5360647e908186e7306ee9013a58c88 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Nov 28 09:48:04 2013 +0800 qemu-iotests: Add sample image and test for VMDK version 3 Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 509d39aa22909c0ed1aabf896865f19c81fb38a1 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Nov 28 09:48:03 2013 +0800 vmdk: Allow read only open of VMDK version 3 Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c34b8012e877f494c7be5abdfb67b51242a6935e Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Nov 18 15:13:01 2013 +0800 qemu-iotests: Filter out 'qemu-io> ' prompt This removes "qemu-io> " prompt from qemu-io output in _filter_qemu_io, and updates all the output files with the following command: cd tests/qemu-iotests && sed -i "s/qemu-io> //g" *.out Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 0d83c98bf15269e80e3558dc2c7b27e2f4386158 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Nov 18 15:10:58 2013 +0800 qemu-iotests: Filter qemu-io output in 025 Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c9fbb99d41b05acf0d7b93deb2fcdbf9047c238e Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Nov 28 11:58:02 2013 +0100 block: Use BDRV_O_NO_BACKING where appropriate If you open an image temporarily just because you want to check its size or get it flushed, there's no real reason to open the whole backing file chain. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> commit f32f988c7778d0f1ff9c7e8d7547a354a7fdd3f6 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Nov 15 17:00:41 2013 +0100 qemu-iotests: Test snapshot mode Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 9fd3171af9d7de2777bf38ce79c2fe3dd6f9a49e Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Nov 14 15:37:12 2013 +0100 block: Enable BDRV_O_SNAPSHOT with driver-specific options In the case of snapshot=on, don't rely on the backing file path in the temporary image any more, but override the backing file with the given set of options. This way, block drivers that don't use a file name can be accessed with snapshot=on, for example: -drive file.driver=nbd,file.host=localhost,snapshot=on Which becomes internally something like: file.filename=/tmp/vl.AWQZCu,backing.file.driver=nbd,backing.file.host=localhost Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b59b3d57737a0d40450f8232abd89e8986387402 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 20 10:01:56 2013 +0800 qemu-iotests: Make test case 030, 040 and 055 deterministic Pause the drive and start the block job, so we won't miss the block job. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3cf53c771406ad360117f30e61b24635df0e9b50 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 20 10:01:55 2013 +0800 qemu-iotest: Add pause_drive and resume_drive methods They wrap blkdebug "break" and "remove_break". Add optional argument "resume" to cancel_and_wait(). Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4cc70e933731ebf4309e1f1ce90973a0de04f28f Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 20 10:01:54 2013 +0800 blkdebug: add "remove_break" command This adds "remove_break" command which is the reverse of blkdebug command "break": it removes all breakpoints with given tag and resumes all the requests. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5b43dbb699599cdb9f75a624cb28d4f709ad2cdf Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 20 10:01:53 2013 +0800 qemu-iotests: Drop local version of cancel_and_wait from 040 iotests.py already has one. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b3af018f3babfe7a0328759a86c00a6a6b4f6443 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Thu Nov 7 22:56:38 2013 +0800 sheepdog: support user-defined redundancy option Sheepdog support two kinds of redundancy, full replication and erasure coding. # create a fully replicated vdi with x copies -o redundancy=x (1 <= x <= SD_MAX_COPIES) # create a erasure coded vdi with x data strips and y parity strips -o redundancy=x:y (x must be one of {2,4,8,16} and 1 <= y < SD_EC_MAX_STRIP) E.g, to convert a vdi into sheepdog vdi 'test' with 8:3 erasure coding scheme $ qemu-img convert -o redundancy=8:3 linux-0.2.img sheepdog:test Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c31d482f29ffe4ba54065acfb2f31c3f4ce586b7 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Thu Nov 7 22:56:37 2013 +0800 sheepdog: refactor do_sd_create() We can actually use BDRVSheepdogState *s to pass most of the parameters. Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4d5977eaecd3675c1176274a50f74ebc40dd13ec Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Nov 20 13:09:21 2013 +0100 qdict: Optimise qdict_do_flatten() Nested QDicts used to be both entered recursively in order to move their entries to the target QDict and also be moved themselves to the target QDict like all other objects. This is harmless because for the top level, qdict_do_flatten() will encounter the (now empty) QDict for a second time and then delete it, but at the same time it's obviously unnecessary overhead. Just delete nested QDicts directly after moving all of their entries. Reported-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6273d1136af913aaf4badc4545ccf942557c747b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Nov 20 13:09:20 2013 +0100 qdict: Fix memory leak in qdict_do_flatten() Reported-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit dce32b6c2bfd5132c433638352eea6f7707caf9c Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Wed Nov 20 15:51:59 2013 +0800 MAINTAINERS: add sheepdog development mailing list This will help people find mailing list relevant to sheepdog. Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 091b1108ca6d6e3bfaea5f095f219bf5ea8c316b Author: Charlie Shepherd <charlie@xxxxxxxxxxxxxx> Date: Fri Nov 15 19:47:02 2013 +0100 COW: Extend checking allocated bits to beyond one sector cow_co_is_allocated() only checks one sector's worth of allocated bits before returning. This is allowed but (slightly) inefficient, so extend it to check all of the file's metadata sectors. Signed-off-by: Charlie Shepherd <charlie@xxxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> [kwolf: silenced compiler warning (-Wmaybe-uninitialized for changed)] Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 14b98fdaf3422fef19718033be9eca7e0b776a26 Author: Charlie Shepherd <charlie@xxxxxxxxxxxxxx> Date: Fri Nov 15 19:47:01 2013 +0100 COW: Speed up writes Process a whole sector's worth of COW bits by reading a sector, setting the bits after skipping any already set bits, then writing it out again. Make sure we only flush once before writing metadata, and only if we need to write metadata. Signed-off-by: Charlie Shepherd <charlie@xxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 21b568350861a2c6eedfef95b70f88faf2fbd32a Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 13 18:29:44 2013 +0800 qapi: Change BlockDirtyInfo to list We have multiple dirty bitmaps in BDS now, switch QAPI to allow query it (BlockInfo.dirty_bitmaps), and also drop old BlockInfo.dirty. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e4654d2d9406016d6e4e296ba8db3d118caf9ff6 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 13 18:29:43 2013 +0800 block: per caller dirty bitmap Previously a BlockDriverState has only one dirty bitmap, so only one caller (e.g. a block job) can keep track of writing. This changes the dirty bitmap to a list and creates a BdrvDirtyBitmap for each caller, the lifecycle is managed with these new functions: bdrv_create_dirty_bitmap bdrv_release_dirty_bitmap Where BdrvDirtyBitmap is a linked list wrapper structure of HBitmap. In place of bdrv_set_dirty_tracking, a BdrvDirtyBitmap pointer argument is added to these functions, since each caller has its own dirty bitmap: bdrv_get_dirty bdrv_dirty_iter_init bdrv_get_dirty_count bdrv_set_dirty and bdrv_reset_dirty prototypes are unchanged but will internally walk the list of all dirty bitmaps and set them one by one. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a29267846a52b4ca294ba3a962b74b67df7ce6d2 Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Wed Oct 30 14:46:32 2013 +0100 linux-user: pass correct parameter to do_shmctl() Fix shmctl issue by passing correct parameter buf to do_shmctl(). Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 55a2b1631fb343edac4a2d4596c72e58ee1372b3 Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Wed Oct 30 14:46:31 2013 +0100 linux-user: create target_structs header to place ipc_perm and shmid_ds Creating target_structs header in linux-user/$arch/ and making target_ipc_perm and target_shmid_ds its first inhabitants. The struct defintions may/should be further fine-tuned by arch maintainers. Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 9721cf2cd6ecfc50d2ab1349e27b53c4bc36df54 Author: Corey J. Boyle <corey@xxxxxxxxxxxxx> Date: Sat Oct 5 07:46:31 2013 -0400 flatload: fix non-GOT relocations Use target address rather than host address when performing non-GOT relocations Signed-off-by: Corey J. Boyle <corey@xxxxxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit f4f1e10a58cb5ec7806d47d20671e668a52c3e70 Author: Erik de Castro Lopo <erikd@xxxxxxxxxxxxx> Date: Fri Nov 29 18:39:23 2013 +1100 linux-user: Implement handling of 5 POSIX timer syscalls. Implement timer_create, timer_settime, timer_gettime, timer_getoverrun and timer_delete. Signed-off-by: Erik de Castro Lopo <erikd@xxxxxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 905bba13ca292cb8c83fe5ccdf8a95bd04168bb1 Author: Erik de Castro Lopo <erikd@xxxxxxxxxxxxx> Date: Fri Nov 29 18:39:22 2013 +1100 linux-user: Add target struct defs needed for POSIX timer syscalls. Signed-off-by: Erik de Castro Lopo <erikd@xxxxxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 0b1fa34e1dd2764ee7ae2be849e1c5ba5e8724ca Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 20 07:33:28 2013 +0100 usb: move usb_{hi,lo} helpers to header file. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 2b81ba53887e6f3b5a79ecd2f446f849ed89561f Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Nov 19 12:37:58 2013 +0100 usb: add vendor request defines Add defines for vendor specific usb control requests. Group defines by Device / Interface / Endpoint while being at it. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 904c063039f5923a07ce35fc40ed78ec6f7dee1a Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Mon Nov 25 13:08:18 2013 +0100 trace-events: Clean up after removal of old usb-host code Commit b5613fd neglected to drop the trace events along with the code. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 690af06aebdfd043a6222de96a535dcba2144caf Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 20 14:32:27 2013 +0100 Revert "usb-tablet: Don't claim wakeup capability for USB-2 version" This reverts commit aa1c9e971e80d25b92908dce3dec7c38b49480ea. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e489df40caa96d895d9672d77f536f23c9e42f94 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Nov 20 14:10:19 2013 +0100 ehci: implement port wakeup Update portsc register and raise irq in case a suspended port is woken up, so remote wakeup works on our ehci ports. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f4a193e717e6b5179a2e57423bfe110b724662d8 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Nov 13 20:37:58 2013 +0100 block/stream: Don't stream unbacked devices If a block device is unbacked, a streaming blockjob should immediately finish instead of beginning to try to stream, then noticing the backing file does not contain even the first sector (since it does not exist) and then finishing normally. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8582972227196c289bb3b28086b3b2d01071d958 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Wed Aug 7 16:59:53 2013 +0800 sheepdog: implement .bdrv_get_allocated_file_size With this patch, qemu-img info sheepdog:image will show disk size for sheepdog images. Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Cc: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f8d1daea6f3ccd7450c2177ffb8903f0202711ee Author: Charlie Shepherd <charlie@xxxxxxxxxxxxxx> Date: Thu Aug 8 03:23:14 2013 +0100 Test coroutine execution order This patch adds a test for coroutine execution order in test-coroutine - this catches a bug in the CPC coroutine implementation. Signed-off-by: Charlie Shepherd <charlie@xxxxxxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b276d2499428795629eee8ee93ba1ea100bb1bc9 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Nov 7 20:10:29 2013 +0100 util/error: Save errno from clobbering There may be calls to error_setg() and especially error_setg_errno() which blindly (and until now wrongly) assume these functions not to clobber errno (e.g., they pass errno to error_setg_errno() and return -errno afterwards). Instead of trying to find and fix all of these constructs, just make sure error_setg() and error_setg_errno() indeed do not clobber errno. Suggested-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5a37b60a61c4c334e3b194758871f41494317d42 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:07:06 2013 +0200 qemu-img: conditionally zero out target on convert If the target has_zero_init = 0, but supports efficiently writing zeroes by unmapping we call bdrv_make_zero to avoid fully allocating the target. This currently works only for iscsi. It can be extended to raw with BLKDISCARDZEROES for example. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 11b6699af59b8684128debacfc7c44cbaa6ac53b Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:07:05 2013 +0200 qemu-img: add support for fully allocated images Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c3d8688470a33feb0ea78c006b4399d50c13185e Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:07:04 2013 +0200 block/get_block_status: fix BDRV_BLOCK_ZERO for unallocated blocks this patch does 2 things: a) only do additional call outs if BDRV_BLOCK_ZERO is not already set. b) use the newly introduced bdrv_unallocated_blocks_are_zero() to return the zero state of an unallocated block. the used callout to bdrv_has_zero_init() is only valid right after bdrv_create. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d75cbb5e68f5a7d64248ba89399a7f2073231de5 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:07:03 2013 +0200 block: introduce bdrv_make_zero this patch adds a call to completely zero out a block device. the operation is sped up by checking the block status and only writing zeroes to the device if they currently do not return zeroes. optionally the zero writing can be sped up by setting the flag BDRV_REQ_MAY_UNMAP to emulate the zero write by unmapping if the driver supports it. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d4cd961507e6f013fd0f9b1dc609f15ed2aaa40d Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:07:02 2013 +0200 iscsi: add bdrv_co_write_zeroes Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 01a6a238a30b0381846e3e68ba06e232567a7026 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:07:01 2013 +0200 iscsi: simplify iscsi_co_discard now that bdrv_co_discard can handle limits we do not need the request split logic here anymore. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ba6c59191f245147e7ee0c2b9ecaf5fb116f7877 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:07:00 2013 +0200 iscsi: set limits in BlockDriverState Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6f14da5247076bde1e00444f6d5b2b7ca8075a09 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:59 2013 +0200 block: honour BlockLimits in bdrv_co_discard Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c31cb70728d2c0c8900b35a66784baa446fd5147 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:58 2013 +0200 block: honour BlockLimits in bdrv_co_do_write_zeroes Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 04f19e4d2da4325297c99e94f20b0aca52546209 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:57 2013 +0200 block/raw: copy BlockLimits on raw_open Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit fe81c2cca6dc69a5e423f6d8b235606b7f3ca7b7 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:56 2013 +0200 block: add BlockLimits structure to BlockDriverState this patch adds BlockLimits which introduces discard and write_zeroes limits and alignment information to the BlockDriverState. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 186d4f2b1deaae5c404798959bfbdb781e762045 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:55 2013 +0200 block/iscsi: add .bdrv_get_info Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4ce786914b745a144a9eda1ea33f3ff98328c527 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:54 2013 +0200 block: add wrappers for logical block provisioning information This adds 2 wrappers to read the unallocated_blocks_are_zero and can_write_zeroes_with_unmap info from the BDI. The wrappers are required to check for the existence of a backing_hd and if the devices are opened with the correct flags. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e1a5c4bed44bc23f69f53883c657e31e150cab30 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:53 2013 +0200 block: add logical block provisioning info to BlockDriverInfo Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d32f35cbc5a87af5e1100dd55074a79fc2cb5307 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:52 2013 +0200 block: introduce BDRV_REQ_MAY_UNMAP request flag Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit aa7bfbfff792538a9eeefe879fc4c629aa0b4203 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:51 2013 +0200 block: add flags to bdrv_*_write_zeroes Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6faac15fa80c4c1f813d96afc13bceaa3bc5ffe7 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 12:06:50 2013 +0200 block: make BdrvRequestFlags public Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7dc65c02fe3fb8f3146ce0b9ff5fec5945329f0e Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 27 14:02:45 2013 -0800 Open 2.0 development tree Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0e7b9f06a6cc032be6ca2ac55a27592abd374179 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 27 11:30:46 2013 -0800 Update version for 1.7.0 release Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 171d64319c9604228429b0580edf764a69b67c75 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Nov 25 20:28:56 2013 +0100 qemu-iotests: Fix test 041 Performing multiple drive-mirror blockjobs on the same qemu instance results in the image file used for the block device being replaced by the newly mirrored file, which is not what we want. Fix this by performing one dedicated test per sync mode. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Message-id: 1385407736-13941-3-git-send-email-mreitz@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 117e0c82881f05d88902d4059a3171bc6cd02df0 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Nov 25 20:28:55 2013 +0100 block/drive-mirror: Reuse backing HD for sync=none For "none" sync mode in "absolute-paths" mode, the current image should be used as the backing file for the newly created image. The current behavior is: a) If the image to be mirrored has a backing file, use that (which is wrong, since the operations recorded by "none" are applied to the image itself, not to its backing file). b) If the image to be mirrored lacks a backing file, the target doesn't have one either (which is not really wrong, but not really right, either; "none" records a set of operations executed on the image file, therefore having no backing file to apply these operations on seems rather pointless). For a, this is clearly a bugfix. For b, it is still a bugfix, although it might break existing API - but since that case crashed qemu just three weeks ago (before 1452686495922b81d6cf43edf025c1aef15965c0), we can safely assume there is no such API relying on that case yet. Suggested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Message-id: 1385407736-13941-2-git-send-email-mreitz@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 72391da50621c9f11bb8c57193ab2d1ad8bc5ad8 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Nov 19 14:36:58 2013 +0100 xhci: Call usb_device_alloc/free_streams Note this code is not as KISS as I would like, the reason for this is that the Linux kernel interface wants streams on eps belonging to one interface to be allocated in one call. Things will also work if we do this one ep at a time (as long as all eps support the same amount of streams), but lets stick to the kernel API. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 3b444eadf7726d976be4ac89e8e742cb7eb7a5ee Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Nov 19 14:36:57 2013 +0100 usb: Add usb_device_alloc/free_streams Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 04b300f85fafd2d6a92ec0a766f0035e9bc5835c Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Nov 19 14:36:56 2013 +0100 usb: Add max_streams attribute to endpoint info Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5007c940a9c96ad974573915192424ba00b49932 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Nov 19 14:37:04 2013 +0100 uas: s/ui/iu/ The various uas data structures are called IU-s, which is short for Information Unit, rather then UI-s. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 49cfa2fdc92be2cdd01b9fba846cd52aea1f7f63 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Thu Oct 31 10:35:31 2013 +0100 uas: Fix response iu struct definition This patch mirrors a patch to the Linux uas kernel driver which I've just submitted. It looks like the qemu uas struct definitions were taken from the Linux kernel driver, and have inherited the same mistake. Besides fixing the response iu struct, the patch also drops the add_info parameter from the usb_uas_queue_response() function, it is always 0 anyways, and expressing 3 zero-bytes as a function argument is a bit hard. Below is the long explanation for this change taken from the kernel commit: The response iu struct before this patch has a size of 7 bytes, which is weird since all other iu-s are explictly padded to a multiple of 4 bytes. Submitting a 7 byte bulk transfer to the status endpoint of a real uasp device when expecting a response iu results in an USB babble error, as the device actually sends 8 bytes. Up on closer reading of the UAS spec: http://www.t10.org/cgi-bin/ac.pl?t=f&f=uas2r00.pdf The reason for this becomes clear, the 2 entries in "Table 17 â?? RESPONSE IU" are numbered 4 and 6, looking at other iu definitions in the spec, esp. multi-byte fields, this indicates that the ADDITIONAL RESPONSE INFORMATION field is not a 2 byte field as one might assume at a first look, but is a multi-byte field containing 3 bytes. This also aligns with the SCSI Architecture Model 4 spec, which UAS is based on which states in paragraph "7.1 Task management function procedure calls" that the "Additional Response Information" output argument for a Task management function procedure call is 3 bytes. Last but not least I've verified this by sending a logical unit reset task management call with an invalid lun to an actual uasp device, and received back a response-iu with byte 6 being 0, and byte 7 being 9, which is the responce code for an invalid iu, which confirms that the response code is being reported in byte 7 of the response iu rather then in byte 6. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 3453f9a0dfa58578e6dadf0905ff4528b428ec73 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Thu Oct 24 18:15:53 2013 +0100 uas: Bounds check tags when using streams Disallow the guest to cause us to address the data3 and status3 arrays out of bounds. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 0478661ec5f949f16a70687b348c0fb2a56cc537 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Thu Oct 24 18:15:52 2013 +0100 uas: Streams are numbered 1-y, rather then 0-x It is easier to simply make the arrays one larger, rather then substracting one everywhere. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5eb6d9e3ef1fac096ab5b3f5c14e1f4079dd7367 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Thu Oct 24 18:15:51 2013 +0100 uas: Fix / cleanup usb_uas_task error handling -The correct error if we cannot find the dev is INCORRECT_LUN rather then INVALID_INFO_UNIT -Move the device not found check to the top so we only need to do it once -Remove the dev->lun != lun checks, dev is returned by scsi_device_find which searches by lun, so this will never trigger Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit d4bfc7b9f35da7dcc28ae87de503b28bd7ff56ee Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Thu Oct 24 18:15:50 2013 +0100 uas: Only use report iu-s for task_mgmt status reporting Regular scsi cmds should always report their status using a sense-iu, using the sense code to report any errors. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 9ec557bd53031fb50cc0cd426a2d529624d3d515 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Thu Oct 24 18:15:49 2013 +0100 scsi: Add 2 new sense codes needed by uas Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f1f8bc218a422081f36f0b325b3de5e6a5078b74 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Nov 8 11:43:20 2013 +0100 xhci: add support for suspend/resume The OS can ask the xhci controller to save and restore its internal state, which is used by the OS when the system is suspended and resumed. This patch handles writes to the save + restore bits in the command register. Only thing it does is updating the restore error bit in the status register to signal an error on restore. The guest OS should do a full reinitialization after resume then. This is the minimal patch which gets S3 going with xhci. Implementing full save/restore support is TBD. https://bugzilla.redhat.com/show_bug.cgi?id=1012365 Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit de9de157fbb9aa66380ab1973dd6ecf12fbd8b25 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Nov 19 14:36:59 2013 +0100 xhci: Add a few missing checks for disconnected devices One of the reworks of qemu's usb core made changes to usb-port's disconnect handling. Now ports with a device will always have a non 0 dev member, but if the device is not attached (which is possible with usb redirection), dev->attached will be 0. So supplement all checks for dev to also check dev->attached, and add an extra check in a path where a device check was completely missing. This fixes various crashes (asserts triggering) I've been seeing when xhci attached usb devices get disconnected at the wrong time. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 7457fe9541b5162f285454947448d553a5d5a531 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Nov 25 20:37:12 2013 -0800 Update version for v1.7.0-rc2 release commit 032ac6f8bfb68746cb0eea407b1cd2b22a78898f Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Nov 22 15:35:03 2013 +0100 curses: fixup SIGWINCH handler mess Don't run code in the signal handler, only set a flag. Use sigaction(2) to avoid non-portable signal(2) semantics. Make #ifdefs less messy. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Message-id: 1385130903-20531-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 16f4e8fa737b58b7b0461b33581e43ac06991110 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Mon Nov 25 20:54:17 2013 +0100 qga: Fix two format strings for MinGW Both code locations cause a compiler warning. Using "%s" instead of "%lu" would result in a program crash if the wrong code were executed. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Message-id: 1385409257-2522-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 84dc96e1e51c74ebf40b6c5e0c383769402e1a2d Author: Alexander Graf <agraf@xxxxxxx> Date: Mon Nov 25 22:46:55 2013 +0100 PPC: BookE: Make FIT/WDT timers at best millisecond grained The default granularity for the FIT timer on 440 is on every 0x1000th transition of TB from 0 to 1. Translated that means 48828 times a second. Since interrupts are quite expensive for 440 and we don't really care about the accuracy of the FIT to that significance, let's force FIT and WDT to at best millisecond granularity. This basically restores behavior as it was in QEMU 1.6, where timers could only deal with millisecond granularities at all. This patch greatly improves performance with the 440 target and restores roughly the same performance level that QEMU 1.6 had for me. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Message-id: 1385416015-22775-3-git-send-email-agraf@xxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 455df3f32341a3dff00f1726ff0749b3dd783bdf Author: Alexander Graf <agraf@xxxxxxx> Date: Mon Nov 25 22:46:54 2013 +0100 PPC: Make BookE FIT/WDT timers more lazy Today we fire FIT and WDT timer events every time the respective bit position in TB flips from 0 -> 1. However, there is no need to do this if the end result would be that we're changing a TSR bit that is set to 1 to 1 again. No guest visible change would have occured. So whenever we see that the TSR bit to our timer is already set, don't even bother to update the timer that would potentially fire it off. However, we do need to make sure that we update our timer that notifies us of the TB flip when the respective TSR bit gets unset. In that case we do care about the flip and need to notify the guest again. So add a callback into our timer handlers when TSR bits get unset. This improves performance for me when the guest is busy processing things. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Message-id: 1385416015-22775-2-git-send-email-agraf@xxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 134d42d614768b2803e551621f6654dab1fdc2d2 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Nov 26 00:00:39 2013 +0200 acpi-build: fix support for glib < 2.22 glib < 2.22 does not have g_array_get_element_size, limit it's use (to check all elements are 1 byte in size) to newer glib. This fixes build on RHEL 5.3. Reported-by: Richard Henderson <rth@xxxxxxxxxx> Reported-by: Erik Rull <erik.rull@xxxxxxxxxxxxx> Tested-by: Richard Henderson <rth@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 20131125220039.GA16386@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit c0caec178eadbbac4c672110c3914313091e0588 Merge: d916ada e007dbe Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Nov 25 09:49:42 2013 -0800 Merge remote-tracking branch 'mst/tags/for_anthony' into staging pc very last minute fixes for 1.7 This has a fix for a crasher bug with pci bridges, boot failure fix for s390 on 32 bit hosts, and fixes build for hosts with old glib. There's also a fix for --iasl configure flag - it can be used to work around broken iasl on some systems either by using a non-standard iasl or by disabling it. I've also reverted a e1000/rtl mac programming change that seems slightly wrong and too risky for 1.8. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Mon 25 Nov 2013 03:40:07 AM PST using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Michael S. Tsirkin (5) and Bandan Das (1) # Via Michael S. Tsirkin * mst/tags/for_anthony: configure: make --iasl option actually work Revert "e1000/rtl8139: update HMP NIC when every bit is written" acpi-build: fix build on glib < 2.14 acpi-build: fix build on glib < 2.22 pci: unregister vmstate_pcibus on unplug s390x: fix flat file load on 32 bit systems Message-id: 1385379990-32093-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit d916adaa606dd1b871316acb295d5979361133b7 Merge: 833637d d607a52 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Nov 25 09:41:24 2013 -0800 Merge remote-tracking branch 'bonzini/tags/for-anthony' into staging Here are a bunch of 1.7-tagged patches that I was afraid were getting forgotten or that did not have a clear maintainer responsible for making a pull request. # gpg: Signature made Thu 21 Nov 2013 08:40:59 AM PST using RSA key ID 9B4D86F2 # gpg: Can't check signature: public key not found # By Peter Maydell (3) and others # Via Paolo Bonzini * bonzini/tags/for-anthony: qga: Fix compiler warnings (missing format attribute, wrong format strings) mips jazz: do not raise data bus exception when accessing invalid addresses target-i386: yield to another VCPU on PAUSE rng-egd: offset the point when repeatedly read from the buffer rng-egd: remove redundant free target-i386: Fix build by providing stub kvm_arch_get_supported_cpuid() vfio-pci: Fix multifunction=on atomic.h: Fix build with clang pc: get rid of builtin pvpanic for "-M pc-1.5" configure: Explicitly set ARFLAGS so we can build with GNU Make 4.0 sun4m: Add FCode ROM for TCX framebuffer Message-id: 1385052578-32352-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 833637d46dd5a0859abdff085352ae7d48dc8189 Merge: 0ff1e1d bca4bf1 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Nov 25 09:37:44 2013 -0800 Merge remote-tracking branch 'mdroth/qga-pull-2013-11-22' into staging # By Tomoki Sekiyama # Via Michael Roth * mdroth/qga-pull-2013-11-22: qemu-ga: vss-win32: Install VSS provider COM+ application service Message-id: 1385154505-15145-1-git-send-email-mdroth@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0ff1e1dac4b6bccefc4b8a861ec2a643ecfb6e9d Merge: 607bb02 30c367e Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Nov 25 09:37:27 2013 -0800 Merge remote-tracking branch 'stefanha/net' into staging # By Vlad Yasevich # Via Stefan Hajnoczi * stefanha/net: qdev-properties-system.c: Allow vlan or netdev for -device, not both Message-id: 1385118544-28482-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit ef36fa1492e9105f3fa607b56edc63df513d7da1 Author: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Date: Mon Oct 28 18:51:46 2013 -0200 qemu: mempath: prefault pages manually (v4) v4: s/fail/failed/ (Peter Maydell) Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> commit fb541ca59c8b55911821c9f794c3dbe5de9ba9d8 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Nov 22 12:12:44 2013 -0700 kvm: Query KVM for available memory slots KVM reports the number of available memory slots (KVM_CAP_NR_MEMSLOTS) using the extension interface. Both x86 and s390 implement this, ARM and powerpc do not yet enable it. Convert the static slots array to be dynamically allocated, supporting more slots when available. Default to 32 when KVM_CAP_NR_MEMSLOTS is not implemented. The motivation for this change is to support more assigned devices, where memory mapped PCI MMIO BARs typically take one slot each. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Reviewed-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e007dbece5fc4e55e10116c6cb42753e35a945bf Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Nov 24 11:38:05 2013 +0200 configure: make --iasl option actually work --iasl option was added to CC option parsing section by mistake, it's not effective there and attempts to use cause an 'unknown option' error. Fix this up. Tested-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit bca4bf1028b332f55502bc7f50345fa5ea1c4f40 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Fri Nov 1 17:47:25 2013 -0400 qemu-ga: vss-win32: Install VSS provider COM+ application service Currently, qemu-ga for Windows fails to execute guset-fsfreeze-freeze when no user is logging in to Windows, with an error message: {"error":{"class":"GenericError", "desc":"failed to add C:\\ to snapshotset: (error: 8004230f)"}} To enable guest-fsfreeze-freeze/thaw without logging in users, this installs a service to execute qemu-ga VSS provider COM+ application that has full access privileges to the local system. The service will automatically be removed when the COM+ application is deregistered. This patch replaces ICOMAdminCatalog interface with ICOMAdminCatalog2 interface that contains CreateServiceForApplication() method in addition. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Gal Hammer <ghammer@xxxxxxxxxx> Reviewed-by: Yan Vugenfirer <yvugenfi@xxxxxxxxxx> Tested-by: Yan Vugenfirer <yvugenfi@xxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 30c367ed446b6ea53245589a5cf373578ac075d7 Author: Vlad Yasevich <vyasevic@xxxxxxxxxx> Date: Thu Nov 7 21:13:09 2013 -0500 qdev-properties-system.c: Allow vlan or netdev for -device, not both It is currently possible to specify things like: -device e1000,netdev=foo,vlan=1 With this usage, whichever argument was specified last (vlan or netdev) overwrites what was previousely set and results in a non-working configuration. Even worse, when used with multiqueue devices, it causes a segmentation fault on exit in qemu_free_net_client. That patch treates the above command line options as invalid and generates an error at start-up. Signed-off-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> Acked-by: Jason Wang <jasowang@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d607a52364e7bfc1cd6d3e425b898e86be4e525d Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 17 19:19:52 2013 +0100 qga: Fix compiler warnings (missing format attribute, wrong format strings) gcc 4.8.2 reports this warning when extra warnings are enabled (-Wextra): CC qga/commands.o qga/commands.c: In function â??slogâ??: qga/commands.c:28:5: error: function might be possible candidate for â??gnu_printfâ?? format attribute [-Werror=suggest-attribute=format] g_logv("syslog", G_LOG_LEVEL_INFO, fmt, ap); ^ gcc 4.8.2 reports this warning when slog is declared with the gnu_printf format attribute: qga/commands-posix.c: In function â??qmp_guest_file_openâ??: qga/commands-posix.c:404:5: warning: format â??%dâ?? expects argument of type â??intâ??, but argument 2 has type â??int64_tâ?? [-Wformat=] slog("guest-file-open, handle: %d", handle); ^ On 32 bit hosts there are three more warnings which are also fixed here. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit b6a06e72ef5e66e539012f63fca52c161c0d2496 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Mon Nov 4 23:26:17 2013 +0100 mips jazz: do not raise data bus exception when accessing invalid addresses MIPS Jazz chipset doesn't seem to raise data bus exceptions on invalid accesses. However, there is no easy way to prevent them. Creating a big memory region for the whole address space doesn't prevent memory core to directly call unassigned_mem_read/write which in turn call cpu->do_unassigned_access, which (for MIPS CPU) raise an data bus exception. This fixes a MIPS Jazz regression introduced in c658b94f6e8c206c59d02aa6fbac285b86b53d2c. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit b5fc314bcbb80f76b8deaf23a4c45767b87f750b Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Nov 20 12:54:02 2013 +0100 target-i386: yield to another VCPU on PAUSE After commit b1bbfe7 (aio / timers: On timer modification, qemu_notify or aio_notify, 2013-08-21) FreeBSD guests report a huge slowdown. The problem shows up as soon as FreeBSD turns out its periodic (~1 ms) tick, but the timers are only the trigger for a pre-existing problem. Before the offending patch, setting a timer did a timer_settime system call. After, setting the timer exits the event loop (which uses poll) and reenters it with a new deadline. This does not cause any slowdown; the difference is between one system call (timer_settime and a signal delivery (SIGALRM) before the patch, and two system calls afterwards (write to a pipe or eventfd + calling poll again when re-entering the event loop). Unfortunately, the exit/enter causes the main loop to grab the iothread lock, which in turns kicks the VCPU thread out of execution. This causes TCG to execute the next VCPU in its round-robin scheduling of VCPUS. When the second VCPU is mostly unused, FreeBSD runs a "pause" instruction in its idle loop which only burns cycles without any progress. As soon as the timer tick expires, the first VCPU runs the interrupt handler but very soon it sets it again---and QEMU then goes back doing nothing in the second VCPU. The fix is to make the pause instruction do "cpu_loop_exit". Reported-by: Luigi Rizzo <rizzo@xxxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit fbdcec5c487685b46e78f1e40a236ebf83f862fa Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Nov 21 16:42:51 2013 +0800 rng-egd: offset the point when repeatedly read from the buffer The buffer content might be read out more than once, currently we just repeatedly read the first data block, buffer offset is missing. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 60aad298cb6de52f2716b2e82e1353ea9de95fd6 Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Nov 21 16:42:50 2013 +0800 rng-egd: remove redundant free We didn't set default chr_name, the free is redundant. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 2140cfa51d59177815f5b82e94ac48fb24909aba Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Wed Nov 13 23:09:07 2013 +0000 target-i386: Fix build by providing stub kvm_arch_get_supported_cpuid() Fix build failures with clang when KVM is not enabled by providing a stub version of kvm_arch_get_supported_cpuid(). We retain the compile time check that this function isn't called when CONFIG_KVM is not set by guarding the stub with ifndef __OPTIMIZE__ (we assume that an optimizing build will do sufficient constant folding and dead code elimination to remove the calls before linking). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 8d07d6c46597a885eb38d99cc6fff399ce69cd21 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Tue Nov 12 11:53:24 2013 -0700 vfio-pci: Fix multifunction=on When an assigned device is initialized it copies the device config space into the emulated config space. Unfortunately multifunction is setup prior to the device initfn and gets clobbered. We need to restore it just like pci-assign does. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 392a4d5b9a1860aae82429d09321dac302d70396 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Oct 22 10:58:41 2013 +0100 atomic.h: Fix build with clang clang defines __ATOMIC_SEQ_CST but its implementation of the __atomic_exchange() builtin differs from that of gcc. Move the __clang__ branch of the ifdef ladder to the top and fix its implementation (there is no such builtin as __sync_exchange), so we can compile with clang again. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 7839ff593be03a7de3c6760e0b50c565ea751d36 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Nov 4 14:30:48 2013 +0100 pc: get rid of builtin pvpanic for "-M pc-1.5" This causes two slight backwards-incompatibilities between "-M pc-1.5" and 1.5's "-M pc": (1) a fw_cfg file is removed with this patch. This is only a problem if migration stops the virtual machine exactly during fw_cfg enumeration. (2) after migration, a VM created without an explicit "-device pvpanic" will stop reporting panics to management. The first problem only occurs if migration is done at a very, very early point (and I'm not sure it can happen in practice for reasonable-size VMs, since it will likely take more time to send the RAM to destination, than it will take for BIOS to scan fw_cfg). The second problem only occurs if the guest panics _and_ has a guest driver _and_ management knows to look at the crash event, so it is mostly theoretical at this point in time. Thus keep the code simple, and pretend it was never broken. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 45d285abd7028ac72418c1a22f9298bb898fbfb8 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Oct 21 21:03:06 2013 +0100 configure: Explicitly set ARFLAGS so we can build with GNU Make 4.0 Our rules.mak adds '-rR' to MAKEFLAGS to indicate that we will be explicitly specifying everything and not relying on any default variables or rules. However we were accidentally relying on the default ARFLAGS ("rv"). This went unnoticed because of a bug in GNU Make 3.82 and earlier which meant that adding -rR to MAKEFLAGS only affected submakes, not the currently running instance. Explicitly set ARFLAGS in config-host.mak, in the same way we handle CFLAGS and LDFLAGS; this will allow us to work with Make 4.0. Thanks to Paul Smith for analyzing this bug for us. Cc: qemu-stable@xxxxxxxxxx Reported-by: Ken Moffat <zarniwhoop@xxxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit da87dd7bd70f71ceaf9ff40d7cdb8394a7dc4bf5 Author: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Date: Sat Nov 2 16:03:50 2013 +0000 sun4m: Add FCode ROM for TCX framebuffer Upstream OpenBIOS now implements SBus probing in order to determine the contents of a physical bus slot, which is required to allow OpenBIOS to identify the framebuffer without help from the fw_cfg interface. SBus probing works by detecting the presence of an FCode program (effectively tokenised Forth) at the base address of each slot, and if present executes it so that it creates its own device node in the OpenBIOS device tree. The FCode ROM is generated as part of the OpenBIOS build and should generally be updated at the same time. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> CC: Blue Swirl <blauwirbel@xxxxxxxxx> CC: Bob Breuer <breuerr@xxxxxx> CC: Artyom Tarasenko <atar4qemu@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 607bb022f2a44797cbf40e85e84da4134e2f0e01 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Nov 21 08:11:47 2013 -0800 Update version for 1.7.0-rc1 release Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 187d62327aca39afbb038d13d7cd6bf2d11640d3 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Tue Nov 12 11:53:24 2013 -0700 vfio-pci: Fix multifunction=on When an assigned device is initialized it copies the device config space into the emulated config space. Unfortunately multifunction is setup prior to the device initfn and gets clobbered. We need to restore it just like pci-assign does. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Reviewed-by: Bandan Das <bsd@xxxxxxxxxx> Message-id: 20131112185059.7262.33780.stgit@xxxxxxxxxx Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 7865eec4f5fb10224a2cd391a8476044cbe5a1f7 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Nov 12 11:16:56 2013 +1000 target-i386: Fix addr32 prefix in gen_lea_modrm Fix the following run-test-x86_64 testsuite failures: -lea (%%eax) = 0000000000000001 -lea (%%ebx) = 0000000000000002 -lea (%%ecx) = 0000000000000004 -lea (%%edx) = 0000000000000008 -lea (%%esi) = 0000000000000010 -lea (%%edi) = 0000000000000020 +lea (%%eax) = 0000abcc00000001 +lea (%%ebx) = 0000abcf00000002 +lea (%%ecx) = 0000abc900000004 +lea (%%edx) = 0000abc500000008 +lea (%%esi) = 0000abdd00000010 +lea (%%edi) = 0000abed00000020 In addition, reduce ifdeffery and minimize the number of TCG ops produced during address computation. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1384219016-5170-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 33effd3aab4a268fb573fd8d7e0fe0baed0cd61a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Oct 22 10:58:41 2013 +0100 atomic.h: Fix build with clang clang defines __ATOMIC_SEQ_CST but its implementation of the __atomic_exchange() builtin differs from that of gcc. Move the __clang__ branch of the ifdef ladder to the top and fix its implementation (there is no such builtin as __sync_exchange), so we can compile with clang again. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Message-id: 1382435921-18438-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 76c2975a6feb5c232698e982b7f798431457822f Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Nov 19 17:49:46 2013 +0100 target-i386: do not override nr_cores for -cpu host Commit 787aaf5 (target-i386: forward CPUID cache leaves when -cpu host is used, 2013-09-02) brings bits 31..26 of CPUID leaf 04h out of sync with the APIC IDs that QEMU reserves for each package. This number must come from "-smp" options rather than from the host CPUID. It also turns out that this unsyncing makes Windows Server 2012R2 fail to boot. Tested-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Message-id: 1384879786-6721-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 54e755588cf1e90f0b1460c4e8e6b6a54b6d3a32 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Mon Nov 4 23:26:17 2013 +0100 mips jazz: do not raise data bus exception when accessing invalid addresses MIPS Jazz chipset doesn't seem to raise data bus exceptions on invalid accesses. However, there is no easy way to prevent them. Creating a big memory region for the whole address space doesn't prevent memory core to directly call unassigned_mem_read/write which in turn call cpu->do_unassigned_access, which (for MIPS CPU) raise an data bus exception. This fixes a MIPS Jazz regression introduced in c658b94f6e8c206c59d02aa6fbac285b86b53d2c. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Message-id: 1383603977-7003-1-git-send-email-hpoussin@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 81f3053b77f7d3a4d9100c425cd8cec99ee7a3d4 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Nov 20 12:54:02 2013 +0100 target-i386: yield to another VCPU on PAUSE After commit b1bbfe7 (aio / timers: On timer modification, qemu_notify or aio_notify, 2013-08-21) FreeBSD guests report a huge slowdown. The problem shows up as soon as FreeBSD turns out its periodic (~1 ms) tick, but the timers are only the trigger for a pre-existing problem. Before the offending patch, setting a timer did a timer_settime system call. After, setting the timer exits the event loop (which uses poll) and reenters it with a new deadline. This does not cause any slowdown; the difference is between one system call (timer_settime and a signal delivery (SIGALRM) before the patch, and two system calls afterwards (write to a pipe or eventfd + calling poll again when re-entering the event loop). Unfortunately, the exit/enter causes the main loop to grab the iothread lock, which in turns kicks the VCPU thread out of execution. This causes TCG to execute the next VCPU in its round-robin scheduling of VCPUS. When the second VCPU is mostly unused, FreeBSD runs a "pause" instruction in its idle loop which only burns cycles without any progress. As soon as the timer tick expires, the first VCPU runs the interrupt handler but very soon it sets it again---and QEMU then goes back doing nothing in the second VCPU. The fix is to make the pause instruction do "cpu_loop_exit". Cc: Richard Henderson <rth@xxxxxxxxxxx> Reported-by: Luigi Rizzo <rizzo@xxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1384948442-24217-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 1eb1bd9eafa890f1f4d16ef5cb8b9239a86874d9 Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Nov 21 16:42:51 2013 +0800 rng-egd: offset the point when repeatedly read from the buffer The buffer content might be read out more than once, currently we just repeatedly read the first data block, buffer offset is missing. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Message-id: 1385023371-8198-3-git-send-email-akong@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 5e490b6a504912225dff0e520e1c6af68295d238 Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Nov 21 16:42:50 2013 +0800 rng-egd: remove redundant free We didn't set default chr_name, the free is redundant. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Message-id: 1385023371-8198-2-git-send-email-akong@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit d44bb8604e87ecd3823f12f0c92d5e56d613de0d Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Nov 21 18:53:23 2013 +0800 virtio-rng: add check of period If period is assigned to 0, limit timer will expire immediately. It causes a qemu warning: "main-loop: WARNING: I/O thread spun for 1000 iterations" This limit is meaningless. This patch forbids to assign 0 to period. Reviewed-by: Amit Shah <amit.shah@xxxxxxxxxx> Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Message-id: 1385031203-23790-1-git-send-email-akong@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 376827d48922941d16ef9949672e86f820005d0a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 21 15:34:26 2013 +0200 s390x: fix flat file load on 32 bit systems pc-bios/s390-zipl.rom is a flat image so it's expected that loading it as elf will fail. It should fall back on loading a flat file, but doesn't on 32 bit systems, instead it fails printing: qemu: hardware error: could not load bootloader 's390-zipl.rom' The result is boot failure. The reason is that a 64 bit unsigned interger which is set to -1 on error is compared to -1UL which on a 32 bit system with gcc is a 32 bit unsigned interger. Since both are unsigned, no sign extension takes place and comparison evaluates to non-equal. There's no reason to do clever tricks: all functions we call actually return int so just use int. And then we can use == -1 everywhere, consistently. Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 20131121133426.GA30827@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit b15654c21acef4d2bc17e6ac528c6c93abbb7e1e Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 21 14:17:54 2013 +0200 acpi-build: fix build on glib < 2.14 g_array_get_element_size was only added in glib 2.14. Fortunately we don't use it for any arrays where element size is > 1, so just add an assert. Reported-by: Richard Henderson <rth@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Message-id: 1385036128-8753-2-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 542da88f0013ebb2b2d8ca10becbfebd9948abba Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 21 14:17:51 2013 +0200 acpi-build: fix build on glib < 2.22 g_string_vprintf was only introduced in 2.24 so switch to vsnprintf instead. A bit uglier but name size is fixed at 4 bytes here so it's easy. Reported-by: Richard Henderson <rth@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Message-id: 1385036128-8753-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0a3c738507cef91bd751d8507676109bc7985e1a Merge: ffb62da ef4cbe1 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Nov 21 07:09:52 2013 -0800 Merge remote-tracking branch 'qemu-kvm/uq/master' into staging # By Jan Kiszka (1) and others # Via Gleb Natapov * qemu-kvm/uq/master: kvm: Fix uninitialized cpuid_data pci-assign: Remove dead code for direct I/O region access from userspace KVM: x86: fix typo in KVM_GET_XCRS Message-id: cover.1385040432.git.gleb@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit ffb62da7a23b1d13a3582bee6b2df599baa6ecfb Merge: 425ff51 14a650e Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Nov 21 07:08:47 2013 -0800 Merge remote-tracking branch 'jliu/or32' into staging # By Sebastian Macke # Via Jia Liu * jliu/or32: target-openrisc: Correct carry flag check of l.addc and l.addic test cases target-openrisc: Correct memory bounds checking for the tlb buffers openrisc-timer: Reduce overhead, Separate clock update functions target-openrisc: Correct wrong epcr register in interrupt handler target-openrisc: Remove executable flag for every page target-openrisc: Remove unnecessary code generated by jump instructions target-openrisc: Speed up move instruction Message-id: 1384958318-9145-1-git-send-email-proljc@xxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 425ff5102f8668d5c921e2a1d77ee9173742bfdf Merge: 394cfa3 8e86729 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Nov 21 07:08:31 2013 -0800 Merge remote-tracking branch 'quintela/migration.next' into staging # By Wangting (Kathy) # Via Juan Quintela * quintela/migration.next: The calculation of bytes_xfer in qemu_put_buffer() is wrong Message-id: 1384946787-8190-1-git-send-email-quintela@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 90d131fb6504ed12a37dc8433375cc683c30e9da Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Nov 18 21:41:44 2013 +0200 Revert "e1000/rtl8139: update HMP NIC when every bit is written" This reverts commit cd5be5829c1ce87aa6b3a7806524fac07ac9a757. Digging into hardware specs shows this does not actually make QEMU behave more like hardware: There are valid arguments backed by the spec to indicate why the version of e1000 prior to cd5be582 was more correct: the high byte actually includes a valid bit, this is why all guests write it last. For rtl8139 there's actually a separate undocumented valid bit, but we don't implement it yet. To summarize all the drivers we know about behave in one way that allows us to make an assumption about write order and avoid spurious, incorrect mac address updates to the monitor. Let's stick to the tried heuristic for 1.7 and possibly revisit for 1.8. Reported-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> Reviewed-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> Cc: Amos Kong <akong@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit fd8f5e37557596e14a859d8edf3dc24523bd4400 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 21 11:22:51 2013 +0200 acpi-build: fix build on glib < 2.14 g_array_get_element_size was only added in glib 2.14, there's no way to find element size in with an older glib. Fortunately we only use a single table (linker) where element size > 1. Switch element size to 1 everywhere, then we can just look at len field to get table size in bytes. Add an assert to make sure we catch any violations of this rule. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reported-by: Richard Henderson <rth@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8b9c3b897c682cd9739c6aef73b3220c7204c243 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 21 11:19:58 2013 +0200 acpi-build: fix build on glib < 2.22 g_string_vprintf was only introduced in 2.24 so switch to vsnprintf instead. A bit uglier but name size is fixed at 4 bytes here so it's easy. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reported-by: Richard Henderson <rth@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 5c397242d5d53c1adecce31817bb439383cf8228 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Wed Nov 6 17:52:17 2013 -0500 pci: unregister vmstate_pcibus on unplug PCIBus registers a vmstate during init. Unregister it upon removal/unplug. Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit decbc880289526d94495bcbe6e1ba2a11b92e7a8 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 21 13:59:15 2013 +0200 s390x: fix flat file load on 32 bit systems pc-bios/s390-zipl.rom is a flat image so it's expected that loading it as elf will fail. It should fall back on loading a flat file, but doesn't on 32 bit systems, instead it fails printing: qemu: hardware error: could not load bootloader 's390-zipl.rom' The result is boot failure. The reason is that a 64 bit unsigned interger which is set to -1 on error is compared to -1UL which on a 32 bit system with gcc is a 32 bit unsigned interger. Since both are unsigned, no sign extension takes place and comparison evaluates to non-equal. There's no reason to do clever tricks: all functions we call actually return int so just use int. And then we can use == -1 everywhere, consistently. Reviewed-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 14a650ec25ca93a626397783d6c6e840ec2502c6 Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Tue Oct 22 02:12:45 2013 +0200 target-openrisc: Correct carry flag check of l.addc and l.addic test cases The test cases did not correctly test for the carry flag. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit 93147a180c10b97bf9575a87e01c9a1c93e6c9ce Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Tue Oct 22 02:12:42 2013 +0200 target-openrisc: Correct memory bounds checking for the tlb buffers The mtspr and mfspr routines didn't check for the correct memory boundaries. This fixes a segmentation fault while booting Linux. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit d51552176a2ab5e80a211514aa1339fe2575ec2a Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Tue Oct 22 02:12:41 2013 +0200 openrisc-timer: Reduce overhead, Separate clock update functions The clock value is only evaluated when really necessary reducing the overhead of the timer handling. This also solves a problem in the way the Linux kernel handles the timer and the expected accuracy. The old version could lead to inaccurate timings. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit ae52bd96ceaea36c486d8ffeb798e160f31d3be8 Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Tue Oct 22 02:12:40 2013 +0200 target-openrisc: Correct wrong epcr register in interrupt handler This patch corrects several misbehaviors during an interrupt process. Most of the time the pc is already correct and therefore no special treatment of the exceptions is necessary. Tested by checking crashing programs which otherwise work in or1ksim. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit 04359e6bb7f2841031aae645a770583f9c5df3cd Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Tue Oct 22 02:12:39 2013 +0200 target-openrisc: Remove executable flag for every page Pages should be flagged executable only if the tlb executable flag is set or the mmu is off. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit da1d77597b29f45bfd290d251ee459a2794112c6 Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Tue Oct 22 02:12:38 2013 +0200 target-openrisc: Remove unnecessary code generated by jump instructions The sr_f variable is only used for the l.bf and l.bnf instructions. For clarity the code is also rewritten using a switch statement instead of if chaining. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit 352367e8bb53bd4e16abaecbcb9fc0bcadf5881b Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Tue Oct 22 02:12:37 2013 +0200 target-openrisc: Speed up move instruction The OpenRISC architecture does not have its own move register instruction. Instead it uses either "l.addi rd, r0, x" or "l.ori rd, rs, 0" or "l.or rd, rx, r0" The l.ori instruction is automatically optimized but not the l.addi instruction. This patch optimizes for this special case. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> Signed-off-by: Jia Liu <proljc@xxxxxxxxx> commit 8e86729a0e83b557c22808a2337252c969ca3986 Author: Wangting (Kathy) <kathy.wangting@xxxxxxxxxx> Date: Tue Nov 19 05:53:45 2013 +0000 The calculation of bytes_xfer in qemu_put_buffer() is wrong In qemu_put_buffer(), bytes_xfer += size is wrong, it will be more than expected, and should be bytes_xfer += l. Signed-off-by: zhangmin <zhangmin6@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 394cfa39ba24dd838ace1308ae24961243947fb8 Merge: 4ed3479 fc1c4a5 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 13:03:06 2013 -0800 Merge remote-tracking branch 'quintela/migration.next' into staging # By Peter Lieven # Via Juan Quintela * quintela/migration.next: migration: drop MADVISE_DONT_NEED for incoming zero pages Message-id: 1384878412-23521-1-git-send-email-quintela@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 4ed34791696523522fa7e6a00301e0bf3a09ea29 Merge: 1c46e59 2ad645d Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 13:00:52 2013 -0800 Merge remote-tracking branch 'stefanha/block' into staging # By Andreas Färber # Via Stefan Hajnoczi * stefanha/block: qtest: Use -display none by default commit 1c46e594dc3eb0df4bdc1ea31b61c19ee0eed753 Merge: dc6dc0a 2d3aa28 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 13:00:09 2013 -0800 Merge remote-tracking branch 'afaerber/tags/qom-devices-for-anthony' into staging QOM infrastructure fixes for 1.7 * QOM memory leak fix # gpg: Signature made Tue 19 Nov 2013 01:58:58 AM PST using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Vlad Yasevich # Via Andreas Färber * afaerber/tags/qom-devices-for-anthony: qom: Fix memory leak in object_property_set_link() commit dc6dc0a9879738236b4da03d34d3c72eedfd25bb Merge: 4be6693 463230d Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 13:00:02 2013 -0800 Merge remote-tracking branch 'rth/tcg-ia64-17' into staging # By Richard Henderson # Via Richard Henderson * rth/tcg-ia64-17: tcg-ia64: Introduce tcg_opc_bswap64_i tcg-ia64: Introduce tcg_opc_ext_i tcg-ia64: Introduce tcg_opc_movi_a tcg-ia64: Introduce tcg_opc_mov_a tcg-ia64: Use A3 form of logical operations tcg-ia64: Use SUB_A3 and ADDS_A4 for subtraction tcg-ia64: Use ADDS for small addition tcg-ia64: Avoid unnecessary stop bit in tcg_out_alu tcg-ia64: Move AREG0 to R32 tcg-ia64: Simplify brcond tcg-ia64: Handle constant calls tcg-ia64: Use shortcuts for nop insns tcg-ia64: Use TCGMemOp within qemu_ldst routines Message-id: 1384811395-7097-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 4be6693a8842023542d1ae1c6e4e2a3fd9988ebe Merge: 38dc749 420508f Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 12:59:48 2013 -0800 Merge remote-tracking branch 'mst/tags/for_anthony' into staging pc last minute fixes for 1.8 This has a patch that drops an unused FW CFG entry. I think it's best to include it before 1.7 to avoid the need to maintain it in compat machine types. There's also a doc bugfix by Amos: I'm guessing doc fixes are still fair game even at this late stage. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Mon 18 Nov 2013 03:48:14 AM PST using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Amos Kong (1) and Igor Mammedov (1) # Via Michael S. Tsirkin * mst/tags/for_anthony: doc: fix hardcoded helper path pc: disable pci-info Message-id: 1384775449-6693-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 38dc74907e2b2ce2249b8b84eae1a1664b122835 Merge: 7af3151 0478f37 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 12:59:26 2013 -0800 Merge remote-tracking branch 'mjt/trivial-patches' into staging # By Jan Krupa (4) and others # Via Michael Tokarev * mjt/trivial-patches: hw/i386/Makefile.obj: use $(PYTHON) to run .py scripts consistently configure: Use -B switch only for Python versions which support it qga: Fix shutdown command of guest agent to work with SysV console: Remove unused debug code qga: Fix compilation for old versions of MinGW .travis.yml: basic compile and check recipes pci-assign: Fix error_report of pci-stub message qapi: Fix comment for create-type to match code. vl: fix build when configured with no graphic support usb: drop unused USBNetState.inpkt field qemu-char: add missing characters used in keymaps qemu-char: add support for U-prefixed symbols qemu-char: add Czech keymap file qemu-char: add Czech characters to VNC keysyms Message-id: 1384684850-6777-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 7af31519e220efc0572cacec5ac65dc54e73985d Merge: 88a47b9 06d22aa Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 12:59:09 2013 -0800 Merge remote-tracking branch 'kwolf/tags/for-anthony' into staging Block fixes for 1.7.0 # gpg: Signature made Fri 15 Nov 2013 09:51:25 AM PST using RSA key ID C88F2FD6 # gpg: Can't check signature: public key not found # By Max Reitz (3) and others # Via Kevin Wolf * kwolf/tags/for-anthony: block: Fail if requested driver is not available MAINTAINERS: add block driver sub-maintainers qemu-img: Fix overwriting 'ret' before using qemu-iotests: Test qcow2 count_contiguous_clusters() qcow2: fix possible corruption when reading multiple clusters qmp: access the local QemuOptsLists for drive option MAINTAINERS: add block tree repo URLs qemu-iotests: Extend 041 for unbacked mirroring block/drive-mirror: Check for NULL backing_hd qapi-schema: Update description for NewImageMode block: Print its file name if backing file opening failed Message-id: 1384537999-5972-1-git-send-email-kwolf@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 88a47b9de2c01121e153b1feb24cdb2e033b2f04 Merge: 8c630d5 96e3504 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 12:58:32 2013 -0800 Merge remote-tracking branch 'stefanha/net' into staging # By Amos Kong (1) and Sebastian Huber (1) # Via Stefan Hajnoczi * stefanha/net: virtio-net: fix the memory leak in rxfilter_notify() smc91c111: Fix receive starvation Message-id: 1384532032-19057-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 8c630d5150ddedea231a39727e43787e5a3b6690 Merge: 5c5432e 9d0e1da Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 19 12:57:16 2013 -0800 Merge remote-tracking branch 'agraf/tags/signed-ppc-for-upstream-1.7' into staging Patch queue for ppc - 2013-11-08 These are two patches that will hopefully make it into 1.7. The SLOF update fixes -append kernel command line argument passing into the guest kernel. The other patch makes VIO devices appear when using -device '?'. # gpg: Signature made Thu 07 Nov 2013 07:34:54 PM PST using RSA key ID 03FEDC60 # gpg: Can't check signature: public key not found # By Alexey Kardashevskiy # Via Alexander Graf * agraf/tags/signed-ppc-for-upstream-1.7: pseries: Update SLOF firmware image spapr: add vio-bus devices to categories Message-id: 1383881766-13958-1-git-send-email-agraf@xxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit fc1c4a5d32e15a4c40c47945da85ef9c1e0c1b54 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 09:21:29 2013 +0200 migration: drop MADVISE_DONT_NEED for incoming zero pages The madvise for zeroed out pages was introduced when every transferred zero page was memset to zero and thus allocated. Since commit 211ea740 we check for zeroness of a target page before we memset it to zero. Additionally we memmap target memory so it is essentially zero initialized (except for e.g. option roms and bios which are loaded into target memory although they shouldn't). It was reported recently that this madvise causes a performance degradation in some situations. As the madvise should only be called rarely and if it's called it is likely on a busy page (it was non-zero and changed to zero during migration) drop it completely. Reported-By: Zhang Haoyu <haoyu.zhang@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 2d3aa28cc2cf382aa04cd577e0be542175eea9bd Author: Vlad Yasevich <vyasevic@xxxxxxxxxx> Date: Fri Nov 15 12:09:47 2013 -0500 qom: Fix memory leak in object_property_set_link() Save the result of the call to object_get_canonical_path() so we can free it. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> Reviewed-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 2ad645d2854746b55ddfd1d8e951f689cca5d78f Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Nov 18 17:36:34 2013 +0100 qtest: Use -display none by default This avoids each test needing to add it to suppress windows popping up. [Commit 7ceeedd016facf8d58e14a0d1417fa7225d71072 ("blockdev-test: add test case for drive_add duplicate IDs") and commit 43cd209803d6cffb1e1a028c9ff2fd0ff4fce954 ("qdev-monitor-test: add device_add leak test cases") added qtest tests without specifying -display none. As a result, "make check" now tries to use graphics (GTK or SDL). Since graphics are not used by the test and inappropriate for headless "make check" runs, add the missing -display none. This fixes "make check" in the QEMU buildbot. -- Stefan] Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 96e35046e4a97df5b4e1e24e217eb1e1701c7c71 Author: Amos Kong <akong@xxxxxxxxxx> Date: Mon Nov 18 23:32:17 2013 +0800 virtio-net: fix the memory leak in rxfilter_notify() object_get_canonical_path() returns a gchar*, it should be freed by the caller. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 420508fbba2a6e8eaff008715b5f7eff83f8e865 Author: Amos Kong <akong@xxxxxxxxxx> Date: Wed Oct 23 04:49:28 2013 +0800 doc: fix hardcoded helper path The install directory of qemu-bridge-helper is configurable, but we use a fixed path in the documentation. DEFAULT_BRIDGE_HELPER macro isn't available in texi mode, we should always use "/path/to/" prefix for dynamic paths (e.g.: /path/to/image, /path/to/linux, etc). Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 463230d85e1e0898b1a94092af65026e615e6ec6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 19:20:40 2013 -0400 tcg-ia64: Introduce tcg_opc_bswap64_i Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit db008a8de2c5ea1325d6db455fa5a0a4bca66735 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 19:13:41 2013 -0400 tcg-ia64: Introduce tcg_opc_ext_i Being able to "extend" from 64-bits (with a mov) simplifies a few places where the conditional breaks the train of thought. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit fa0cdb6c2a574774376b33c5fb0907e93403c188 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 18:56:39 2013 -0400 tcg-ia64: Introduce tcg_opc_movi_a Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3b9ccdcc74e06a3e7e10d012679583c2ee30d7fa Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 18:48:42 2013 -0400 tcg-ia64: Introduce tcg_opc_mov_a Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 25c9c73bdc9029407da3b286ab0d1d694c851b3e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 17:13:43 2013 -0400 tcg-ia64: Use A3 form of logical operations We can and/or/xor/andcm small constants, saving one cycle. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f940fb086c607fcb9c98d5ce67619fc5255f6abb Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 16:44:18 2013 -0400 tcg-ia64: Use SUB_A3 and ADDS_A4 for subtraction We can subtract from more small constants that just 0 with one insn, and we can add the negative for most small constants. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8642088a3d73a599b31c6fdd1d2aa2c945d95ced Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 16:15:13 2013 -0400 tcg-ia64: Use ADDS for small addition Avoids a wasted cycle loading up small constants. Simplify the code assuming the tcg optimizer is going to work and don't expect the first operand of the add to be constant. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3c289cba9b82ff55f52287a642332d4c2ca62b95 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 15:56:44 2013 -0400 tcg-ia64: Avoid unnecessary stop bit in tcg_out_alu When performing an operation with two input registers, we'd leave the stop bit (and thus an extra cycle) that's only needed when one or the other input is a constant. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d15de15ca01fa990544b015fb972f2d04ab4d2d0 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 14:45:54 2013 -0400 tcg-ia64: Move AREG0 to R32 Since the move away from the global areg0, we're no longer globally reserving areg0. Which means our use of R7 clobbers a call-saved register. Shift areg0 into the windowed registers. Indeed, choose the incoming parameter register that it comes to us by. This requires moving the register holding the return address elsewhere. Choose R33 for tidiness. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6d264b38fcc267b68df2890b22d27bc404878c8c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 12:47:41 2013 -0400 tcg-ia64: Simplify brcond There was a misconception that a stop bit is required between a compare and the branch that uses the predicate set by the compare. This lead to the usage of an extra bundle in which to perform the compare. The extra bundle left room for constants to be loaded for use with the compare insn. If we pack the compare and the branch together in the same bundle, then there's no longer any room for non-zero constants. At which point we can eliminate half the function by not handling them. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6f65c780b952485d7d1edbb72bf199e9803995e2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 5 12:11:27 2013 -0400 tcg-ia64: Handle constant calls Using only indirect calls results in 3 bundles (one to load the descriptor address), and 4 stop bits. By looking through the descriptor to the constants, we can perform the call with 2 bundles and only 1 stop bit. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5f7b16877a431c477d8dac92d0bb553d05c6402e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 4 19:00:52 2013 -0400 tcg-ia64: Use shortcuts for nop insns There's no need to go through the full opcode-to-insn function call to generate nops. This makes the source a bit more readable. Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e3afa1c4ad3162792421fb64bce937242bc7e0d8 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 4 17:24:38 2013 -0400 tcg-ia64: Use TCGMemOp within qemu_ldst routines Acked-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0478f37ce258438d74164dd182b0ae125f174ec6 Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Sat Nov 16 14:09:14 2013 +0400 hw/i386/Makefile.obj: use $(PYTHON) to run .py scripts consistently $(PYTHON) is a Make variable which is set by configure. In all other places over the tree, .py files are run from Makefiles using this variable, except of a single leftover in hw/i386/Makefile.obj (and a nearby place in there uses $(PYTHON) correctly). Fix this leftover too. Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> Cc: Luigi Rizzo <rizzo@xxxxxxxxxxxx> Reviewed-by:: Stefan Weil <sw@xxxxxxxxxxx> commit 52510f8b2c0486e6c2743b1d069b3584ef4524da Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Nov 14 19:07:03 2013 +0100 configure: Use -B switch only for Python versions which support it Commit 1d984a67a95d88f3e708b077dab8adeb47c38c93 added the -B switch unconditionally. This breaks Python versions before 2.6 which don't support that switch. Now configure adds -B only if it is accepted by the Python interpreter. This modification introduces a small incompatibility because -B might now also be added when configure was called with --python=PYTHON_INTERPRETER. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 485e741cd15655b4032b07b8a912aa5c7a4f2028 Author: whitearchey <whitearchey@xxxxxxxxx> Date: Wed Nov 6 10:54:04 2013 +0900 qga: Fix shutdown command of guest agent to work with SysV For now guest agent uses following command to shutdown system: shutdown -P +0 "blabla" but this syntax works only with shutdown command from systemd or upstart, because SysV shutdown requires -h switch. Following patch changes the command so it works with systemd, upstart and SysV With upstart/systemd qga use one of thee commands, depending on 'mode' parameter: shutdown -P +0 "..." shutdown -H +0 "..." shutdown -r +0 "..." SysV equivalents for these are: shutdown -h -P +0 "..." shutdown -h -H +0 "..." shutdown -h -r +0 "..." and these retain their meaning with upstart/systemd. According to FreeBSD manpages, shutdown does not accept -P and -H options. Commands should be: shutdown -p +0 "..." shutdown -h +0 "..." shutdown -r +0 "..." shutdown in Solaris does not accept any of -hHpPr and does not accept time in "+0" format Signed-off-by: Michael Avdienko <whitearchey@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 06d22aa36706a3d6051b74c8a183ab554a0cb808 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Aug 8 17:44:52 2013 +0200 block: Fail if requested driver is not available If an explicit driver option is present, but doesn't specify a valid driver, then bdrv_open() should fail instead of probing the format. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f05b328c9d85e57ab871ca73a36220493327a649 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Nov 13 10:33:10 2013 +0100 MAINTAINERS: add block driver sub-maintainers There are a number of contributors who maintain block drivers (image formats and protocols). They should be listed in the MAINTAINERS file so that get_maintainer.pl lists them. Note that commits are still merged through Kevin or Stefan's block tree but the block driver sub-maintainers are usually the ones to review patches. Acked-by: Kevin Wolf <kwolf@xxxxxxxxxx> Acked-by: Richard W.M. Jones <rjones@xxxxxxxxxx> Acked-by: Stefan Weil <sw@xxxxxxxxxxx> Acked-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Acked-by: Jeff Cody <jcody@xxxxxxxxxx> Acked-by: Anthony Liguori <aliguori@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 36452f12f877c60f004b34641287d74b14c96208 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 13 20:26:49 2013 +0800 qemu-img: Fix overwriting 'ret' before using This patch moves ret assignment after reporting original error. We were lucky to pass qemu-iotests 048 (qemu-img compare case) but when I tried to run with TEST_DIR=/tmp (tmpfs), it fails with a "wrong" mismatch offset. This fixes two bugs. In the first if branch, setting ret to 1 before using it makes dead code in the next line: pnum is never added to mismatch offset even if ret was 0. In the other if branch, currently the output error is always -4: strerror(-4) -> Unknown error -4 Added regression test in case 048. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> commit a1144c0dbfa3f820916a135d2d3d6db5635adcc2 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Nov 13 12:00:10 2013 +0100 qemu-iotests: Test qcow2 count_contiguous_clusters() Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8b7acc79b9adb4dda6cc867b90e3a1e873f4f7e8 Author: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Date: Thu Nov 14 14:53:46 2013 +0100 smc91c111: Fix receive starvation In case the smc91c111 interface signals that it cannot receive more packets the packets are queued and further reception will be disabled. In case the interface is again ready to receive packets notify the upper layer. Signed-off-by: Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 78a52ad5acca7053b774fcc80290e7b7e224c80a Author: Peter Lieven <pl@xxxxxxx> Date: Tue Nov 12 13:48:07 2013 +0100 qcow2: fix possible corruption when reading multiple clusters if multiple sectors spanning multiple clusters are read the function count_contiguous_clusters should ensure that the cluster type should not change between the clusters. Especially the for-loop should break when we have one or more normal clusters followed by a compressed cluster. Unfortunately the wrong macro was used in the mask to compare the flags. This was discovered while debugging a data corruption issue when converting a compressed qcow2 image to raw. qemu-img reads 2MB chunks which span multiple clusters. CC: qemu-stable@xxxxxxxxxx Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 968854c8a106243eae7a68394ce1cb85dc138837 Author: Amos Kong <akong@xxxxxxxxxx> Date: Sat Nov 9 12:15:47 2013 +0800 qmp: access the local QemuOptsLists for drive option Currently we have three QemuOptsList (qemu_common_drive_opts, qemu_legacy_drive_opts, and qemu_drive_opts), only qemu_drive_opts is added to vm_config_groups[]. This patch changes query-command-line-options to access three local QemuOptsLists for drive option, and merge the description items together. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d48adddac7d1839c8d734506aba6fd39fb9c3834 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Nov 6 16:06:25 2013 +0100 MAINTAINERS: add block tree repo URLs Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c15badee200f9e743e3639cc5e3e7dd62c69332f Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Nov 6 19:50:45 2013 +0100 qemu-iotests: Extend 041 for unbacked mirroring Add a new test case in file 041 for mirroring unbacked images in "absolute-paths" mode. This should work, if possible, but most importantly, qemu should never crash. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1452686495922b81d6cf43edf025c1aef15965c0 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Nov 6 19:50:44 2013 +0100 block/drive-mirror: Check for NULL backing_hd It should be possible to execute the QMP "drive-mirror" command in "none" sync mode and "absolute-paths" mode even for block devices lacking a backing file. "absolute-paths" does in fact not require a backing file to be present, as can be seen from the "top" sync mode code path. "top" basically states that the device should indeed have a backing file - however, the current code catches the case if it doesn't and then simply treats it as "full" sync mode, creating a target image without a backing file (in "absolute-paths" mode). Thus, "absolute-paths" does not imply the target file must indeed have a backing file. Therefore, the target file may be left unbacked in case of "none" sync mode as well, if the specified device is not backed either. Currently, qemu will crash trying to dereference the backing file pointer since it assumes that it will always be non-NULL in that case ("none" with "absolute-paths"). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1296c2f0bc8283164c925bf587e497511de7f569 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Nov 7 19:47:48 2013 +0100 qapi-schema: Update description for NewImageMode If the NewImageMode is "absolute-paths" but no backing file is available (e.g., when mirroring a device with an unbacked image), the target image will not be backed either. This patch updates the documentation in qapi-schema.json accordingly. 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 b04b6b6ec3a1e0ba90c2f58617286d9fc35fa372 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Nov 8 11:26:49 2013 +0800 block: Print its file name if backing file opening failed If backing file doesn't exist, the error message is confusing and misleading: $ qemu /tmp/a.qcow2 qemu: could not open disk image /tmp/a.qcow2: Could not open file: No such file or directory But... $ ls /tmp/a.qcow2 /tmp/a.qcow2 $ qemu-img info /tmp/a.qcow2 image: /tmp/a.qcow2 file format: qcow2 virtual size: 8.0G (8589934592 bytes) disk size: 196K cluster_size: 65536 backing file: /tmp/b.qcow2 Because... $ ls /tmp/b.qcow2 ls: cannot access /tmp/b.qcow2: No such file or directory This is not intuitive. It's better to have the missing file's name in the error message. With this patch: $ qemu-io -c 'read 0 512' /tmp/a.qcow2 qemu-io: can't open device /tmp/a.qcow2: Could not open backing file: Could not open '/stor/vm/arch.raw': No such file or directory no file open, try 'help open' Which is a little bit better. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7f1bb742be39184b469d53c0901240b12bb85589 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Nov 6 13:48:40 2013 +0100 pc: disable pci-info The BIOS that we ship in 1.7 does not use pci info from host and so far isn't going to use it. Taking in account problems it caused see 9604f70fdf and to avoid future incompatibility issues, it's safest to disable that interface by default for all machine types including 1.7 as it was never exposed/used by guest. And properly remove/cleanup it during 1.8 development cycle. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 5c5432e7d630592ddcc1876ac8a1505f8f14ef15 Merge: 29c5b77 dce07e0 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 13 11:49:27 2013 -0800 Merge remote-tracking branch 'luiz/queue/qmp' into staging # By Luiz Capitulino (1) and Richard Henderson (1) # Via Luiz Capitulino * luiz/queue/qmp: MAINTAINERS: add git tree info for HMP, QMP and QAPI Adjust qapi-visit for python-2.4.3 Message-id: 1384281985-11100-1-git-send-email-lcapitulino@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 29c5b77d3dd7e970c7bd57cd1d73734ae01e29d2 Merge: b873a55 ef9e455 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 13 11:48:35 2013 -0800 Merge remote-tracking branch 'mst/tags/for_anthony' into staging pci, pc, virtio bug fixes This reverts PCI master abort support - we'll want it eventually but it exposes too many core bugs to be safe for 1.7. This also reverts a recent exec.c change that was an attempt to work-around some of these core bugs. Also included are small fixes in pc and virtio, and a core loader fix for PPC bamboo. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Sun 10 Nov 2013 05:13:22 AM PST using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Michael S. Tsirkin (3) and others # Via Michael S. Tsirkin * mst/tags/for_anthony: Revert "exec: limit system memory size" Revert "hw/pci: partially handle pci master abort" loader: drop return value for rom_add_blob_fixed acpi-build: disable with -no-acpi virtio-net: only delete bh that existed Fix pc migration from qemu <= 1.5 Message-id: 1384159176-31662-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit b873a55cf45f1fbff7026de885848d52939d18e1 Merge: deb0f50 cc386e9 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 13 11:48:02 2013 -0800 Merge remote-tracking branch 'stefanha/net' into staging # By Dmitry Fleytman (1) and others # Via Stefan Hajnoczi * stefanha/net: virtio-net: broken RX filtering logic fixed net: fix qemu_flush_queued_packets() in presence of a hub net: disallow to specify multicast MAC address Message-id: 1383928804-28866-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit deb0f500651317863922964c87b4fa64eecdbd73 Merge: 70c4c5b 7e38200 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 13 11:47:44 2013 -0800 Merge remote-tracking branch 'stefanha/block' into staging # By Jeff Cody (26) and others # Via Stefan Hajnoczi * stefanha/block: (37 commits) block: Round up total_sectors block: vhdx qemu-iotest - log replay of data sector block: qemu-iotests for vhdx, add write test support block: vhdx - update _make_test_img() to filter out vhdx options block: vhdx - add .bdrv_create() support block: vhdx - fix comment typos in header, fix incorrect struct fields block: vhdx - break out code operations to functions block: vhdx - move more endian translations to vhdx-endian.c block: vhdx - remove BAT file offset bit shifting block: vhdx write support block: vhdx - add log write support block: vhdx - add region overlap detection for image files block: vhdx - log parsing, replay, and flush support block: vhdx code movement - move vhdx_close() above vhdx_open() block: vhdx - update log guid in header, and first write tracker block: vhdx - break endian translation functions out block: vhdx - log support struct and defines block: vhdx code movement - VHDXMetadataEntries and BDRVVHDXState to header. block: vhdx - add header update capability. block: vhdx - minor comments and typo correction. ... Message-id: 1383905551-16411-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 70c4c5b5621f6d954843547bcab9db857d882e99 Merge: 9f43a3f ebbfd5a Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 13 11:47:06 2013 -0800 Merge remote-tracking branch 'filippov/tags/20131108-xtensa' into staging Two small fixes for 1.7: - add missing debug feature to dc233c xtensa core; - fix qemu abort caused by gdb attempt to invalidate a breakpoint by virtual address for which there's no mapping. # gpg: Signature made Thu 07 Nov 2013 09:32:19 PM PST using RSA key ID F83FA044 # gpg: Can't check signature: public key not found # By Max Filippov # Via Max Filippov * filippov/tags/20131108-xtensa: target-xtensa: add missing DEBUG section to dc233c config exec: fix breakpoint_invalidate when pc may not be translated Message-id: 1383889643-21621-1-git-send-email-jcmvbkbc@xxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 9f43a3f541019a5836247c8cfdfc5fef89cf077d Merge: 6bddfae 73204cf Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 13 11:46:23 2013 -0800 Merge remote-tracking branch 'kraxel/audio.3' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * kraxel/audio.3: ossaudio: check for oss support in oss_audio_init Revert "ossaudio: do not enable by default" Message-id: 1383823947-5132-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 6bddfae306001c6e474ff97ef59c518568ea5af4 Merge: 964668b 20d155b Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 13 11:45:58 2013 -0800 Merge remote-tracking branch 'sweil/mingw' into staging # By Stefan Weil # Via Stefan Weil * sweil/mingw: linux-user: Fix stat64 syscall for SPARC64 configure: Add config.status to recreate the current configuration nsis: Improved support for parallel installation of 32 and 64 bit code Message-id: 1383804909-376-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 3325a83627de3e3bd9a97548f13bbb53b354d970 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 10 15:58:19 2013 +0100 console: Remove unused debug code The local function console_print_text_attributes is no longer used since commit 7d6ba01c3741bc32ae252bf64a5fd3f930c2df4f. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ba1c29310904b34265203e86e133fe177e9f6511 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Nov 10 18:49:11 2013 +0100 qga: Fix compilation for old versions of MinGW While MinGW-w64 can compile the qga code, MinGW from Debian lenny (gcc-mingw32 4.4.2-3) shows these errors: In file included from qga/vss-win32.c:17: qga/vss-win32/requester.h:31: error: expected »=«, »,«, »;«, »asm« or »__attribute__« before »requester_init« qga/vss-win32/requester.h:32: error: expected »=«, »,«, »;«, »asm« or »__attribute__« before »requester_deinit« The macro STDAPI is unknown, so add the missing include file which defines it. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit fe863ab9855478e693d63f306141eb242217b424 Author: Alex Bennée <alex@xxxxxxxxxx> Date: Wed Nov 6 10:43:37 2013 +0000 .travis.yml: basic compile and check recipes This adds a build matrix definition for travis-ci.org continuous integration service. It is usable on any public repository hosted on GitHub. Once you have created an account signed into Travis you can enable it on selected projects via travis-ci.org/profile. Alternatively you can configure the service hooks on GitHub via the repository Settings tab,then Service Hooks and selecting Travis. Once setup Travis will automatically test every push as well as any pull requests submitted to that repository. The build matrix is currently split by target architecture (see TARGETS environment variable) because a full build of QEMU can take some time. This way you get quick feedback for any obvious errors. The additional environment variables exist to allow additional builds to tweak the environment. These are: EXTRA_CONFIG - extra terms passed to configure EXTRA_PKGS - extra dev packages to install TEST_CMD - default "make check", can be overridden I've confined the additional stuff to x86/x86_64 for convenience. As Travis supports clang the main builds are done twice (once for gcc and once for clang). However clang is disabled for the debug/trace builds for the purposes of brevity. Other wrinkles: * The lttng user-space tracing back-end is disabled (it is currently horribly broken) * The ftrace back-end doesn't run "make check" (it requires a mounted debugfs to work) * There are two debug enabled build (with and without TCG interpreter) Signed-off-by: Alex Bennée <alex@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 25a666d2ec0ab6e84489d50495b4c3e250531426 Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Fri Oct 11 11:52:30 2013 -0400 pci-assign: Fix error_report of pci-stub message Using multiple calls to error_report here means every line is prefaced with the (potentially long) pci-assign command line arguments. Use a single error_printf to preserve the intended formatting. Since this code path is always preceded by an error_report call, we don't lose the command line reporting. Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 669aa3f6bdf49663cb5cbceac605c020750263d6 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Nov 1 17:35:29 2013 +0800 qapi: Fix comment for create-type to match code. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 8111d0287821a9b2a2faefbf0be1f345dbe93222 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Tue Oct 29 08:36:31 2013 +0400 vl: fix build when configured with no graphic support The following error occurs when building with no graphic output support: vl.c: In function â??mainâ??: vl.c:2829:19: error: variable â??dsâ?? set but not used [-Werror=unused-but-set-variable] DisplayState *ds; ^ cc1: all warnings being treated as errors To reproduce this issue, just run: $ ./configure \ --disable-curses \ --disable-sdl \ --disable-cocoa \ --disable-gtk \ --disable-vnc \ --enable-werror $ make vl.o Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit d9570cadd54115dd1b2bdff7d43c0d4f840e65e5 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Oct 29 15:44:31 2013 +0100 usb: drop unused USBNetState.inpkt field Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 4c6968c7a03d5e4805dad09aba0491e12b16a596 Author: Jan Krupa <JKrupa@xxxxxxxx> Date: Wed Oct 16 14:40:06 2013 +0200 qemu-char: add missing characters used in keymaps This patch adds all missing characters used in regional keymap files which already exist in QEMU. I checked for the missing characters by going through all of the keymaps and matching that with records in vnc_keysym.h. If the key wasn't found I looked it up in libxkbcommon library [1]. If I understood it correctly this is also the same place where most of the keymaps were exported from according to the comment on the first line in those files. I was able to find all symbols except "quotebl" used in Netherland keymap. I tested this update with Czech keyboard by myself. I also asked Matej Serc to test Slovenian keyboard layout - he reported problems with it few days ago on this mailing list. Both layouts seems to work fine. I wasn't able to test the remaining layouts but since this change doesn't modify any existing symbols, just adds new ones, I don't expect any sideeffects. [1] http://cgit.freedesktop.org/xorg/lib/libxkbcommon Signed-off-by: Jan Krupa <jkrupa@xxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 828071592470d0703a283433ea195295dab0ad7d Author: Jan Krupa <JKrupa@xxxxxxxx> Date: Wed Oct 16 14:40:05 2013 +0200 qemu-char: add support for U-prefixed symbols This patch adds support for Unicode symbols in keymap files. This feature was already used in some keyboard layouts in QEMU generated from XKB (e.g. Arabic) but it wasn't implemented in QEMU source code. There is no need for check of validity of the hex string after U character because strtol returns 0 in case the conversion was unsuccessful. Signed-off-by: Jan Krupa <jkrupa@xxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 3751e72246b3efd9902bddc7fbd20df8f86bab21 Author: Jan Krupa <JKrupa@xxxxxxxx> Date: Wed Oct 16 14:40:04 2013 +0200 qemu-char: add Czech keymap file This patch adds Czech keyboard layout to available keymap files and Makefile. Signed-off-by: Jan Krupa <jkrupa@xxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 018715f96cc1315df355743a1f807e1b95d2a10f Author: Jan Krupa <JKrupa@xxxxxxxx> Date: Wed Oct 16 14:40:03 2013 +0200 qemu-char: add Czech characters to VNC keysyms This patch adds missing Czech characters to the VNC keysym table. Signed-off-by: Jan Krupa <jkrupa@xxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit dce07e0b2b172ccce43955fdee2149ab2413251b Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Tue Nov 5 16:09:37 2013 -0500 MAINTAINERS: add git tree info for HMP, QMP and QAPI Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 7b75d9d61bf9b7b43f6df2fb2fbfc38c4eb9d2e9 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Oct 31 13:26:01 2013 -0700 Adjust qapi-visit for python-2.4.3 We say we support python 2.4, but python 2.4.3 does not support the "expr if test else expr" syntax used here. This allows QEMU to compile on RHEL 5.3, the last release for ia64. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit ef9e455d645bed6d2360cd658dc00ca11a849877 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Nov 10 11:54:33 2013 +0200 Revert "exec: limit system memory size" This reverts commit 818f86b88394b7b2b59d313e51043fe15a8004db. This was a work-around for bugs elsewhere in the system, exposed by commit a53ae8e934cd54686875b5bcfc2f434244ee55d6: "hw/pci: partially handle pci master abort" since that's reverted now, the work-around is not required for 1.7 anymore. The proper fix is supporting full 64 bit addresses in the radix tree. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Tested-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> commit 0fbf50b6ec126600dca115adb1563c657cc27695 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Sun Nov 10 11:49:57 2013 +0200 Revert "hw/pci: partially handle pci master abort" This reverts commit a53ae8e934cd54686875b5bcfc2f434244ee55d6. The patch being reverted introduced a low-priority memory region covering all 64 bit pci address space. This exposed the following bugs elsewhere in the code: 1. Some memory regions have INT64_MAX size, where the intent was all 64 bit address space. This results in a sub-page region, should be UINT64_MAX. 2. page table rendering in exec.c ignores physical address bits above TARGET_PHYS_ADDR_SPACE_BITS. Access outside this range (e.g. from device DMA, or gdb stub) ends up with a wrong region. Registering a region outside this range leads to page table corruption. 3. Some regions overlap PCI hole and have same priority. This only works as long as no device uses the overlapping address. It doesn't look like we can resolve all issues in time for 1.7. Let's fix the bugs first and apply afterwards for 1.8. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit fe1479aa251971abd3842dee4a783d4ebace8fb8 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Nov 10 11:53:30 2013 +0200 loader: drop return value for rom_add_blob_fixed rom_add_blob never fails, and neither does rom_add_blob_fixed, so there's no need to return value from it. In fact, rom_add_blob_fixed was erroneously returning -1 unconditionally which made the only system that checked the return value -M bamboo fail to start. Drop the return value and drop checks from ppc440_bamboo to fix this failure. Reported-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 81adc5131534ca7554cebe64cd8f86bac28dbd1b Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Thu Nov 7 14:12:05 2013 +0200 acpi-build: disable with -no-acpi QEMU will currently crash if started with -no-acpi flag since acpi build code probes the PM device which isn't present in this configuration. To fix, don't expose ACPI tables to guest when acpi has been disabled from command line. Fixes LP# 1248854 https://bugs.launchpad.net/qemu/+bug/1248854 Reported-by: chao zhou <chao.zhou@xxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 6b9b8758c15f3bc2875dbd6e2d03c5362b8d6902 Author: Jason Wang <jasowang@xxxxxxxxxx> Date: Wed Nov 6 16:58:08 2013 +0800 virtio-net: only delete bh that existed We delete without check whether it existed during exit. This will lead NULL pointer deference since it was created conditionally depends on guest driver status and features. So add a check of existence before trying to delete it. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 04c7d8b8dea724f1007f0f6e76047ff03b4cb24f Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Tue Nov 5 18:46:27 2013 -0500 Fix pc migration from qemu <= 1.5 The following commit introduced a migration incompatibility: commit 568f0690fd9aa4d39d84b04c1a5dbb53a915c3fe Author: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Date: Thu Jun 6 18:48:49 2013 +1000 pci: Replace pci_find_domain() with more general pci_root_bus_path() The issue is that i440fx savevm idstr went from 0000:00:00.0/I440FX to 0000:00.0/I440FX. Unfortunately we are stuck with the breakage for 1.6 machine types. Add a compat property to maintain the busted idstr for the 1.6 machine types, but revert to the old style format for 1.7+, and <= 1.5. Tested with migration from qemu 1.5, qemu 1.6, and qemu.git. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit cc386e96727442f5b67052d4e0a602f6f652ffe6 Author: Dmitry Fleytman <dfleytma@xxxxxxxxxx> Date: Sun Sep 22 18:09:13 2013 +0300 virtio-net: broken RX filtering logic fixed Upon processing of VIRTIO_NET_CTRL_MAC_TABLE_SET command multicast list overwrites unicast list in mac_table. This leads to broken logic for both unicast and multicast RX filtering. Signed-off-by: Dmitry Fleytman <dfleytma@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1597591cca8a8fa20b8872937b859ec2aaccba6c Author: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Date: Tue Nov 5 10:54:29 2013 +0400 net: fix qemu_flush_queued_packets() in presence of a hub Do not return after net_hub_flush(). Always flush callee network client incoming queue. Signed-off-by: Sergey Fedorov <s.fedorov@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d60b20cf2ae6644b05159b9361cba83fb6c0cb84 Author: Dmitry Krivenok <krivenok.dmitry@xxxxxxxxx> Date: Mon Oct 21 12:08:44 2013 +0400 net: disallow to specify multicast MAC address [Assigning a multicast MAC address to a NIC leads to confusing behavior. Reject multicast MAC addresses so users are alerted to their error straight away. The "net/eth.h" in6_addr rename prevents a name collision with <netinet/in.h> on Linux. -- Stefan] Signed-off-by: Dmitry V. Krivenok <krivenok.dmitry@xxxxxxxxx> Reviewed-by: Amos Kong <kongjianjun@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7e382003f1bd9d8a441ecc5ac8a74bad3564d943 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Nov 6 19:48:06 2013 +0800 block: Round up total_sectors Since b94a2610, bdrv_getlength() is omitted when probing image. VMDK monolithicFlat is broken by that because a file < 512 bytes can't be read with its total_sectors truncated to 0. This patch round up the size to BDRV_SECTOR_SIZE, when a image size is not sector aligned. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ebbfd5a094ead6f28d45718f97b4837bd3e7f916 Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Sun Oct 20 04:15:23 2013 +0400 target-xtensa: add missing DEBUG section to dc233c config This fixes missing debug feature opcodes of dc233c core variant. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> commit e8262a1b5b7cfbcbc80c46e4ce6ff7c517b7b2f6 Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Fri Sep 27 22:29:17 2013 +0400 exec: fix breakpoint_invalidate when pc may not be translated This fixes qemu abort with the following message: include/qemu/int128.h:22: int128_get64: Assertion `!a.hi' failed. which happens due to attempt to invalidate breakpoint by virtual address for which get_phys_page_debug couldn't find mapping. For more details see http://lists.nongnu.org/archive/html/qemu-devel/2013-09/msg04582.html Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 9d0e1dac108ce90cbe62c89af57a7ace006f5152 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Oct 15 16:00:33 2013 +1100 pseries: Update SLOF firmware image SLOF git commit is e2e8ac901e617573ea383f9cffd136146d0675a4 The main changes are: * fixed bug with not passing arguments from -append * client-architecture-support hypercall * netboot * USB stack fixes The full list of changes: > client-architecture-support: fix wrong version read > client-architecture-support: fix redundant stack drop > Update device tree returned by CAS hypercall > fdt: introduce fdt-init > Add ibm,client-architecture-support method > Kernel parameter passed from qemu commandline ignored > Allow more than one client to open net devices simultaneously > ci: add missing close in else condition > Add GPT support > pci: fix interrupt-map for bridges > usb-ohci: preserve the toggleCarry bit in ED > usb-ohci: done_head processing fixes > usb-ohci: update init and rationalize timings > usb-msc: handle stall and other fixes > scsi: make probe more error resilient > usb-core: Add CLEAR FEATURE api > Implement range allocator > Remove bcm57xx network driver as module > Remove e1000 network driver as module > Remove virtio-net network driver as module > Remove veth network driver as module > Add missing close-dev in ping > Remove lodable network driver modules and related functions > Add bcm57xx network driver in libbcm > Add e1000 network driver in libe1k > Add virtio-net driver in libvirtio > Add veth driver in libveth > Get MAC address for client interface module > Add SLOF usleep wrapper > Add SLOF pci wrapper functions > Fix 'canon' client interface Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 29fdedfed54db4b04fe391ce8a4d9bf5ff86218e Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Oct 11 14:08:20 2013 +1100 spapr: add vio-bus devices to categories In order to get devices appear in output of "./qemu-system-ppc64 -device ?", they must be assigned to one of DEVICE_CATEGORY_XXXX. This puts VIO devices classes to corresponding categories. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit e78835b722eb26f5a56370166e99b69e9751ea2a Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:56 2013 -0400 block: vhdx qemu-iotest - log replay of data sector This tests the replay of a data sector in a VHDX image file. The image file is a 10G dynamic image, with 4MB block size. The image was created with qemu-img, and the log left unplayed by modification of the vhdx image format driver. It was verified under both QEMU and Hyper-V that the image file, post log replay, matched. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 751aec24cdcd4359b5927df5cebfe6b8d3e74515 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:55 2013 -0400 block: qemu-iotests for vhdx, add write test support This removes the IMGFMT_GENERIC blocker for read-only, so existing iotests run read/write tests for vhdx images created by qemu-img (e.g. tests 001, 002, 003). In addition, this updates the sample image test for the Hyper-V created image, to verify we can write it as well. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 228b234dd73383408743d749d29a6c37e9d99981 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:54 2013 -0400 block: vhdx - update _make_test_img() to filter out vhdx options The non-global option output is suppresed in _make_test_img() for output verification in the 0?? tests. This adds suppression for the vhdx-unique options as well. This allows check -vhdx to run successfully. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3412f7b1bd8f250c34c9f933767d06b9444bb821 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:53 2013 -0400 block: vhdx - add .bdrv_create() support This adds support for VHDX image creation, for images of type "Fixed" and "Dynamic". "Differencing" types (i.e., VHDX images with backing files) are currently not supported. Options for image creation include: * log size: The size of the journaling log for VHDX. Minimum is 1MB, and it must be a multiple of 1MB. Invalid log sizes will be silently fixed by rounding up to the nearest MB. Default is 1MB. * block size: This is the size of a payload block. The range is 1MB to 256MB, inclusive, and must be a multiple of 1MB as well. Invalid sizes and multiples will be silently fixed. If '0' is passed, then a sane size is chosen (depending on virtual image size). Default is 0 (Auto-select). * subformat: - "dynamic" An image without data pre-allocated. - "fixed" An image with data pre-allocated. Default is "dynamic" When creating the image file, the lettered sections are created: -----------------------------------------------------------------. | (A) | (B) | (C) | (D) | (E) | File ID | Header1 | Header 2 | Region Tbl 1 | Region Tbl 2 | | | | | .-----------------------------------------------------------------. 0 64KB 128KB 192KB 256KB 320KB .---- ~ ----------- ~ ------------ ~ ---------------- ~ -----------. | (F) | (G) | (H) | | Journal Log | BAT / Bitmap | Metadata | .... data ...... | | | | .---- ~ ----------- ~ ------------ ~ ---------------- ~ -----------. 1MB (var.) (var.) (var.) Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 61c02e5687dcc581c9d3413b61040b023adeaa9c Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:52 2013 -0400 block: vhdx - fix comment typos in header, fix incorrect struct fields VHDXPage83Data and VHDXParentLocatorHeader both incorrectly had their MSGUID fields set as arrays of 16. This is incorrect (it stems from an early version where those fields were uint_8 arrays). Those fields were, up to this patch, unused. Also, there were a couple of typos and incorrect wording in comments, and those have been fixed up as well. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1e74a971cb3229813112c74dca81e599812b66f3 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:51 2013 -0400 block: vhdx - break out code operations to functions This is preperation for vhdx_create(). The ability to write headers, and calculate the number of BAT entries will be needed within the create() functions, so move this relevant code into helper functions. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c325ee1de84dde5b2a90c30e1b788defa31c5d53 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:50 2013 -0400 block: vhdx - move more endian translations to vhdx-endian.c In preparation for vhdx_create(), move more endian translation functions out to vhdx-endian.c. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0b7da092b40734538631c3ad461c1753a87535fc Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:49 2013 -0400 block: vhdx - remove BAT file offset bit shifting Bit shifting can be fun, but in this case it was unnecessary. The upper 44 bits of the 64-bit BAT entry is specifies the File Offset, so we shifted the bits to get access to the value. However, per the spec the value is in MB. So we dutifully shifted back to the left by 20 bits, to convert to a true uint64_t file offset. This replaces those steps with just a bit mask, to get rid of the lower 20 bits instead. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d92aa8833c051b53d3bf2614ff885df0037f10bb Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:48 2013 -0400 block: vhdx write support This adds support for writing to VHDX image files, using coroutines. Writes into the BAT table goes through the VHDX log. Currently, BAT table writes occur when expanding a dynamic VHDX file, and allocating a new BAT entry. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8adc52336d9c44ab4c7b9358a7be22ac0ef962bf Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:47 2013 -0400 block: vhdx - add log write support This adds support for writing to the VHDX log. For spec details, see VHDX Specification Format v1.00: https://www.microsoft.com/en-us/download/details.aspx?id=34750 There are a few limitations to this log support: 1.) There is no caching yet 2.) The log is flushed after each entry The primary write interface, vhdx_log_write_and_flush(), performs a log write followed by an immediate flush of the log. As each log entry sector is a minimum of 4KB, partial sector writes are filled in with data from the disk write destination. If the current file log GUID is 0, a new GUID is generated and updated in the header. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1a848fd4517820981b542e0d10e64c0426414229 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:46 2013 -0400 block: vhdx - add region overlap detection for image files Regions in the image file cannot overlap - the log, region tables, and metdata must all be unique and non-overlapping. This adds region checking by means of a QLIST; there can be a variable number of regions and metadata (there may be metadata or region tables that we do not recognize / know about, but are not required). This adds the capability to register a region for later checking, and to check against registered regions for any overlap. Also, if neither the BAT or Metadata region tables are found, return error. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0a43a1b5d7c33208120eeb2d98ebb9ab15dc2c87 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:45 2013 -0400 block: vhdx - log parsing, replay, and flush support This adds support for VHDX v0 logs, as specified in Microsoft's VHDX Specification Format v1.00: https://www.microsoft.com/en-us/download/details.aspx?id=34750 The following support is added: * Log parsing, and validation - validate that an existing log is correct. * Log search - search through an existing log, to find any valid sequence of entries. * Log replay and flush - replay an existing log, and flush/clear the log when complete. The VHDX log is a circular buffer, with elements (sectors) of 4KB. A log entry is a variably-length number of sectors, that is comprised of a header and 'descriptors', that describe each sector. A log may contain multiple entries, know as a log sequence. In a log sequence, each log entry immediately follows the previous entry, with an incrementing sequence number. There can only ever be one active and valid sequence in the log. Each log entry must match the file log GUID in order to be valid (along with other criteria). Once we have flushed all valid log entries, we marked the file log GUID to be zero, which indicates a buffer with no valid entries. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c46415afc2c99ea052f52f9d68ed9a78799f2c10 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:44 2013 -0400 block: vhdx code movement - move vhdx_close() above vhdx_open() Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c3906c5e8281b37a526c706596af8575d6ac00d3 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:43 2013 -0400 block: vhdx - update log guid in header, and first write tracker Allow tracking of first file write in the VHDX image, as well as the ability to update the GUID in the header. This is in preparation for log support. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0f48e8f0978afe0bd44c63749e7df6411da6c437 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:42 2013 -0400 block: vhdx - break endian translation functions out This moves the endian translation functions out from the vhdx.c source, into a separate source file. In addition to the previously defined endian functions, new endian translation functions for log support are added as well. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 625565d27e8d7c7f7238ccd118a2cd49c1c52963 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:41 2013 -0400 block: vhdx - log support struct and defines This adds some magic number defines, and internal structure definitions for VHDX log replay support. The struct VHDXLogEntries does not reflect an on-disk data structure, and thus does not need to be packed. Some minor code style fixes are applied as well. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 28541d46280733b9afe7b106a3a6665275a45e5f Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:40 2013 -0400 block: vhdx code movement - VHDXMetadataEntries and BDRVVHDXState to header. In preparation for VHDX log support, move these structures to the header. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4f18b7824ab5eda9fe051f5b24e90e5f34d08a23 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:39 2013 -0400 block: vhdx - add header update capability. This adds the ability to update the headers in a VHDX image, including generating a new MS-compatible GUID. As VHDX depends on uuid.h, VHDX is now a configurable build option. If VHDX support is enabled, that will also enable uuid as well. The default is to have VHDX enabled. To enable/disable VHDX: --enable-vhdx, --disable-vhdx Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6e9d290bf62406098ca3d7bf3796463681ed3c39 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Oct 30 10:44:38 2013 -0400 block: vhdx - minor comments and typo correction. Just a couple of minor comments to help note where allocated buffers are freed, and a typo fix. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0173e7bbf3c892abd4e35507ddeb2f23c1a44829 Author: Peter Lieven <pl@xxxxxxx> Date: Mon Oct 21 16:00:18 2013 +0200 block/vpc: fix virtual size for images created with disk2vhd Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 17826bc159893300a05551d8a830275c5ecf0092 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Nov 5 20:03:33 2013 +0100 block: Save errno before error_setg_errno error_setg_errno() may overwrite errno; therefore, its value should be read before calling that function and not afterwards. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 43cd209803d6cffb1e1a028c9ff2fd0ff4fce954 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Oct 30 14:54:35 2013 +0100 qdev-monitor-test: add device_add leak test cases Ensure that the device_add error code path deletes device objects. Failure to do so not only leaks the objects but can also keep other objects (like drive or netdev) alive due to qdev properties holding references. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 7ceeedd016facf8d58e14a0d1417fa7225d71072 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Oct 30 14:54:34 2013 +0100 blockdev-test: add test case for drive_add duplicate IDs The following should work: (qemu) drive_add if=none,id=drive0 (qemu) drive_del drive0 (qemu) drive_add if=none,id=drive0 Previous versions of QEMU produced a duplicate ID error because drive_add leaked the options. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 0c460dac03e7919079525d8e24ef2c4c607c219d Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Oct 30 14:54:33 2013 +0100 libqtest: add qmp(fmt, ...) -> QDict* function Add a qtest qmp() function that returns the response object. This allows test cases to verify the result or to check for error responses. It also allows waiting for QMP events. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> commit 0d1aa05e9eba2437fdcdfbaa846c850c986bf7c6 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Oct 30 14:54:32 2013 +0100 libqtest: rename qmp() to qmp_discard_response() Existing qmp() callers do not expect a response object. In order to implement real QMP test cases it will be necessary to inspect the response object. Rename qmp() to qmp_discard_response(). Later patches will introduce a qmp() function that returns the response object and tests that use it. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> commit ec9c10d29c6bb5613a680af62f5825d3bb2d31d4 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Oct 30 14:54:30 2013 +0100 blockdev: fix drive_init() opts and bs_opts leaks These memory leaks also make drive_add if=none,id=drive0 without a file= option leak the options list. This keeps ID "drive0" around forever. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit db5dc557288fb1b7a17ffabe3b92f299fc2dc187 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Oct 31 11:57:42 2013 -0400 block: qemu-iotests, add quotes to $TEST_IMG usage in 061 When creating images with backing files in the test, the backing file argument was not quoted properly. This caused the test to fail when run from a pathname with a space. Pass the backing argument in with the -b option to _make_test_img, so it can be properly quoted. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1ab391938d29ebc3956d07b622c987c350434eaf Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Oct 31 11:57:41 2013 -0400 block: qemu-iotests, add quotes to $TEST_IMG usage for 051 There were still a couple of instances of unquoted usage of $TEST_IMG and $TEST_IMG.orig. Quoted these so they will not fail on pathnames with spaces in them. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f897e3939cbbcec26e99415a499654ae7ae09b64 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Oct 31 11:57:40 2013 -0400 block: qemu-iotests, removes duplicate double quotes in 039 Test 039 had $TEST_IMG with duplicate double quotes - remove duplicate. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3cbe3e8d25529ecb4e1838d1c6856e199b3a66d4 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Oct 31 11:57:39 2013 -0400 block: qemu-iotests, add quotes to $TEST_IMG usage in 019 There were still instances of $TEST_IMG not being properly quoted. This was in the usage of a string built up for a 'for' loop; modify the loop so we can quote $TEST_IMG properly. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 02cde1688131090d3abb2f210e30a44d96804167 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Oct 31 11:57:38 2013 -0400 block: qemu-iotests, add quotes to $TEST_IMG.base usage in 017 $TEST_IMG.base is used unquoted. Add quotes so that pathnames with spaces are supported. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0018c03f5d37f3a7df23eef0e9f1e6e6189ed634 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Oct 31 11:57:37 2013 -0400 block: qemu-iotests, fix _make_test_img() to work with spaced pathnames _make_test_img() currently works with spaced pathnames only when not specifying a backing file. This fixes it so that the backing file argument is properly quoted. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0084043888f6773d905c1b5d644b89c79d1c7714 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Thu Oct 31 11:57:36 2013 -0400 block: qemu-iotests, add quotes to $TEST_IMG usage io pattern tests The usage of $TEST_IMG was not properly quoted everywhere in common.pattern. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 511018e4b49a5f0f1c7b051bb79fe8eccbb590fe Author: Andreas Tobler <andreast@xxxxxxxxxxx> Date: Thu Oct 31 22:41:46 2013 +0100 block/raw-posix: fix FreeBSD compilation The below patch is needed to compile qemu trunk on FreeBSD with gcc48, clang will fail.... ;). Host x84_64-freebsd. Signed-off-by: Andreas Tobler <andreast@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 64815e2a966f0a3f18818b9d542f1ef02dc992a2 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Sat Nov 2 14:52:11 2013 +0100 qemu-iotests: Filter out actual image size in 067 The actual size of the image file may differ depending on the Linux kernel currently running on the host. Filtering out this value makes this test pass in such cases. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a9a443c874cf92b583852cf8ea5b75df8580df32 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Nov 1 17:35:29 2013 +0800 qapi: Fix comment for create-type to match code. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 73204cffe55ce65b3a344afc3da637d67beb8c32 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Nov 7 12:24:41 2013 +0100 ossaudio: check for oss support in oss_audio_init Check whenever the device path (/dev/dsp by default) exists and qemu is allowed to access it. Return NULL if it isn't, so ossaudio will not be used on systems wihtout oss support (increasinly common on modern linux systems). Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 926de75432d57cade393750da8102f3ba1eeb4a0 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Nov 7 12:25:02 2013 +0100 Revert "ossaudio: do not enable by default" This reverts commit c905c5012ac0c6fde3b8094d2206a3139deddba2. There is a better fix for the issue at hand. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit ef4cbe14342c1f63b3c754e306218f004f4e26c4 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Nov 6 22:35:27 2013 +0100 kvm: Fix uninitialized cpuid_data This error was reported by valgrind when running qemu-system-x86_64 with kvm: ==975== Conditional jump or move depends on uninitialised value(s) ==975== at 0x521C38: cpuid_find_entry (kvm.c:176) ==975== by 0x5235BA: kvm_arch_init_vcpu (kvm.c:686) ==975== by 0x4D5175: kvm_init_vcpu (kvm-all.c:267) ==975== by 0x45035B: qemu_kvm_cpu_thread_fn (cpus.c:858) ==975== by 0xD361E0D: start_thread (pthread_create.c:311) ==975== by 0xD65E9EC: clone (clone.S:113) ==975== Uninitialised value was created by a stack allocation ==975== at 0x5226E4: kvm_arch_init_vcpu (kvm.c:446) Instead of adding more memset calls for parts of cpuid_data, the existing calls were removed and cpuid_data is now initialized completely in one call. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit 3a902babf1d7b5ef1ffa8bc95be271fe1270c2f6 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Mon Nov 4 14:42:55 2013 +0100 pci-assign: Remove dead code for direct I/O region access from userspace This feature was already deprecated back then in qemu-kvm, ie. before pci-assign went upstream. assigned_dev_ioport_rw will never be invoked with resource_fd < 0. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Acked-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit 20d155bc902f41c5b354937e730ad85b43614ae9 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Oct 30 22:52:24 2013 +0100 linux-user: Fix stat64 syscall for SPARC64 Some targets use a stat64 structure for the stat64 syscall while others use a stat structure. SPARC64 used the wrong kind. Instead of extending the conditional compilation in syscall.c, now a macro TARGET_HAS_STRUCT_STAT64 is defined whenever a target has a target_stat64. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Erik de Castro Lopo <erikd@xxxxxxxxxxxxx> commit bdf523e6923f1e667055e947e71fc600549cefae Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Oct 20 18:39:21 2013 +0200 configure: Add config.status to recreate the current configuration The latest configure invocation was saved in config-host.mak and could be extracted from that file to recreate the configuration. Now it is saved in a new file config.status which can be directly executed to recreate the configuration. The file name and the comments were copied from GNU autoconf. Makefile now uses config.status, but also includes transitional code for the old mechanism. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> commit 40b9cc5e40ca69c15a2243852fa20fd1a35a0ea6 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Sep 28 10:34:30 2013 +0200 nsis: Improved support for parallel installation of 32 and 64 bit code 32 and 64 bit variants of QEMU already had different default installation directories, but used a common registry key for saving the choosen directory. This is confusing for users who want to install both variants, so fix it by using different registry keys. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 964668b03d26f0b5baa5e5aff0c966f4fcb76e9e Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Wed Nov 6 21:49:39 2013 -0800 Update version for 1.7.0-rc0 release Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 898ae2846de4dcb19da0b80f99ef2215dd137e56 Author: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 4 17:07:16 2013 +0800 sdl: Reverse support for video mode setting Currently, If the setting of video mode failed, qemu will exit. It should go back to the previous setting if the new screen resolution failed. This patch fixes LP#1216368, add support to revert to existing surface for the failure of video mode setting. Reported-by: Sascha Krissler <sascha@xxxxxxxxx> Signed-off-by: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Message-id: 1378285636-7091-1-git-send-email-lilei@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 5f3e31012e334f3410e04abae7f88565df17c91a Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Oct 28 17:32:18 2013 +0100 timers: fix stop/cont with -icount Stop/cont commands are broken with -icount due to a deadlock. The real problem is that the computation of timers_state.cpu_ticks_offset makes no sense with -icount enabled: we set it to an icount clock value in cpu_disable_ticks, and subtract a TSC (or similar, whatever cpu_get_real_ticks happens to return) value in cpu_enable_ticks. The fix is simple. timers_state.cpu_ticks_offset is only used together with cpu_get_real_ticks, so we can use cpu_get_real_ticks in cpu_disable_ticks. There is no need to update cpu_ticks_prev at the time cpu_disable_ticks is called; instead, we can do it the next time cpu_get_ticks is called. The change to cpu_disable_ticks is the important part of the patch. The rest modifies the code to always check timers_state.cpu_ticks_prev, even when the ticks are not advancing (i.e. the VM is stopped). It also makes a similar change to cpu_get_clock_locked, so that the code remains similar for cpu_get_ticks and cpu_get_clock_locked. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Message-id: 1382977938-13844-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit cd5be5829c1ce87aa6b3a7806524fac07ac9a757 Author: Amos Kong <akong@xxxxxxxxxx> Date: Tue Nov 5 19:17:18 2013 +0800 e1000/rtl8139: update HMP NIC when every bit is written We currently just update the HMP NIC info when the last bit of macaddr is written. This assumes that guest driver will write all the macaddr from bit 0 to bit 5 when it changes the macaddr, this is the current behavior of linux driver (e1000/rtl8139cp), but we can't do this assumption. The macaddr that is used for rx-filter will be updated when every bit is changed. This patch updates the e1000/rtl8139 nic to update HMP NIC info when every bit is changed. It will be same as virtio-net. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Message-id: 1383650238-16015-1-git-send-email-akong@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit fe2dafa02de4f80ab36f6e0f4ddfcd6418c03c49 Author: Jason Wang <jasowang@xxxxxxxxxx> Date: Wed Nov 6 16:58:08 2013 +0800 virtio-net: only delete bh that existed We delete without check whether it existed during exit. This will lead NULL pointer deference since it was created conditionally depends on guest driver status and features. So add a check of existence before trying to delete it. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383728288-28469-1-git-send-email-jasowang@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit c2d30667760e3d7b81290d801e567d4f758825ca Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Wed Aug 14 13:29:43 2013 +0200 rtc: remove dead SQW IRQ code This was once introduced by commit 100d9891d6 but was never used in-tree and then got broken by commit 32e0c8260d. Time to clean up. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Message-id: 520B6A27.4040207@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 2c8ebac7ccf51a8e683de593c4240d2ed7d592ec Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Tue Nov 5 16:15:54 2013 +0100 vga: fix invalid read after free After calling dpy_gfx_replace_surface(s->con, surface), the outer surface is invalid. ==5370== Invalid read of size 4 ==5370== at 0x460229: surface_bits_per_pixel (console.h:250) ==5370== by 0x466A81: get_depth_index (vga.c:1173) ==5370== by 0x467EC2: vga_draw_graphic (vga.c:1718) ==5370== by 0x4687A5: vga_update_display (vga.c:1914) ==5370== by 0x2A782E: qxl_hw_update (qxl.c:1766) ==5370== by 0x3EB83B: graphic_hw_update (console.c:254) ==5370== by 0x3FBE31: qemu_spice_display_refresh (spice-display.c:418) ==5370== by 0x2A7D01: display_refresh (qxl.c:1886) ==5370== by 0x3EEE1C: dpy_refresh (console.c:1436) ==5370== by 0x3EB543: gui_update (console.c:192) ==5370== by 0x3C43B3: timerlist_run_timers (qemu-timer.c:488) ==5370== by 0x3C4416: qemu_clock_run_timers (qemu-timer.c:499) ==5370== Address 0x22ffb1e0 is 0 bytes inside a block of size 56 free'd ==5370== at 0x4A074C4: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5370== by 0x4245FC: free_and_trace (vl.c:2771) ==5370== by 0x50899AE: g_free (gmem.c:252) ==5370== by 0x3EE8D3: qemu_free_displaysurface (console.c:1332) ==5370== by 0x3EEDB7: dpy_gfx_replace_surface (console.c:1427) ==5370== by 0x467EB6: vga_draw_graphic (vga.c:1714) ==5370== by 0x4687A5: vga_update_display (vga.c:1914) ==5370== by 0x2A782E: qxl_hw_update (qxl.c:1766) ==5370== by 0x3EB83B: graphic_hw_update (console.c:254) ==5370== by 0x3FBE31: qemu_spice_display_refresh (spice-display.c:418) ==5370== by 0x2A7D01: display_refresh (qxl.c:1886) ==5370== by 0x3EEE1C: dpy_refresh (console.c:1436) Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Message-id: 1383664554-15248-1-git-send-email-marcandre.lureau@xxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 5cb6be2ca3094f4b6b6fd4c44eabec0098acd3e3 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Nov 5 17:42:48 2013 +0100 tests: fix 64-bit int literals for 32-bit hosts On 32-bit hosts: CC tests/test-opts-visitor.o tests/test-opts-visitor.c: In function 'test_value': tests/test-opts-visitor.c:128: warning: integer constant is too large for 'long' type CC tests/test-bitops.o tests/test-bitops.c:34: warning: integer constant is too large for 'long' type tests/test-bitops.c:35: warning: integer constant is too large for 'long' type tests/test-bitops.c:35: warning: integer constant is too large for 'long' type CC tests/endianness-test.o tests/endianness-test.c:47: warning: integer constant is too large for 'long' type Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Message-id: 1383669768-23926-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 6f1ce94a2935dab5d0aa3bd13ecc33e352213dc7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Oct 15 15:42:34 2013 +0100 docs/memory.txt: Clarify and expand priority/overlap documentation The documentation of how overlapping memory regions behave and how the priority system works was rather brief, and confusion about priorities seems to be quite common for developers trying to understand how the memory region system works, so expand and clarify it. This includes a worked example with overlaps, documentation of the behaviour when an overlapped container has "holes", and mention that it's valid for a region to have both MMIO callbacks and subregions (and how this interacts with priorities when it does). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1381848154-31602-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 61cc919f73ea7ca134c0ac41b748981ad63a253b Author: Mike Frysinger <vapier@xxxxxxxxxx> Date: Sun Jun 30 23:30:18 2013 -0400 configure: detect endian via compile test This avoids needing to execute a program and keeping an (incomplete) list when cross-compiling. Signed-off-by: Mike Frysinger <vapier@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Tested-by: James Hogan <james.hogan@xxxxxxxxxx> [mips] Message-id: 1372649418-4987-1-git-send-email-vapier@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 8aa15b6e527f234e491a6d354bed4d10da3a01a7 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Nov 6 02:35:51 2013 +0800 tests: fix memleak in error path test for input visitor Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Message-id: 1383676551-18806-3-git-send-email-xiawenc@xxxxxxxxxxxxxxxxxx Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 3dce9cad5a6c0b0dbe0830973b270c9466c8ab4b Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Nov 6 02:35:50 2013 +0800 qapi: fix memleak by adding implict struct functions in dealloc visitor Otherwise member "base" is leaked in a qapi_free_STRUCTURE() call. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Message-id: 1383676551-18806-2-git-send-email-xiawenc@xxxxxxxxxxxxxxxxxx Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 7d579514a5a7b308b52d4e8567aa9bd1f7aa761b Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:37 2013 +0000 bswap.h: Remove cpu_to_32wu() Replace the legacy cpu_to_32wu() with stl_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-10-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit e4ef9f465cf7cbc66b85e9df4eebe13086b46f11 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:36 2013 +0000 bswap.h: Remove cpu_to_be64wu() Replace the legacy cpu_to_be64wu() with stq_be_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-9-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 6bd194ab9957361f83fdbfb22d452d97b4af28e2 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:35 2013 +0000 bswap.h: Remove cpu_to_be32wu() Replace the legacy cpu_to_be32wu() with stl_be_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-8-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit d8ee2591e495d5feb0e0250866222dedc805c8d8 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:34 2013 +0000 bswap.h: Remove cpu_to_be16wu() Replace the legacy cpu_to_be16wu() with stw_be_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-7-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 09fa8439730c707b34af6ab055fc353f6cadc57d Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:33 2013 +0000 bswap.h: Remove be32_to_cpupu() Replace the legacy be32_to_cpupu() with ldl_be_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-6-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit f567656a67e3859a8be2371c45ff66e90321a2c1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:32 2013 +0000 bswap.h: Remove le32_to_cpupu() Replace the legacy le32_to_cpupu() with ldl_le_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-5-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit c65e5de94dbe667743d1523d6b4ac301cd76b0fe Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:31 2013 +0000 bswap.h: Remove le16_to_cpupu() Replace the legacy le16_to_cpupu() with lduw_le_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-4-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 6e931878c1bde26ff594f284a6857e0d786674bc Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:30 2013 +0000 bswap.h: Remove cpu_to_le32wu() Replace the legacy cpu_to_le32wu() with stl_le_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-3-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 587ae227607d86d07b0a0fb30fff55604ff9ee80 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Nov 5 16:38:29 2013 +0000 bswap.h: Remove cpu_to_le16wu() Replace the legacy cpu_to_le16wu() with stw_le_p(). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Message-id: 1383669517-25598-2-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit a30b377e0a921bf93349dc4adb94580a3bec7ea4 Merge: c905c50 80bbaee Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 5 10:33:32 2013 -0800 Merge remote-tracking branch 'afaerber/tags/qom-devices-for-anthony' into staging QOM device refactorings * QTest coverage for all machines * QOM realize for Milkymist UART * QOM realize for ARM MPCore * device_add bug fixes and cleanups * QOM for PCMCIA/MicroDrive (last legacy IDE device) # gpg: Signature made Tue 05 Nov 2013 09:07:03 AM PST using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Andreas Färber (49) and others # Via Andreas Färber * afaerber/tags/qom-devices-for-anthony: (54 commits) pcmcia/pxa2xx: QOM'ify PXA2xxPCMCIAState ide: Drop ide_init2_with_non_qdev_drives() microdrive: Coding Style cleanups pcmcia: QOM'ify PCMCIACardState and MicroDriveState pxa: Fix typo "dettach" qom: Fix pointer to int property helpers' documentation qdev-monitor: Inline qdev_init() for device_add qdev-monitor: Avoid qdev as variable name qdev: Drop misleading qdev_free() function qdev-monitor: Unref device when device_add fails qdev-monitor: Fix crash when device_add is called with abstract driver qdev-monitor: Clean up qdev_device_add() variable naming arm11mpcore: Split off RealView MPCore arm11mpcore: Prepare for QOM embedding arm11mpcore: Convert mpcore_rirq_state to QOM realize realview_gic: Prepare for QOM embedding realview_gic: Convert to QOM realize arm11mpcore: Convert ARM11MPCorePriveState to QOM realize arm11mpcore: Split off SCU device arm11mpcore: Create container MemoryRegion in instance_init ... commit 80bbaee66ac38bcb5fe5a6f285e20457afcc8bec Author: Andreas Färber <afaerber@xxxxxxx> Date: Sat Aug 3 12:23:05 2013 +0200 pcmcia/pxa2xx: QOM'ify PXA2xxPCMCIAState Turn it into a SysBusDevice and use a container MemoryRegion. Add a link<pcmcia-card> property to the PCMCIACardState. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit e3d4d36d1bff6b1a0b68b794c33bbe8666afc840 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sat Aug 3 11:30:50 2013 +0200 ide: Drop ide_init2_with_non_qdev_drives() All its users have finally been converted. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a6cb20fcba97bffd893e532f8cc70442200d3e15 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sat Aug 3 10:32:49 2013 +0200 microdrive: Coding Style cleanups Add missing braces. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d1f2c96a81a4d18b99b7f471bf58e65c9afab33f Author: Andreas Färber <afaerber@xxxxxxx> Date: Wed Jul 17 19:46:16 2013 +0200 pcmcia: QOM'ify PCMCIACardState and MicroDriveState Turn PCMCIACardState into a device. Move callbacks to new PCMCIACardClass. Derive TYPE_MICRODRIVE from TYPE_PCMCIA_CARD. Replace ide_init2_with_non_qdev_drives(). Signed-off-by: Othmar Pasteka <pasteka@xxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 853ca11dafb625e36db036b8e83d6e2168703e1f Author: Andreas Färber <afaerber@xxxxxxx> Date: Wed Jul 17 19:06:47 2013 +0200 pxa: Fix typo "dettach" Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit a25ebcacdda4dd6e68ac62acb4c72f3f868b938d Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Oct 7 12:35:01 2013 +0300 qom: Fix pointer to int property helpers' documentation Relocate to alongside the other object_property_add_* helpers while at it. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 852e2c5008563692a8868260480e76b95bb9018c Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Oct 7 16:42:34 2013 +0200 qdev-monitor: Inline qdev_init() for device_add For historic reasons, qdev_init() unparents the device on failure. Inline this to make the error paths clearer and consistent. Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 2bcb0c62f620a7033e9e25c5b645d50bf9e6a8f2 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Oct 7 16:17:54 2013 +0200 qdev-monitor: Avoid qdev as variable name Prepares for bringing error cleanup code into canonical QOM form. Includes a whitespace removal after curly brace by Stefan. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 02a5c4c97422b40034f31265e0f139f7846172a8 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Sep 11 14:54:09 2013 +0200 qdev: Drop misleading qdev_free() function The qdev_free() function name is misleading since all the function does is unlink the device from its parent. The device is not necessarily freed. The device will be freed when its QObject refcount reaches zero. It is usual for the parent (bus) to hold the final reference but there are cases where something else holds a reference so "free" is a misleading name. Call object_unparent(obj) directly instead of having a qdev wrapper function. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ee6abeb6ec08473713848ce9028110f1684853b7 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Sep 10 18:21:08 2013 +0200 qdev-monitor: Unref device when device_add fails qdev_device_add() leaks the created device upon failure. I suspect this problem crept in because qdev_free() unparents the device but does not drop a reference - confusing name. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 2fa4e56d88aa0039062bbc7f9a88e9f90c77ed94 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Tue Sep 17 15:32:32 2013 +0200 qdev-monitor: Fix crash when device_add is called with abstract driver User is able to crash running QEMU when following monitor command is called: device_add intel-hda-generic Crash is caused by assertion in object_initialize_with_type() when type is abstract. Checking if type is abstract before instance is created in qdev_device_add() allows to prevent crash on incorrect user input. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f4d85795605c7dc594c013221a4b6d62967bd8ab Author: Andreas Färber <afaerber@xxxxxxx> Date: Sat Aug 24 01:21:22 2013 +0200 qdev-monitor: Clean up qdev_device_add() variable naming Avoid confusion between object (obj) and object class (oc). Tidy DeviceClass variable while at it (k -> dc). Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 9c219b7be6eeaf31dccaf9b74d738e0ce2ea813b Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 19 01:33:59 2013 +0200 arm11mpcore: Split off RealView MPCore Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 7b960dc37df088f9ca71bdc2a611864eae38c5c4 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 19 01:27:19 2013 +0200 arm11mpcore: Prepare for QOM embedding Move state struct, type constant and cast macro to a new header. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 306476eaec483afbbf7f31abeae97874e6d3d29c Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 18 23:38:15 2013 +0200 arm11mpcore: Convert mpcore_rirq_state to QOM realize Embed ARM11MPCorePriveState and RealViewGICState and replace SysBus initfn with realizefn. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ce31825de64c305cbf0def5657edac21aab7368b Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 19 00:48:55 2013 +0200 realview_gic: Prepare for QOM embedding Move state struct, type constant and cast macro to a new header. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 612daf06283e2cf6b3aa6178826516512d219de0 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 19 00:37:07 2013 +0200 realview_gic: Convert to QOM realize Embed GICState and replace SysBus initfn with realizefn. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 08602ac5bf4f024d7e979de3a4e5df87db01b0ae Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 18 22:04:31 2013 +0200 arm11mpcore: Convert ARM11MPCorePriveState to QOM realize Embed child devices and replace SysBus initfn with realizefn. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 53cb9a1c2ffa78f5b5f6e4084dc03b98558cea4f Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 18 20:07:36 2013 +0200 arm11mpcore: Split off SCU device Inspired by a9scu. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 2c42c3a063c2a8dda74b613bfab021b86ebc7ee5 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 18 20:48:33 2013 +0200 arm11mpcore: Create container MemoryRegion in instance_init This allows to map the region directly after object initialization. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 21ebaf1d812471e3379c85ffb8b0cc2311d5bff0 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 18 22:08:59 2013 +0200 arm11mpcore: Drop unused fields Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 4c14253c9e889ab1cbd6126eed883682c1cd2718 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 18 20:36:33 2013 +0200 arm11mpcore: Fix typo in MemoryRegion name "mpcode" -> "mpcore" Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit b4a37f17fef343f6400f0ccc1d1e037c6c430807 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 18 21:00:29 2013 +0200 a9scu: Build only once It does not have a target or ARMCPU dependency. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 43482f72dbe48448442c3b27f0a26b16d49e8f97 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 21:31:01 2013 +0200 a15mpcore: Prepare for QOM embedding Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 7c76a48db48accca337e1e99b9085646b696a895 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 21:22:54 2013 +0200 a15mpcore: Convert to QOM realize Turn SysBusDevice initfn into a QOM realizefn. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 524a2d8e2628b3241f0dcaa6a96d57e8120cc439 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 21:20:26 2013 +0200 a15mpcore: Embed GICState This covers both emulated and KVM GIC. Prepares for QOM realize. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit b9ed148d243839aba3864b4419114396f6fda2fc Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 21:07:31 2013 +0200 a15mpcore: Split off instance_init Prepares for QOM realize. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit de4c2dcf7fedf5fa727113e1dec0d0e5dd0462a0 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 20:44:23 2013 +0200 a9mpcore: Prepare for QOM embedding Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 837cf1013e6e1aa821ce13d7f63bb3dc0a92a1ab Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 20:36:15 2013 +0200 a9mpcore: Convert to QOM realize Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit eb110bd843d3ef70850a7cf44d05056b8a3e81aa Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 20:30:27 2013 +0200 a9mpcore: Embed ARMMPTimerState Prepares for QOM realize. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 0aadb4909c330bbde8542fcafc465817530cb835 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 19:42:55 2013 +0200 arm_mptimer: Convert to QOM realize Split the SysBusDevice initfn into instance_init and realizefn. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit fc719d77412513a07b718e1f083b64dbcac62524 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 19:29:36 2013 +0200 a9mpcore: Embed A9SCUState Prepares for QOM realize. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 9eb39db520cea30620b24098b6d731f78cc819a0 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 19:22:12 2013 +0200 a9scu: QOM cleanups Rename A9SCUState::busdev field to parent_obj and turn realizefn into an instance_init function to allow early MMIO mapping. Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 9b5f952bb8015b079783a9197f3331085075fbc4 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 19:01:18 2013 +0200 a9mpcore: Embed GICState Prepares for conversion to QOM realize. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit 83728796ad3f2ce7d6162c1cb894528b12915646 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 23 03:37:49 2013 +0200 arm_gic: Extract headers hw/intc/arm_gic{,_common}.h Rename NCPU to GIC_NCPU and move GICState away from gic_internal.h. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 753bc6e981101b2a1d8bd4cb68f54dcdf82e9b63 Author: Andreas Färber <andreas.faerber@xxxxxx> Date: Sun Jun 30 19:52:31 2013 +0200 a9mpcore: Split off instance_init Prepares for QOM realize. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <andreas.faerber@xxxxxx> commit c77dd5f6140acd62ba73fbb8b8144c42c003b995 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Sat Aug 31 21:22:40 2013 +0400 milkymist-uart: Use Device::realize instead of SysBusDevice::init Use of SysBusDevice::init is deprecated. Use Device::realize instead. Also introduce TypeInfo::instance_init milkymist_uart_init(). Reported-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 7c41f2177e280dec1f1d4c5cd72333c5c55943af Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 05:44:47 2013 +0200 qtest: Prepare QOM machine tests Instantiate all [*] machines per target, so that they get a bit of test coverage at all. This has proven helpful during QOM refactorings. [*] ppcemb target contains some non-working non-embedded machines, and ppc405 CPUs are not available there either. i386 and x86_64 do not cover pc*-x.y or xenfv. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 7761254120905cb2c5c435246f97e51968ddddec Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 4 17:58:58 2013 +0200 leon3: Don't enforce use of -bios with qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d32f7d2506f1dab996e977e478f19baff5d47b51 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 4 17:51:15 2013 +0200 shix: Don't require firmware presence for qtest Adopt error_report() while at it. Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit b6e770ee505771a6f3c3ffbf05719c149e069e3d Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 4 17:53:24 2013 +0200 shix: Drop debug output Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c00eb5cee145ec7ff030a6bfcb98afd7285868c2 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Aug 4 16:49:28 2013 +0200 milkymist: Suppress -kernel/-bios/-drive error for qtest Acked-by: Michael Walle <michael@xxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 19c82aac7540acdd4645b033bb99ceff960f9570 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:48:58 2013 +0200 an5206: Don't enforce use of kernel for qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5c12762c2d9cfc7ff9744e4af14ef35190c5369b Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:47:21 2013 +0200 mcf5208: Don't enforce use of kernel for qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5efe843a9a0e049d3d2a13411b7df7d3a430540c Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:40:20 2013 +0200 axis_dev88: Don't enforce use of kernel for qtest Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5633b90ad44f08a57c44bb602cb0ae6668420ac9 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:36:59 2013 +0200 armv7m: Don't enforce use of kernel for qtest Adopt error_report(). Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 4bd2f93ff9dcf5fbbdb55affc55b7f1a568e43cf Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:29:54 2013 +0200 exynos4_boards: Silence lack of -smp 2 warning for qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit db3fd06902c96644cb4d4a76f54924c754faf13c Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:27:58 2013 +0200 omap_sx1: Don't enforce use of kernel or flash for qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 1ca8334e42d84cf246db88502cebf11042df2c51 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:24:47 2013 +0200 palm: Don't enforce loading ROM or kernel for qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit e25ac5f66275b3f9615a6c24d7ef5625f1b49ef4 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 17:15:55 2013 +0200 z2: Don't enforce use of -pflash for qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit bdf921d65f83c1958e00c347816c0f754f9bc6dc Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 17:15:01 2013 +0200 gumstix: Don't enforce use of -pflash for qtest Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit d2f7c496c32476bb5eff616f6fda293393d70740 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 17:12:41 2013 +0200 mainstone: Don't enforce use of -pflash for qtest Simply skip flash setup for now. Also drop useless debug output. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f741a26c126448adebee7b85fc87b72176c3dfa5 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 18:43:57 2013 +0200 puv3: Turn puv3_load_kernel() into a no-op for qtest without -kernel Replacing the assert() with more user-friendly error handling is left for a follow-up. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 22d5523d3fbb95264055e11eb47738a7442a4ecb Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jul 29 17:01:37 2013 +0200 mips_mipssim: Silence BIOS loading warning for qtest Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 6d0a37354259ec446bace1a671685ba27f1fe1d6 Merge: a126050 df39076 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Nov 5 17:46:04 2013 +0100 Merge tag 'for_anthony' of git://git.kernel.org/pub/scm/virt/kvm/mst/qemu pci, pc, pvpanic bug fixes This fixes strange pvpanic behaviour: you had to pause to let VM continue (and potentially reboot on panic if enabled). This also fixes two bugs reported by Andreas. One is a long-standing bug exposed by recent pci changes, the other affects old piix machine types and was caused by recent acpi changes. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c905c5012ac0c6fde3b8094d2206a3139deddba2 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Sun Nov 3 08:45:54 2013 -0800 ossaudio: do not enable by default Modern Linux's no longer support /dev/dsp so enabling it by default causes audio failures on newer Linux distros. Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> Tested-by: Andreas Färber <afaerber@xxxxxxx> Message-id: 1383497154-9271-1-git-send-email-aliguori@xxxxxxxxxx commit 29f8f3835f63fb7c55c7bb56d26165ade793fc49 Merge: f772a83 4a46c99 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 5 08:39:49 2013 -0800 Merge remote-tracking branch 'spice/spice.v76' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * spice/spice.v76: qxl: replace pipe signaling with bottom half Message-id: 1383656322-24150-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit f772a83113a9b692b94dc48b4f282224a2c6ccf2 Merge: 0d6e9a2 df39076 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 5 08:29:56 2013 -0800 Merge remote-tracking branch 'mst/tags/for_anthony' into staging pci, pc, pvpanic bug fixes This fixes strange pvpanic behaviour: you had to pause to let VM continue (and potentially reboot on panic if enabled). This also fixes two bugs reported by Andreas. One is a long-standing bug exposed by recent pci changes, the other affects old piix machine types and was caused by recent acpi changes. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Mon 04 Nov 2013 05:42:46 AM PST using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Michael S. Tsirkin (2) and Paolo Bonzini (1) # Via Michael S. Tsirkin * mst/tags/for_anthony: vl: allow "cont" from panicked state exec: limit system memory size pc: disable acpi info for isapc and old pc machine Message-id: 1383572851-28326-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0d6e9a23ae6a839f4fa6e3e2816367e0ffa09869 Merge: a126050 7db16f2 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Tue Nov 5 08:26:57 2013 -0800 Merge remote-tracking branch 'kraxel/e820.1' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * kraxel/e820.1: pc: register e820 entries for ram pc: add etc/e820 fw_cfg file Message-id: 1383567431-13540-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0fd53fec92c5b636ef4774fe130f6029fde9fc3c Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Oct 17 16:47:52 2013 +0200 KVM: x86: fix typo in KVM_GET_XCRS Only the first item of the array was ever looked at. No practical effect, but still worth fixing. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit df39076850958b842ac9e414dc3ab2895f1877bf Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Nov 4 14:30:47 2013 +0100 vl: allow "cont" from panicked state After reporting the GUEST_PANICKED monitor event, QEMU stops the VM. The reason for this is that events are edge-triggered, and can be lost if management dies at the wrong time. Stopping a panicked VM lets management know of a panic even if it has crashed; management can learn about the panic when it restarts and queries running QEMU processes. The downside is of course that the VM will be paused while management is not running, but that is acceptable if it only happens with explicit "-device pvpanic". Upon learning of a panic, management (if configured to do so) can pick a variety of behaviors: leave the VM paused, reset it, destroy it. In addition to all of these behaviors, it is possible to dump the VM core from the host. However, right now, the panicked state is irreversible, and can only be exited by resetting the machine. This means that any policy decision is entirely in the hands of the host. In particular there is no way to use the "reboot on panic" option together with pvpanic. This patch makes the panicked state reversible (and removes various workarounds that were there because of the state being irreversible). With this change, management has a wider set of possible policies: it can just log the crash and leave policy to the guest, it can leave the VM paused. In particular, the "log the crash and continue" is implemented simply by sending a "cont" as soon as management learns about the panic. Management could also implement the "irreversible paused state" itself. And again, all such actions can be coupled with dumping the VM core. Unfortunately we cannot change the behavior of 1.6.0. Thus, even if it uses "-device pvpanic", management should check for "cont" failures. If "cont" fails, management can then log that the VM remained paused and urge the administrator to update QEMU. Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 818f86b88394b7b2b59d313e51043fe15a8004db Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Nov 4 08:06:08 2013 +0200 exec: limit system memory size The page table logic in exec.c assumes that memory addresses are at most TARGET_PHYS_ADDR_SPACE_BITS. But pci addresses are full 64 bit so if we try to render them ignoring the extra bits, we get strange effects with sections overlapping each other. To fix, simply limit the system memory size to 1 << TARGET_PHYS_ADDR_SPACE_BITS, pci addresses will be rendered within that. Cc: qemu-stable@xxxxxxxxxx Reported-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 98af2ac93fa6bd83e19f7cff1cc9513fa7c4d58d Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Nov 4 12:42:46 2013 +0200 pc: disable acpi info for isapc and old pc machine Disable acpi build for isapc and no_kvmclock machine types (used by xen), since acpi build currently expects pci. Reported-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 4a46c99c8118586f19894fe66fc6e353f159d4d9 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Oct 29 13:29:43 2013 +0100 qxl: replace pipe signaling with bottom half qxl creates a pipe, then writes something to it to wake up the iothread from the spice server thread to raise an irq. These days qemu bottom halves can be scheduled from threads and signals, so there is no reason to do this any more. Time to clean it up. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 7db16f2480db5e246d34d0c453cff4f58549df0e Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Oct 10 10:30:27 2013 +0200 pc: register e820 entries for ram So RAM shows up in the new etc/e820 fw_cfg file. Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 7d67110f2d9a6a2d6b5215a948abc95d07258735 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Oct 18 11:31:54 2013 +0200 pc: add etc/e820 fw_cfg file Unlike the existing FW_CFG_E820_TABLE entry which carries reservations only the new etc/e820 file also has entries for RAM. Format is simliar to the FW_CFG_E820_TABLE, it is a simple list of e820_entry structs. Unlike FW_CFG_E820_TABLE it has no count though as the number of entries can be figured from the file size. Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit a126050a103c924b03388a9a64ce9af8c96b0969 Merge: ef5cfe5 f4c129a Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 17:02:26 2013 +0100 Merge remote-tracking branch 'kwolf/tags/for-anthony' into staging Block patches for 1.7.0-rc0 (v2) # gpg: Signature made Thu 31 Oct 2013 04:44:39 PM CET using RSA key ID C88F2FD6 # gpg: Can't check signature: public key not found * kwolf/tags/for-anthony: (30 commits) vmdk: Implment bdrv_get_specific_info qapi: Add optional field 'compressed' to ImageInfo qemu-iotests: prefill some data to test image sheepdog: check simultaneous create in resend_aioreq sheepdog: cancel aio requests if possible sheepdog: make add_aio_request and send_aioreq void functions sheepdog: try to reconnect to sheepdog after network error coroutine: add co_aio_sleep_ns() to allow sleep in block drivers sheepdog: reload inode outside of resend_aioreq sheepdog: handle vdi objects in resend_aio_req sheepdog: check return values of qemu_co_recv/send correctly qemu-iotests: Test case for backing file deletion qemu-iotests: drop duplicated "create_image" qemu-iotests: Fix 051 reference output block: Avoid unecessary drv->bdrv_getlength() calls block: Disable BDRV_O_COPY_ON_READ for the backing file ahci: fix win7 hang on boot sheepdog: pass copy_policy in the request sheepdog: explicitly set copies as type uint8_t block: Don't copy backing file name on error ... Message-id: 1383064269-27720-1-git-send-email-kwolf@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit ef5cfe5bbd8bb05a51afaf7ab313769eb9ef44b6 Merge: 1ba1905 203cea2 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 17:01:43 2013 +0100 Merge remote-tracking branch 'mjt/trivial-patches' into staging * mjt/trivial-patches: audio/mixeng_template.h: fix inline declaration misc: Spelling and grammar fixes in comments docs/ccid.txt: fix the typo qapi: fix documentation example .gitignore: ignore qmp-commands.txt misc: New spelling fixes in comments configure: create fsdev/ directory Message-id: 1382779887-15971-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 1ba1905abd72f34836b153f3348d618da6148f87 Merge: e2cb290 3bbf37f Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 17:01:12 2013 +0100 Merge remote-tracking branch 'agraf/ppc-for-upstream' into staging * agraf/ppc-for-upstream: (29 commits) spapr: Use DeviceClass::fw_name for device tree CPU node target-ppc: Fill in OpenFirmware names for some PowerPCCPU families target-ppc: dump-guest-memory support dump-guest-memory: Check for the correct return value target-ppc: Use #define for max slb entries target-ppc: Check for error on address translation in memsave command target-ppc: Update slb array with correct index values. spapr-pci: enable irqfd for INTx xics-kvm: enable irqfd for MSI xics: Implement H_XIRR_X xics: Implement H_IPOLL xics-kvm: Support for in-kernel XICS interrupt controller xics: add cpu_setup callback xics: split to xics and xics-common xics: add missing const specifiers to TypeInfo xics: convert init() to realize() xics: add pre_save/post_load dispatchers xics: replace fprintf with error_report spapr: move cpu_setup after kvmppc_set_papr xics: move reset and cpu_setup ... Message-id: 1382736474-32128-1-git-send-email-agraf@xxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit e2cb2902bacb0efaa4adf680719aa77758dd33cd Merge: cb95ec1 b4350de Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 17:00:55 2013 +0100 Merge remote-tracking branch 'kraxel/audio.2' into staging * kraxel/audio.2: audio: honor QEMU_AUDIO_TIMER_PERIOD instead of waking up every *nano* second Message-id: 1382622110-19460-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit cb95ec1b83ae3972a976e5331f9e772cde1ebd1c Merge: 3fa4270 c90daa1 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 17:00:25 2013 +0100 Merge remote-tracking branch 'kraxel/usb.91' into staging * kraxel/usb.91: usb-hcd-xhci: Update endpoint context dequeue pointer for streams too usb-hcd-xhci: Report completion of active transfer with CC_STOPPED on ep stop usb-hcd-xhci: Remove unused cancelled member from XHCITransfer usb-hcd-xhci: Remove unused sstreamsm member from XHCIStreamContext usb-host-libusb: Detach kernel drivers earlier usb-host-libusb: Configuration 0 may be a valid configuration usb-host-libusb: Fix reset handling Message-id: 1382620267-18065-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 3fa4270a651503ac1a6aec5154ef17171ddae4e9 Merge: a9c78bb c20b7fa Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 17:00:07 2013 +0100 Merge remote-tracking branch 'luiz/queue/qmp' into staging * luiz/queue/qmp: monitor: eliminate monitor_event_state_lock Message-id: 1382121003-5211-1-git-send-email-lcapitulino@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit a9c78bb82efd825256c496e69aa884b1da7edea3 Merge: b0eb759 0624c7f Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 16:58:58 2013 +0100 Merge remote-tracking branch 'kraxel/e820.1' into staging * kraxel/e820.1: e820: pass high memory too. Message-id: 1382008179-5968-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit b0eb759fb244c023bc4cee60cb4336eadda3da1a Merge: b861605 742f5d2 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Oct 31 16:58:32 2013 +0100 Merge remote-tracking branch 'mst/tags/for_anthony' into staging pci, pc, acpi fixes, enhancements This includes some pretty big changes: - pci master abort support by Marcel - pci IRQ API rework by Marcel - acpi generation support by myself Everything has gone through several revisions, latest versions have been on list for a while without any more comments, tested by several people. Please pull for 1.7. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Tue 15 Oct 2013 07:33:48 AM CEST using RSA key ID D28D5469 # gpg: Can't check signature: public key not found * mst/tags/for_anthony: (39 commits) ssdt-proc: update generated file ssdt: fix PBLK length i386: ACPI table generation code from seabios pc: use new api to add builtin tables acpi: add interface to access user-installed tables hpet: add API to find it pvpanic: add API to access io port ich9: APIs for pc guest info piix: APIs for pc guest info acpi/piix: add macros for acpi property names i386: define pc guest info loader: allow adding ROMs in done callbacks i386: add bios linker/loader loader: use file path size from fw_cfg.h acpi: ssdt pcihp: updat generated file acpi: pre-compiled ASL files acpi: add rules to compile ASL source i386: add ACPI table files from seabios q35: expose mmcfg size as a property q35: use macro for MCFG property name ... Message-id: 1381818560-18367-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit f4c129a38a5430b7342a7a23f53a22831154612f Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Oct 31 10:06:23 2013 +0800 vmdk: Implment bdrv_get_specific_info Implement .bdrv_get_specific_info to return the extent information. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b86160555f8d1fe11d6bcec393e08e645d7e1e8d Author: Alex Bennée <alex@xxxxxxxxxx> Date: Tue Oct 22 15:16:06 2013 +0100 integrator: fix Linux boot failure by emulating dbg region Commit 9b8c69243 (since reverted) broke the ability to boot the kernel as the value returned by unassigned_mem_read returned non-zero and left the kernel looping forever waiting for it to change (see integrator_led_set in the kernel code). Relying on a varying implementation detail is incorrect anyway so this introduces a basic stub of a memory region for the debug/LED section on the integrator board. Signed-off-by: Alex Bennée <alex@xxxxxxxxxx> Message-id: 1382451366-9539-1-git-send-email-alex.bennee@xxxxxxxxxx [PMM: removed three unused fields from struct IntegratorDebugState] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 0bc2a331e476c6c834278b8dcc17408a3f0d8f6a Author: Alvise Rigo <a.rigo@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri Oct 11 19:38:45 2013 +0200 target-arm: fix sorting issue of KVM cpreg list The compare_u64 function was not sorting the KVM cpreg_list in the right way due to the wrong returned value. Since we are comparing two 64bit values we can't simply return their difference if the returned type is int. Signed-off-by: Alvise Rigo <a.rigo@xxxxxxxxxxxxxxxxxxxxxx> Message-id: 1381513125-26802-2-git-send-email-a.rigo@xxxxxxxxxxxxxxxxxxxxxx [PMM: fixed coding style, indent and commit message formatting] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit cbf239b76934c8c2d1e147372ef9478ecc39fdfb Author: Alvise Rigo <a.rigo@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri Oct 11 19:38:44 2013 +0200 target-arm: sort TCG cpreg list by KVM-style 64 bit ID number Both KVM and TCG populate the cpreg_list with 64 bit register IDs, but in the TCG side the cpreg_list is sorted using the 32 bit ID version while in the kvm side the 64 bit ID version is used. This patch makes the sorting of the cpreg_list consistent between KVM and TCG. Signed-off-by: Alvise Rigo <a.rigo@xxxxxxxxxxxxxxxxxxxxxx> Message-id: 1381513125-26802-1-git-send-email-a.rigo@xxxxxxxxxxxxxxxxxxxxxx [PMM: fixed indent, coding style and commit message formatting] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 8641136c54d216edb5bb8ef723c754039b4c5cf3 Author: Nathan Rossi <nathan.rossi@xxxxxxxxxx> Date: Fri Oct 25 15:44:38 2013 +0100 target-arm: Add CP15 VBAR support Added Vector Base Address remapping on ARM v7. Signed-off-by: Nathan Rossi <nathan.rossi@xxxxxxxxxx> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> [PMM: removed spurious mask of value with 1<<31] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit dacecf5485bf02b2dfe49e9d9c852668884a71be Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Oct 25 15:44:38 2013 +0100 hw/arm: Tidy up conditional calls to arm_load_kernel Now that arm_load_kernel doesn't insist on a kernel filename being present, we can remove some unnecessary conditionals in board models. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1379980897-21277-3-git-send-email-peter.maydell@xxxxxxxxxx commit 9546dbabd5f6ff199ffd7741dfd57b8bff723bd1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Oct 25 15:44:38 2013 +0100 hw/arm/boot: Make user not specifying a kernel not an error Typically ARM boards will have some kind of flash which might contain a boot ROM; it's therefore a valid use case to provide only an image for the boot ROM and not require QEMU's internal boot loader at all. Remove the fatal error if -kernel isn't specified. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1379980897-21277-2-git-send-email-peter.maydell@xxxxxxxxxx commit cbe82d7fb32e5d8e76434671d50853df5f50d560 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Oct 18 11:12:44 2013 +0800 qapi: Add optional field 'compressed' to ImageInfo Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7890111b642e8e03430c3bf8bd6cedee26cec4fe Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Oct 30 17:42:28 2013 +0800 qemu-iotests: prefill some data to test image Case 030 occasionally fails because of block job compltes too fast to be captured by script, and 'unexpected qmp event' of job completion causes the test failure. Simply fill in some data to the test image to make this false alarm less likely to happen. (For other benefits to prefill data to test image, see also commit ab68cdfaa). Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 80308d33ec70834a80351a79eba106049b44a366 Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:18 2013 +0900 sheepdog: check simultaneous create in resend_aioreq After reconnection happens, all the inflight requests are moved to the failed request list. As a result, sd_co_rw_vector() can send another create request before resend_aioreq() resends a create request from the failed list. This patch adds a helper function check_simultaneous_create() and checks simultaneous create requests more strictly in resend_aioreq(). Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 35200687a1e04a79b0345be476185dc23d1604fb Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:17 2013 +0900 sheepdog: cancel aio requests if possible This patch tries to cancel aio requests in pending queue and failed queue. When the sheepdog driver cannot cancel the requests, it waits for them to be completed. Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a37dcdf9aea8e19fcec6b1c5aa2c27c325fc4644 Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:16 2013 +0900 sheepdog: make add_aio_request and send_aioreq void functions These functions no longer return errors. We can make them void functions and simplify the codes. Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 011603cacf1cae9212453efd82ec908cd42ce466 Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:15 2013 +0900 sheepdog: try to reconnect to sheepdog after network error This introduces a failed request queue and links all the inflight requests to the list after network error happens. After QEMU reconnects to the sheepdog server successfully, the sheepdog block driver will retry all the requests in the failed queue. Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3ab7bd1917d210eac5d2a80593899ec70c4e998c Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:14 2013 +0900 coroutine: add co_aio_sleep_ns() to allow sleep in block drivers This helper function behaves similarly to co_sleep_ns(), but the sleeping coroutine will be resumed when using qemu_aio_wait(). Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 72e0996c41d879473bb2aa85c8eeec129ae8ec9b Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:13 2013 +0900 sheepdog: reload inode outside of resend_aioreq This prepares for using resend_aioreq() after reconnecting to the sheepdog server. Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2412aec745066495f0c91dfcde9258382d7850e9 Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:12 2013 +0900 sheepdog: handle vdi objects in resend_aio_req The current resend_aio_req() doesn't work when the request is against vdi objects. This fixes the problem. Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 80731d9da560461bbdcda5ad4b05f4a8a846fccd Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Thu Oct 24 16:01:11 2013 +0900 sheepdog: check return values of qemu_co_recv/send correctly If qemu_co_recv/send doesn't return the specified length, it means that an error happened. Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Tested-by: Liu Yuan <namei.unix@xxxxxxxxx> Reviewed-by: Liu Yuan <namei.unix@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 321fd7d2b88defe11528e4d5a9f686c89ebee1ee Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Oct 29 19:18:54 2013 +0100 qemu-iotests: Test case for backing file deletion Add a test case for trying to open an image file where it is impossible to open its backing file (in this case, because it was deleted). When doing this, qemu (or qemu-io in this case) should not crash but rather print an appropriate error message. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 915365a9c622be52c87fcc1cc9d63fbc5cd75b6d Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Oct 30 17:23:54 2013 +0800 qemu-iotests: drop duplicated "create_image" There's a same common function in iotests.py Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a7cf03d4e150abec88f5837461242dc8a0eee189 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Oct 29 17:05:35 2013 +0100 qemu-iotests: Fix 051 reference output Commit 684b254 forgot to update it. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b94a2610573cd9314f244207c8b04cb75e42d7f8 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Oct 29 12:18:58 2013 +0100 block: Avoid unecessary drv->bdrv_getlength() calls The block layer generally keeps the size of an image cached in bs->total_sectors so that it doesn't have to perform expensive operations to get the size whenever it needs it. This doesn't work however when using a backend that can change its size without qemu being aware of it, i.e. passthrough of removable media like CD-ROMs or floppy disks. For this reason, the caching is disabled when a removable device is used. It is obvious that checking whether the _guest_ device has removable media isn't the right thing to do when we want to know whether the size of the host backend can change. To make things worse, non-top-level BlockDriverStates never have any device attached, which makes qemu assume they are removable, so drv->bdrv_getlength() is always called on the protocol layer. In the case of raw-posix, this causes unnecessary lseek() system calls, which turned out to be rather expensive. This patch completely changes the logic and disables bs->total_sectors caching only for certain block driver types, for which a size change is expected: host_cdrom and host_floppy on POSIX, host_device on win32; also the raw format in case it sits on top of one of these protocols, but in the common case the nested bdrv_getlength() call on the protocol driver will use the cache again and avoid an expensive drv->bdrv_getlength() call. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 87a5debd3161d24a7d4c685e3c0d8765b5d92a74 Author: Thibaut LAURENT <thibaut.laurent@xxxxxxxxx> Date: Fri Oct 25 02:15:07 2013 +0200 block: Disable BDRV_O_COPY_ON_READ for the backing file Since commit 0ebd24e0a203cf2852c310b59fbe050190dc6c8c, bdrv_open_common will throw an error when trying to open a file read-only with the BDRV_O_COPY_ON_READ flag set. Although BDRV_O_RDWR is unset for the backing files, BDRV_O_COPY_ON_READ is still passed on if copy-on-read was requested for the drive. Let's unset this flag too before opening the backing file, or bdrv_open_common will fail. Signed-off-by: Thibaut LAURENT <thibaut.laurent@xxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8464b273d69c61e33c55347e5b6bc0659687bae2 Author: Alexander Graf <agraf@xxxxxxx> Date: Mon Oct 28 21:01:51 2013 +0200 ahci: fix win7 hang on boot When AHCI executes an asynchronous IDE command, it checked DRDY without checking either DRQ or BSY. This sometimes caused interrupt to be sent before command is actually completed. This resulted in a race condition: if guest then managed to access the device before command has completed, it would hang waiting for an interrupt. This was observed with windows 7 guests. To fix, check for DRQ or BSY in additiona to DRDY, if set, the command is asynchronous so delay the interrupt until asynchronous done callback is invoked. Reported-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Tested-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1841f8801c8898fa57c66e27a08541ffcc6f3948 Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Wed Oct 23 16:51:52 2013 +0800 sheepdog: pass copy_policy in the request Currently copy_policy isn't used. Recent sheepdog supports erasure coding, which make use of copy_policy internally, but require client explicitly passing copy_policy from base inode to newly creately inode for snapshot related operations. If connected sheep daemon doesn't utilize copy_policy, passing it to sheep daemon is just one extra null effect operation. So no compatibility problem. With this patch, sheepdog can provide erasure coded volume for QEMU VM. Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Acked-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 29a67f7e9204a25bc4b6221f287ad0ae38d8cbdc Author: Liu Yuan <namei.unix@xxxxxxxxx> Date: Wed Oct 23 16:51:51 2013 +0800 sheepdog: explicitly set copies as type uint8_t 'copies' is actually uint8_t since day one, but request headers and some helper functions parameterize it as uint32_t for unknown reasons and effectively reserve 24 bytes for possible future use. This patch explicitly set the correct for copies and reserve the left bytes. This is a preparation patch that allow passing copy_policy in request header. Cc: Kevin Wolf <kwolf@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Liu Yuan <namei.unix@xxxxxxxxx> Acked-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 61ed2684539f7f31304e193d7c0e68d57ce6be88 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Sat Oct 26 15:44:43 2013 +0200 block: Don't copy backing file name on error bdrv_open_backing_file() tries to copy the backing file name using pstrcpy directly after calling bdrv_open() to open the backing file without checking whether that was actually successful. If it was not, ps->backing_hd->file will probably be NULL and qemu will crash. Fix this by moving pstrcpy after checking whether bdrv_open() succeeded. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Amos Kong <kongjianjun@xxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d1f3a23bfac4fe38056ab5e07186939b7be8852b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Jun 27 13:50:05 2013 +0200 tests: Multiboot mmap test case This adds a test case for Multiboot memory map in the tests/multiboot directory, where future i386 test kernels can be dropped. Because this requires an x86 build host and an installed 32 bit libgcc, the test is not part of a regular 'make check'. The reference output for the test is verified against test runs of the same multiboot kernel booted by some GRUB 0.97. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d7b7e580096255c766f7b1e7502a9151b95091e8 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Jul 22 14:26:25 2013 +0200 ide-test: Check what happens with bus mastering disabled The main goal is that qemu doesn't crash. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e85d9db5f6f86299688a0acd2796ac1ccc96610c Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Jul 22 14:30:23 2013 +0200 exec: Fix bounce buffer allocation in address_space_map() This fixes a regression introduced by commit e3127ae0c, which kept the allocation size of the bounce buffer limited to one page in order to avoid unbounded allocations (as explained in the commit message of 6d16c2f88), but broke the reporting of the shortened bounce buffer to the caller. The caller therefore assumes that the full requested size was provided and causes memory corruption when writing beyond the end of the actually allocated buffer. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit ba2ab2f2ca4150a7e314fbb19fa158bd8ddc36eb Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 24 20:35:06 2013 +0200 qcow2: Flush image after creation Opening the qcow2 image with BDRV_O_NO_FLUSH prevents any flushes during the image creation. This means that the image has not yet been flushed to disk when qemu-img create exits. This flush is delayed until the next operation on the image involving opening it without BDRV_O_NO_FLUSH and closing (or directly flushing) it. For large images and/or images with a small cluster size and preallocated metadata, this flush may take a significant amount of time and may occur unexpectedly. Reopening the image without BDRV_O_NO_FLUSH right before the end of qcow2_create2() results in hoisting the potentially costly flush into the image creation, which is expected to take some time (whereas successive image operations may be not). 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 203cea22a3d33ac86d170af74f8c655f119c8c62 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Tue Oct 22 10:26:28 2013 +0100 audio/mixeng_template.h: fix inline declaration Fix error: â??inlineâ?? is not at beginning of declaration [-Werror=old-style-declaration] Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 59b00962136f5621895bee7c96b2a1d9271b9dc5 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Fri Oct 11 21:34:33 2013 +0200 misc: Spelling and grammar fixes in comments * it's -> its * grammar fix in ui/vnc-enc-zywrle.h Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Don Koch <dkoch@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 5f32804c79ba9554e62c9699db83ee34df8a46c1 Author: WengFan <wengfan-fnst@xxxxxxxxxxxxxx> Date: Fri Oct 25 11:18:22 2013 -0400 docs/ccid.txt: fix the typo Signed-off-by: WengFan <wengfan-fnst@xxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 63922c647730eba01865e05bf1e80dd7d682e287 Author: Eric Blake <eblake@xxxxxxxxxx> Date: Sat Oct 19 17:52:33 2013 +0100 qapi: fix documentation example The QMP wire format uses "", not '', around strings. * docs/qapi-code-gen.txt: Fix typo. Signed-off-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit eb02dc0b118c87a366002e3a725ab3373e1738db Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Oct 15 10:58:39 2013 +0800 .gitignore: ignore qmp-commands.txt This file is moved out from QMP/ to BUILD dir, change the ignore file too. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 73f395fa88d87ae14f38ad0aa7f863148d98eef2 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Oct 10 20:53:40 2013 +0200 misc: New spelling fixes in comments compatiblity -> compatibility continously -> continuously existance -> existence usefull -> useful shoudl -> should Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2b170effc7a0bb27f019727e5be02cd989e54e7d Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Mon Oct 21 12:33:58 2013 +0400 configure: create fsdev/ directory In some cases when building with parallelism (make -jN), build fails because the directory where output files are supposed to be does not exist. In particular, when make decides to build virtfs-proxy-helper.1 before other files in fsdev/, build will fail with the following error: perl -Ww -- BUILDDIR/scripts/texi2pod.pl BUILDDIR/fsdev/virtfs-proxy-helper.texi fsdev/virtfs-proxy-helper.pod && pod2man --utf8 --section=1 --center=" " --release=" " fsdev/virtfs-proxy-helper.pod > fsdev/virtfs-proxy-helper.1 opening "fsdev/virtfs-proxy-helper.pod": No such file or directory Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 3bbf37f2692652cc9d48030a9e7f34e2207429f6 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Oct 15 18:33:37 2013 +0200 spapr: Use DeviceClass::fw_name for device tree CPU node Instead of relying on cpu_model, obtain the device tree node label per CPU. Use DeviceClass::fw_name as source. Whenever DeviceClass::fw_name is unknown, default to "PowerPC,UNKNOWN". As a consequence, spapr_fixup_cpu_dt() can operate on each CPU's fw_name, obsoleting sPAPREnvironment::cpu_model, and spapr_create_fdt_skel() can drop its cpu_model argument. Signed-off-by: Prerna Saxena <prerna@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 793826cd460828975591f289de78672af4a47ef9 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Oct 15 18:33:36 2013 +0200 target-ppc: Fill in OpenFirmware names for some PowerPCCPU families Set the expected values for POWER7, POWER7+, POWER8 and POWER5+. Note that POWER5+ and POWER7+ are intentionally lacking the '+', so the lack of a POWER7P family constitutes no problem. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit e62fbc54d459d4cc8e91dc0938383a7f4c13768c Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue Oct 1 21:49:33 2013 +0530 target-ppc: dump-guest-memory support This patch add support for dumping guest memory using dump-guest-memory monitor command. Before patch: (qemu) dump-guest-memory testcrash this feature or command is not currently supported (qemu) After patch: (qemu) dump-guest-memory testcrash (qemu) crash was able to read the file crash> bt PID: 0 TASK: c000000000c0d0d0 CPU: 0 COMMAND: "swapper/0" R0: 0000000028000084 R1: c000000000cafa50 R2: c000000000cb05b0 R3: 0000000000000000 R4: c000000000bc4cb0 R5: 0000000000000000 R6: 001efe93b8000000 R7: 0000000000000000 R8: 0000000000000000 R9: b000000000001032 R10: 0000000000000001 R11: 0001eb2117e00d55 .... ... NOTE: Currently crash tools doesn't look at ELF notes in the dump on ppc64. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit bb6b684363e83586c90d20127b0d0a79793ab1e2 Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue Oct 1 21:49:32 2013 +0530 dump-guest-memory: Check for the correct return value We should check for error with s->note_size Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit d83af16786ca672bea9a206490f801bec7a057eb Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue Oct 1 21:49:31 2013 +0530 target-ppc: Use #define for max slb entries Instead of opencoding 64 use MAX_SLB_ENTRIES. We don't update the kernel header here. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 2f4d0f5990ede025720e41fa473029e9ca85e8b8 Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue Oct 1 21:49:30 2013 +0530 target-ppc: Check for error on address translation in memsave command When we translate the virtual address to physical check for error. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 4b4d4a21b988f6d56e0792058aa0b968e19fda6b Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue Oct 1 21:49:28 2013 +0530 target-ppc: Update slb array with correct index values. Without this, a value of rb=0 and rs=0 results in replacing the 0th index. This can be observed when using gdb remote debugging support. (gdb) x/10i do_fork 0xc000000000085330 <do_fork>: Cannot access memory at address 0xc000000000085330 (gdb) This is because when we do the slb sync via kvm_cpu_synchronize_state, we overwrite the slb entry (0th entry) for 0xc000000000085330 Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5cc7a967e9de8c7b16c15aee4cb9f5bfcf0c5989 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:48 2013 +1000 spapr-pci: enable irqfd for INTx This enables IRQFD for LSI (level triggered INTx interrupts) by adding a spapr_route_intx_pin_to_irq() callback to the sPAPR PCI host bus. This callback is called to know the global interrupt number to link resampling fd with IRQFD's fd in KVM. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 9554233c9b8fe7d94dfa53db09ce3d186f2e8b9e Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:47 2013 +1000 xics-kvm: enable irqfd for MSI This enables IRQFD support for sPAPR. The feature decreases the latency of interrupt handling. To enable IRQFD for MSI, this sets kvm_gsi_direct_mapping to true which enables direct MSI mapping. To enable IRQFD for LSI (level triggered INTx interrupts), a PCI host bus callback is required. The patch for that is coming next. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5d87e4b74a0100fbb7970edaa3449eb04b06f782 Author: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Date: Thu Sep 26 16:18:46 2013 +1000 xics: Implement H_XIRR_X This implements H_XIRR_X hypercall in addition to H_XIRR as it is mandatory for PAPR+ and there is no way for the guest to detect whether it is supported or not so just add it. As the Partition Adjunct Option is not supported at the moment, the CPPR parameter of the hypercall is ignored. Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 075edbe3bad4c22995ab472c507565b48c4e0985 Author: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Date: Thu Sep 26 16:18:45 2013 +1000 xics: Implement H_IPOLL This adds support for the H_IPOLL hypercall which the guest uses to poll for a pending interrupt. This hypercall is mandatory for PAPR+ and there is no way for the guest to detect whether it is supported or not so just add it. Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 11ad93f68195f68cc94d988f2aa50b4d190ee52a Author: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Date: Thu Sep 26 16:18:44 2013 +1000 xics-kvm: Support for in-kernel XICS interrupt controller Recent (host) kernels support emulating the PAPR defined "XICS" interrupt controller system within KVM. This patch allows qemu to initialize and configure the in-kernel XICS, and keep its state in sync with qemu's XICS state as necessary. This should give considerable performance improvements. e.g. on a simple IPI ping-pong test between hardware threads, using qemu XICS gives us around 5,000 irqs/second, whereas the in-kernel XICS gives us around 70,000 irqs/s on the same hardware configuration. Signed-off-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> [Mike Qiu <qiudayu@xxxxxxxxxxxxxxxxxx>: fixed mistype which caused ics_set_kvm_state() to fail] Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5eb92ccc3f23f958c0d21bed7c22abe6c1f1adda Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:43 2013 +1000 xics: add cpu_setup callback This adds a cpu_setup callback to the XICS device class (as XICS-KVM will do it different), xics_cpu_setup() will call it if it is set. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5a3d7b23ba41b4884b43b6bc936ea18f999d5c6b Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:42 2013 +1000 xics: split to xics and xics-common The upcoming XICS-KVM support will use bits of emulated XICS code. So this introduces new level of hierarchy - "xics-common" class. Both emulated XICS and XICS-KVM will inherit from it and override class callbacks when required. The new "xics-common" class implements: 1. replaces static "nr_irqs" and "nr_servers" properties with the dynamic ones and adds callbacks to be executed when properties are set. 2. xics_cpu_setup() callback renamed to xics_common_cpu_setup() as it is a common part for both XICS'es 3. xics_reset() renamed to xics_common_reset() for the same reason. The emulated XICS changes: 1. the part of xics_realize() which creates ICPs is moved to the "nr_servers" property callback as realize() is too late to create/initialize devices and instance_init() is too early to create devices as the number of child devices comes via the "nr_servers" property. 2. added ics_initfn() which does a little part of what xics_realize() did. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 456df19cf7fd7f6d9ce986a3fb8f7603df5c3b22 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:41 2013 +1000 xics: add missing const specifiers to TypeInfo This adds missing const specifiers to ICS and ICP TypeInfo's. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit b45ff2d942022d7ee139a153f17f638d87935e03 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:40 2013 +1000 xics: convert init() to realize() This fixes XICS according new QOM rules. This converts ICS's init() callbacks to realize(). This converts legacy qdev_init_nofail() to property_set(realized). Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit d1b5682d88f72f8662ce6d20e07af3adfbf39ed0 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:39 2013 +1000 xics: add pre_save/post_load dispatchers The upcoming support of in-kernel XICS will redefine migration callbacks for both ICS and ICP so classes and callback pointers are added. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 9ccff2a4d604d31f01398190758072253dc3c188 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:38 2013 +1000 xics: replace fprintf with error_report This replaces old-style fprintf with new style error_report. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Acked-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 24408a7d2b459bed3697367b81ada76518ca96ef Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:37 2013 +1000 spapr: move cpu_setup after kvmppc_set_papr This moves the xics_cpu_setup() call after kvmppc_set_papr() in order to get VCPUs initialized as this is required by upcoming XICS-KVM. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 8ffe04ed2ed44b32f97575bc3cb7c29eefdd70da Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Sep 26 16:18:36 2013 +1000 xics: move reset and cpu_setup This simple change makes following patches nicer. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit feaa64c41f56b1b3111c31f652999799b28b9e12 Author: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Date: Thu Sep 26 16:18:35 2013 +1000 target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN Recent PowerKVM allows the kernel to intercept some RTAS calls from the guest directly. This is used to implement the more efficient in-kernel XICS for example. qemu is still responsible for assigning the RTAS token numbers however, and needs to tell the kernel which RTAS function name is assigned to a given token value. This patch adds a convenience wrapper for the KVM_PPC_RTAS_DEFINE_TOKEN ioctl() which is used for this purpose. Signed-off-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 4fe822e075d6befa3714f7066158678e92cedb8b Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Sep 27 18:10:18 2013 +1000 spapr-rtas: fix h_rtas parameters reading On the real hardware, RTAS is called in real mode and therefore top 4 bits of the address passed in the call are ignored. So does the patch. This converts h_rtas() to use existing rtas_ld() handlers. This fixed rtas_ld()/rtas_st() to ignore top 4 bits. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit dcb861cb883e9e6d236514a4d0b4def4db736d13 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Sep 27 18:11:51 2013 +1000 spapr: Add ibm, purr property on power7 and newer PAPR+ says that no "ibm,purr" tells the guest that H_PURR is not supported. However some guests still try calling H_PURR on POWER7 unless the property is present and equal to 0. This adds the property for CPUs supporting the PURR special register. Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 3bf6eedd4b6ee5cb7be53aa962583a24293d3441 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Sep 24 15:59:55 2013 +1000 spapr: increase temporary fdt buffer size At the moment the size of the buffer is set to 64K which is enough for approximately 150 VCPUs which is not the limit. This increases the buffer up to 256K which allows having a tree for approximately 600 VCPUs which is way beyond the real number we need. As only the real size of the tree is copied to the guest, there will be no impact on existing configurations. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 9633fcc6a02f23e3ef00aa5fe3fe9c41f57c3456 Author: Alexander Graf <agraf@xxxxxxx> Date: Wed Sep 25 15:41:12 2013 +0200 PPC: Fix L2CR write accesses Commit 2345f1c01 was supposed to render L2CR writes into noops. Instead, it made them illegal instruction traps which apparently didn't confuse XNU, but can easily confuse other OSs. Fix it up by actually doing nothing when we write to L2CR. Reported-by: Julio Guerra <guerr@xxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> Tested-by: Julio Guerra <guerr@xxxxxxxx> commit bbfb6f132abc032229f5c1f25e6e959861c6f759 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Sep 25 17:42:46 2013 +1000 target-ppc: Little Endian Correction to Load/Store Vector Element The Load Vector Element (lve*x) and Store Vector Element (stve*x) instructions not only byte-swap in Little Endian mode, they also invert the element that is accessed. For example, the RTL for lvehx contains this: eb <-- EA[60:63] if Big-Endian byte ordering then VRT[8*eb:8*eb+15] <-- MEM(EA,2) else VRT[112-(8*eb):127-(8*eb)] <-- MEM(EA,2) This patch adds the element inversion, as described in the last line of the RTL. Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 04f1f7842e18c4b5e50203cc5b207cafb7c62974 Author: Tom Musta <tommusta@xxxxxxxxx> Date: Wed Sep 25 17:41:13 2013 +1000 ppc: Add CFAR, DAR and DSISR to the dictionary of printable registers The CFAR, DAR and DSISR registers are currently missing from the dictionary of registers that may be printed in the QEMU console. These are interesting registers when debugging. With this patch, the following commands work properly: (qemu) print $cfar (qemu) print $dar (qemu) print $dsisr Signed-off-by: Tom Musta <tommusta@xxxxxxxxx> Reviewed-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 16457e7f4a10125db06b84e5e843d9544552436e Author: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Date: Wed Sep 25 17:40:15 2013 +1000 pseries: Fix loading of little endian kernels Try loading the kernel as little endian if it fails big endian. Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Reviewed-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 09b04845a7b7ffba2fa0cd99a2329f6e8ffa9027 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Aug 27 13:42:47 2013 +1000 pseries: Update SLOF firmware image This has reworked USB OHCI and adds support of USB EHCI, VIRTIO-SCSI and various fixes (IBM VSCSI, VGA and more). The full list of fixes is: * usb-ohci: Convert td-phys every time to td-virt * usb-storage: Fix cbwflags field * Add -fno-strict-aliasing in global CFLAGS * usb: fix various issues found with js2x * Move hex64-{decode,encode}-unit to node.fs * usb: Use separate in-memory endian swap * usb-ohci: collect TDs from done list * js2x: more fixes * js2x: Fix build of takeover image * js2x: use new usb stack * usb-ohci: Use proper memory barriers always * usb: Fix a couple of warnings * Fix $cat-instance-unit * Cache phandle of /chosen * Use root.fs on qemu as well * usb-ehci: Add ehci handshake * usb: add mb for write accessors * usb-ohci: add missing memory barriers * usb-ohci: suspend the controller in exit code path * usb-ohci: Add a reset when closing the OHCI * usb: Use proper accessors for MMIO and separate in-memory endian swap * Use a global definition of sync() and mb() * net-snk: Remove exception handling * usb: unmap buffers * slof: call quiesce on closing of stdin * usb-kbd: accept "s" to drop to OF prompt * USB storage driver * usb-ohci: add Bulk transfer support * usb-ehci: Add bulk support * usb-core: add usb bulk support * USB generic hub device driver * usb-ehci: setup new device * usb-ehci: Check ehci ports * usb-ehci: initialize controller * USB keyboard driver * usb-core: setup new device * usb-core: create dev pool allocation * usb-ohci: implement ohci send control * usb-core: usb send control * usb-core: implement usb_{get,put}_pipe routines * usb-ohci: allocate pipe pool * usb-ohci: reset, init and check-ports * Add standard header stdbool.h * usb-slof: forth support routines for C * usb-ehci: Add USB EHCI skeleton * usb-core: Add register accessor functions * Use __builtin_bswap routines for endianness swapping * usb-core: hcd registration and query routines * usb-core: adding generic dev-hci.fs * usb-core: registration and makefiles * Add new USB code * Remove old usb code * vga: fix hcall-invert-screen and hcall-blink-screen * Enumerate disk/cdrom aliases for multiple disks or cdroms * scsi: unify scsi probing code * vscsi: generalizing probe code * virtio-scsi: iterate through targets * scsi: unify and use make-disk-alias * nvram: remove unnecessary prints * Add hack to client interface finddevice of "/memory" * scsi: Fix cdrom boot crash when no medium present * Look for /memory@0, not just /memory * Fix instance>qname crashing when displaying instance arguments * Fix js2x build * scsi-disk: Bound check read-blocks * Fix off by one error in scsi-disk get-capacity * scsi: fix report-luns handling * SLOF: virtio-scsi block driver code * scsi: Move bits of vio-vscsi.fs to a common helpers file * scsi: Move scsi-disk.fs to a generic place * SLOF: virtio-scsi helper routines * SLOF: virtio-scsi - add pci device file * iso9660: Don't constantly reallocate the read buffer * vscsi: Sanitize interface between scsi-disk.fs and vio-vscsi.fs * vio-vscsi: Rework vio-vscsi support * virtio: Add a virtio-set-qaddr helper * disk-label: Allocate 4096 bytes for 4k block devices * disk-label: Increase the max size of the PReP boot partition * Make load-base a real environment variable * vio-vscsi: Switch to using a wildcard "disk" node and make scsi-disk generic * Fix disk-label package to use proper instance path * Increase size of catpad * Fix instance>path to contain unit address for wildcard nodes * Fix handling of wildcard nodes in open-dev * vio-vscsi: Get CRQ on open and release on close Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit ab6f2bbb2871db8a7ed2457328e864cdf2e2fc82 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 24 20:24:43 2013 +0200 qemu-iotests: Test for loading VM state from qcow2 Add a test for saving a VM state from a qcow2 image and loading it back (with having restarted qemu in between); this should work without any problems. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit ec426ff808cd421036f81ab34c0d5884743982aa Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Sun May 5 11:06:37 2013 +0200 hw/microblaze: Add support for loading initrd images Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit d0b022a0e9dcf574d56243f6039d675ba80dba16 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Sun May 5 10:52:41 2013 +0200 hw/microblaze: Indentation cleanups Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 11a7621763e7c91fef5169942a90e30bfd66a837 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Wed Oct 23 16:54:31 2013 +0200 microblaze: At swx, check that the reserved word is unmodified This improves the reservation check for system emulation, making it possible to catch stores that modify reserved word. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 4a536270454cc6e59960857a4e4a7c1ebb7fdd4b Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Wed Oct 23 16:44:08 2013 +0200 microblaze: Turn res_addr into a tcg global Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 536446e914caa8702053efb506b4f4d92128d7e6 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Wed Oct 23 13:58:08 2013 +0200 microblaze: Move the saving of the reservation addr into gen_load No functional change. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 09b9f113ad9e2bad57b41f6c67228353972ad1af Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Thu Oct 24 19:18:28 2013 +0200 microblaze: Improve src Microblaze carry is mirrored in MSR[31], pick it directly from there. Also, no need to mask cpu_R[dc->ra] when calling write_carry. 15% improvement in linux-user src loops. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit bb3cb951ef530da7d248051347c974e4d20e6ea0 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Thu Oct 24 19:03:44 2013 +0200 microblaze: Improve srl write_carry only looks at bit zero, no need to mask out the others. Meassured a 12% speed improvement in linux-user srl loops. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit a235900e225d21237a13333eaff40198974bc861 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Thu Oct 24 18:49:46 2013 +0200 microblaze: Simplify andn by using tcg_gen_andc Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 65ab5eb4ede9859b83a35c24c0d36936e62e76a2 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Thu Oct 24 12:49:05 2013 +0200 microblaze: Make write_carryi input a boolean Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 04ec7df7085b71894f18668c5164370547eb2e76 Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Thu Oct 24 22:31:22 2013 +0200 microblaze: Clarify expected input of write_carry Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit fb8fe35f63a56170cf1bf92b1991d0056385b901 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 09:16:03 2013 +0200 block/vpc: check that the image has not been truncated this adds a check that a dynamic VHD file has not been accidently truncated (e.g. during transfer or upload). Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit fefddf951b6dfe51c28d41f86669bfffb68c7a15 Author: Peter Lieven <pl@xxxxxxx> Date: Thu Oct 24 08:53:34 2013 +0200 qemu-img: add special exit code if bdrv_check is not supported currently it is not possible to distinguish by exitcode if there has been an error or if bdrv_check is not supported by the image format. Change the exitcode from 1 to 63 for the latter case. Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 6e13610aa454beba52944e8df6d93158d68ab911 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Sun Oct 20 21:52:35 2013 +0200 qcow2: Unset zero_beyond_eof in save_vmstate Saving the VM state is done using bdrv_pwrite. This function may perform a read-modify-write, which in this case results in data being read from beyond the end of the virtual disk. Since we are actually trying to access an area which is not a part of the virtual disk, zero_beyond_eof has to be set to false before performing the partial write, otherwise the VM state may become corrupted. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit eedff66f21e542650d895801549ce05ac108278b Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Sun Oct 20 20:28:20 2013 +0200 qcow2: Restore total_sectors value in save_vmstate Since df2a6f29a5, bdrv_co_do_writev increases the total_sectors value of a growable block devices on writes after the current end. This leads to the virtual disk apparently growing in qcow2_save_vmstate, which in turn affects the disk size captured by the internal snapshot taken directly afterwards through e.g. the HMP savevm command. Such a "grown" snapshot cannot be loaded after reopening the qcow2 image, since its disk size differs from the actual virtual disk size (writing a VM state does not actually increase the virtual disk size). Fix this by restoring total_sectors at the end of qcow2_save_vmstate. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b4350deed67b95651896ddb60cf9f765093a4848 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Wed Oct 9 21:33:44 2013 +0200 audio: honor QEMU_AUDIO_TIMER_PERIOD instead of waking up every *nano* second Now that we no longer have MIN_REARM_TIMER_NS a bug in the audio subsys has clearly shown it self by trying to make a timer fire every nano second. Note we have a similar problem in 1.6, 1.5 and older but there MIN_REARM_TIMER_NS limits the wakeups caused by audio being active to 4000 times / second. This still causes a host cpu load of 50 % for simply playing audio, where as with this patch git master is at 13%, so we should backport this to 1.5 and 1.6 too. Note this will not apply to 1.5 and 1.6 as is. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit c90daa1c109348099088c1cc954c1e9f3392ae03 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Oct 8 21:58:12 2013 +0200 usb-hcd-xhci: Update endpoint context dequeue pointer for streams too With streams the endpoint context dequeue pointer should point to the dequeue value for the currently active stream. At least Linux guests expect it to point to value set by an set_ep_dequeue upon completion of the set_ep_dequeue (before kicking the ep). Otherwise the Linux kernel will complain (and things won't work): xhci_hcd 0000:00:05.0: Mismatch between completed Set TR Deq Ptr command & xHCI internal state. xhci_hcd 0000:00:05.0: ep deq seg = ffff8800366f0880, deq ptr = ffff8800366ec010 Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 582d6f4aba0ff24604a82b48aee2db17b100d4b4 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Oct 8 21:58:11 2013 +0200 usb-hcd-xhci: Report completion of active transfer with CC_STOPPED on ep stop As we should per the XHCI spec "4.6.9 Stop Endpoint". Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 8de1838afed4b5b05d18cc42a3e5a6fe9b19f29b Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Oct 8 21:58:10 2013 +0200 usb-hcd-xhci: Remove unused cancelled member from XHCITransfer Since qemu's USB model is geared towards emulated devices cancellation is instanteneous, so no need to wait for cancellation to complete, as such there is no wait for cancellation code, and the cancelled bool as well as the bogus comment about it can be removed. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 946ff2c0c353e4bf493f6ff2bcc308adddee4a4c Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Oct 8 21:58:09 2013 +0200 usb-hcd-xhci: Remove unused sstreamsm member from XHCIStreamContext Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f34d5c750897abb3853910ce73f63d88d74dc827 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Oct 8 21:58:08 2013 +0200 usb-host-libusb: Detach kernel drivers earlier If we detach the kernel drivers on the first set_config, then they will be still attached when the device gets its initial reset. Causing the drivers to re-initialize the device after the reset, dirtying the device state. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 1294ca797c6bee39d4dbc3e92010873ce4047e0e Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Oct 8 21:58:07 2013 +0200 usb-host-libusb: Configuration 0 may be a valid configuration Quoting from: linux/Documentation/ABI/stable/sysfs-bus-usb: Note that some devices, in violation of the USB spec, have a configuration with a value equal to 0. Writing 0 to bConfigurationValue for these devices will install that configuration, rather then unconfigure the device. So don't compare the configuration value against 0 to check for unconfigured devices, instead check for a LIBUSB_ERROR_NOT_FOUND return from libusb_get_active_config_descriptor(). Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5af35d7feccaa7d26b72c6c3d14116421d736b36 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Oct 8 21:58:06 2013 +0200 usb-host-libusb: Fix reset handling The guest will issue an initial device reset when the device is attached, but since the current usb-host-libusb code only actually does the reset when udev->configuration != 0, and on attach the device is not yet configured, the reset gets ignored. This means that the device gets passed to the guest in an unknown state, which is not good. The udev->configuration check is there because of the release / claim interfaces done around the libusb_device_reset call, but these are not necessary. If interfaces are claimed when libusb_device_reset gets called libusb will release + reclaim them itself. The usb_host_ep_update call also is not necessary. If the reset succeeds the original config and interface alt settings will be restored. Last if the reset fails, that means the device has either disconnected or morphed into an another device and has been completely re-enumerated, so it is treated by the host as a new device and our handle is invalid, so on reset failure we need to call usb_host_nodev(). Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit cc94712b9ec93d1301eea1fb8f1b08589c7e242e Author: Eric Blake <eblake@xxxxxxxxxx> Date: Sat Oct 19 17:52:33 2013 +0100 qapi: fix documentation example The QMP wire format uses "", not '', around strings. * docs/qapi-code-gen.txt: Fix typo. Signed-off-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c20b7fa4b2fedd979bcb0cc974bb5d08a10e3448 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Oct 16 19:17:08 2013 +0200 monitor: eliminate monitor_event_state_lock This lock does not protect anything that the BQL does not already protect. Furthermore, with -nodefaults and no monitor, the mutex is not initialized but monitor_protocol_event_queue is called anyway, which causes a crash under mingw (and only works by luck. under Linux or other POSIX OSes). Reported-by: Orx Goshen <orx.goshen@xxxxxxxxx> Cc: Daniel Berrange <berrange@xxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit fc8ead74674b7129e8f31c2595c76658e5622197 Merge: 3551643 7174e54 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 18 10:03:24 2013 -0700 Merge remote-tracking branch 'qemu-kvm/uq/master' into staging # By Paolo Bonzini (2) and Jan Kiszka (1) # Via Gleb Natapov * qemu-kvm/uq/master: kvmvapic: Prevent reading beyond the end of guest RAM x86: cpuid: reconstruct leaf 0Dh data x86: fix migration from pre-version 12 Message-id: 1382108641-4862-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 3551643eb7198398017829a7d26646de1710b0b6 Merge: 1da9772 23c37c3 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 18 10:02:48 2013 -0700 Merge remote-tracking branch 'stefanha/net' into staging # By Amos Kong # Via Stefan Hajnoczi * stefanha/net: net/rtl8139: update network information when macaddr is changed in guest net/e1000: update network information when macaddr is changed in guest net: update nic info during device reset Message-id: 1382103314-21608-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 1da9772d83576cef463b88adb7c390f978ef4ea3 Merge: 9896449 dbbcaa8 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 18 10:02:14 2013 -0700 Merge remote-tracking branch 'stefanha/block' into staging # By Fam Zheng (3) and others # Via Stefan Hajnoczi * stefanha/block: vmdk: fix VMFS extent parsing vmdk: Only read cid from image file when opening virtio: Remove unneeded memcpy block/raw-win32: Always use -errno in hdev_open blockdev: fix cdrom read_only flag sd: Avoid access to NULL BlockDriverState hmp: drop bogus "[not inserted]" Message-id: 1382105915-27735-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 989644915c281ac83f06f65923d716272ede1ed8 Merge: 1cb9b64 041603f Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 18 10:01:49 2013 -0700 Merge remote-tracking branch 'bonzini/iommu-for-anthony' into staging # By Paolo Bonzini (10) and others # Via Paolo Bonzini * bonzini/iommu-for-anthony: exec: remove qemu_safe_ram_ptr icount: make it thread-safe icount: document (future) locking rules for icount icount: prepare the code for future races in calling qemu_clock_warp icount: reorganize icount_warp_rt icount: use cpu_get_icount() directly timer: add timer_mod_anticipate and timer_mod_anticipate_ns timer: extract timer_mod_ns_locked and timerlist_rearm timer: make qemu_clock_enable sync between disable and timer's cb qemu-thread: add QemuEvent timer: protect timers_state's clock with seqlock seqlock: introduce read-write seqlock vga: Mark relevant portio lists regions as coalesced MMIO flushing cirrus: Mark vga io region as coalesced MMIO flushing portio: Allow to mark portio lists as coalesced MMIO flushing compatfd: switch to QemuThread memory: fix 128 arithmetic in info mtree Message-id: 1382024935-28297-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 1cb9b64df380f232bcd142ab27c085cff0add1d8 Merge: c21611a 2324841 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 18 10:01:37 2013 -0700 Merge remote-tracking branch 'bonzini/configure' into staging # By Peter Maydell (3) and Ã?kos Kovács (2) # Via Paolo Bonzini * bonzini/configure: ui/Makefile.objs: delete unnecessary cocoa.o dependency default-configs/: CONFIG_GDBSTUB_XML removed Makefile.target: CONFIG_NO_* variables removed rules.mak: New string testing functions rules.mak: New logical functions for handling y/n values commit c21611ab8d0d6e0b3f3e5483777b5c929fb5a96c Merge: cd22e32 9fa0328 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 18 10:01:21 2013 -0700 Merge remote-tracking branch 'spice/spice.v75' into staging # By Gerd Hoffmann (2) and others # Via Gerd Hoffmann * spice/spice.v75: spice: fix multihead support spice-display: add display channel id to the debug messages. Fix VNC SASL authentication when using a QXL device spice: replace use of deprecated API Message-id: 1382006760-19388-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit cd22e320a01b790d158d915a45d930f9d0a4bc91 Merge: 1680d48 ca529f8 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 18 10:01:08 2013 -0700 Merge remote-tracking branch 'filippov/tags/20131015-xtensa' into staging xtensa queue 2013-10-15 # gpg: Signature made Tue 15 Oct 2013 06:27:41 AM PDT using RSA key ID F83FA044 # gpg: Can't check signature: public key not found # By Max Filippov # Via Max Filippov * filippov/tags/20131015-xtensa: target-xtensa: add in_asm logging Message-id: 1381844297-1728-1-git-send-email-jcmvbkbc@xxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit dbbcaa8d4358fdf3c42bf01e9e2d687300e84770 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Oct 18 15:07:33 2013 +0800 vmdk: fix VMFS extent parsing The VMFS extent line in description file doesn't have start offset as FLAT lines does, and it should be defaulted to 0. The flat_offset variable is initialized to -1, so we need to set it in this case. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c338b6ad609699cf352c8dd6338360b7e3895ad0 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Oct 18 13:17:19 2013 +0800 vmdk: Only read cid from image file when opening Previously cid of parent is parsed from image file for every IO request. We already have L1/L2 cache and don't have assumption that parent image can be updated behind us, so remove this to get more efficiency. The parent CID is checked only for once after opening. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 23c37c37f0280761072c23bf67d3a4f3c0ff25aa Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Oct 17 15:02:50 2013 +0800 net/rtl8139: update network information when macaddr is changed in guest rtl8139 has same problem as e1000, nic info isn't updated when macaddr is changed in guest. This patch updates the nic info when the last bit of macaddr is written. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7c36507c2b8776266f50c5e2739bd18279953b93 Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Oct 17 15:02:49 2013 +0800 net/e1000: update network information when macaddr is changed in guest If we change macaddr in guest by 'ifconfig eth0 hw ether 12:12:12:34:35:36', the mac register of e1000 is already updated, but we don't update network information in qemu. Therefor, the information in monitor is wrong. This patch updates nic info when the second part of macaddr is written. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 655d3b63b036b70714adbdae685055f1bda0f8f1 Author: Amos Kong <akong@xxxxxxxxxx> Date: Thu Oct 17 16:38:34 2013 +0800 net: update nic info during device reset macaddr is reset during device reset, but nic info isn't updated, this problem exists in e1000 & rtl8139 Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b432779a9fe9c2a1bb8cbd98feb341af6e32f892 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Oct 17 21:23:26 2013 +0200 virtio: Remove unneeded memcpy Report from valgrind: ==19521== Source and destination overlap in memcpy(0x31d38938, 0x31d38938, 64) ==19521== at 0x4A0A343: memcpy@@GLIBC_2.14 (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==19521== by 0x42774E: virtio_blk_device_init (virtio-blk.c:686) ==19521== by 0x46EE9E: virtio_device_init (virtio.c:1158) ==19521== by 0x25405E: device_realize (qdev.c:178) ==19521== by 0x2559B5: device_set_realized (qdev.c:699) ==19521== by 0x3A819B: property_set_bool (object.c:1315) ==19521== by 0x3A6CE0: object_property_set (object.c:803) Valgrind is right: blk == &s->blks, so it is a memcpy of 64 byte with source == destination which can be removed. Reported-by: Dave Airlie <airlied@xxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 041603fe5d4537cd165941f96bd76a31f7f662fd Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Sep 9 17:49:45 2013 +0200 exec: remove qemu_safe_ram_ptr This is not needed since the RAM list is not modified anymore by qemu_get_ram_ptr. Replace it with qemu_get_ram_block. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 17a15f1b768fe2aab8c5f360b05c0daddf0c438b Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Oct 3 15:17:25 2013 +0200 icount: make it thread-safe This lets threads other than the I/O thread use vm_clock even in -icount mode. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit a3270e19ccf05603dfaf09e1f18510f7c93095e0 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Oct 7 17:18:15 2013 +0200 icount: document (future) locking rules for icount Reviewed-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit ce78d18ced118b03e821135e702ba1d513c8b2a7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Oct 7 17:30:02 2013 +0200 icount: prepare the code for future races in calling qemu_clock_warp Computing the deadline of all vm_clocks is somewhat expensive and calls out to qemu-timer.c; two reasons not to do it in the seqlock's write-side critical section. This however opens the door for races in setting and reading vm_clock_warp_start. To plug them, we need to cover the case where a new deadline slips in between the call to qemu_clock_deadline_ns_all and the actual modification of the icount_warp_timer. Restrict changes to vm_clock_warp_start and the icount_warp_timer's expiration time, to only move them back (which would simply cause an early wakeup). If a vm_clock timer is cancelled while CPUs are idle, this might cause the icount_warp_timer to fire unnecessarily. This is not a problem, after it fires the timer becomes inactive and the next call to timer_mod_anticipate will be precise. In addition to this, we must deactivate the icount_warp_timer _before_ checking whether CPUs are idle. This way, if the "last" CPU becomes idle during the call to timer_del we will still set up the icount_warp_timer. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 8ed961d95708ee6cadac22fba7762724d533a5b4 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Oct 7 17:26:07 2013 +0200 icount: reorganize icount_warp_rt To prepare for future code changes, move the increment of qemu_icount_bias outside the "if" statement. Also, hoist outside the if the check for timers that expired due to the "warping". The check is redundant when !runstate_is_running(), but doing it this way helps because the code that increments qemu_icount_bias will be a critical section. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 468cc7cf3b85dd20a833773e6bde9f720f2df677 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Oct 7 17:21:51 2013 +0200 icount: use cpu_get_icount() directly This will help later when we will have to place these calls in a critical section, and thus call a version of cpu_get_icount() that does not take the lock. Reviewed-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit add40e9777de139fb317ca6b1fb0dc142601cfcd Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Oct 3 15:11:43 2013 +0200 timer: add timer_mod_anticipate and timer_mod_anticipate_ns These let a user anticipate the deadline of a timer, atomically with other sites that call the function. This helps avoiding complicated lock hierarchies. Reviewed-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0f809e5fbebb36788aea3523be7f93c04f2c7f8c Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Oct 3 15:06:39 2013 +0200 timer: extract timer_mod_ns_locked and timerlist_rearm These will be reused in timer_mod_anticipate functions. Reviewed-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 3c05341157f4d08dc3cc8ffa675a0aaa4818d028 Author: Liu Ping Fan <qemulist@xxxxxxxxx> Date: Wed Sep 25 14:21:00 2013 +0800 timer: make qemu_clock_enable sync between disable and timer's cb After disabling the QemuClock, we should make sure that no QemuTimers are still in flight. To implement that with light overhead, we resort to QemuEvent. The caller of disabling will wait on QemuEvent of each timerlist. Note, qemu_clock_enable(foo,false) can _not_ be called from timer's cb. Also, the callers of qemu_clock_enable() should be protected by the BQL. Signed-off-by: Liu Ping Fan <pingfank@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c7c4d063f50f0de980d99f02e055722227d703bc Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 25 14:20:59 2013 +0800 qemu-thread: add QemuEvent This emulates Win32 manual-reset events using futexes or conditional variables. Typical ways to use them are with multi-producer, single-consumer data structures, to test for a complex condition whose elements come from different threads: for (;;) { qemu_event_reset(ev); ... test complex condition ... if (condition is true) { break; } qemu_event_wait(ev); } Or more efficiently (but with some duplication): ... evaluate condition ... while (!condition) { qemu_event_reset(ev); ... evaluate condition ... if (!condition) { qemu_event_wait(ev); ... evaluate condition ... } } QemuEvent provides a very fast userspace path in the common case when no other thread is waiting, or the event is not changing state. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit cb365646a942ed58aae053064b2048a415337ba2 Author: Liu Ping Fan <qemulist@xxxxxxxxx> Date: Wed Sep 25 14:20:58 2013 +0800 timer: protect timers_state's clock with seqlock QEMU_CLOCK_VIRTUAL may be read outside BQL. This will make its foundation, i.e. cpu_clock_offset exposed to race condition. Using private lock to protect it. After this patch, reading QEMU_CLOCK_VIRTUAL is thread safe unless use_icount is true, in which case the existing callers still rely on the BQL. Lock rule: private lock innermost, ie BQL->"this lock" Signed-off-by: Liu Ping Fan <pingfank@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit ea753d81e8b085d679f13e4a6023e003e9854d51 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 25 14:20:57 2013 +0800 seqlock: introduce read-write seqlock Seqlock implementation for QEMU. Usage idiom reader: do { start = seqlock_read_begin(&sl); ... } while (seqlock_read_retry(&sl, start)); writer: seqlock_write_lock(&sl); ... seqlock_write_unlock(&sl); initialization: seqlock_init(QemuSeqLock *sl, QemuMutex *mutex) mutex could be NULL if the caller will provide its own protection for concurrent write sides (typically using the BQL). Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c46860ea53854a96b11af0d6e23b623ce199e95e Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Jul 2 21:37:40 2013 +0200 vga: Mark relevant portio lists regions as coalesced MMIO flushing This allows to remove the explicit qemu_flush_coalesced_mmio_buffer calls. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit eb25a1d9d4e88f4dd41702e35199ce4bbd7d1cee Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Jul 2 21:19:02 2013 +0200 cirrus: Mark vga io region as coalesced MMIO flushing This allows to remove the explicit qemu_flush_coalesced_mmio_buffer calls - the memory core will invoke them now. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c76bc480e2d70762d02373678942c98fb193b9e5 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Jul 2 20:22:37 2013 +0200 portio: Allow to mark portio lists as coalesced MMIO flushing This will enable us to remove all remaining explicit calls of qemu_flush_coalesced_mmio_buffer in IO handlers. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 518420dfec2f082cfecbc6eec79fcc91388cf751 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Thu May 2 10:21:18 2013 +0200 compatfd: switch to QemuThread qemu_thread_create already does signal blocking and detaching for us. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit a66670c79c5c7d530d818430ffcdaa25cbf2c2ab Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Aug 30 18:10:38 2013 +1000 memory: fix 128 arithmetic in info mtree mtree_print_mr() calls int128_get64() in 3 places but only 2 places handle 2^64 correctly. This fixes the third call of int128_get64(). Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 45d57f6e718e44e55780bcf1d09fa140dce7ec08 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Oct 11 14:30:16 2013 +0200 block/raw-win32: Always use -errno in hdev_open On one occasion, hdev_open() returned -1 in case of an unknown error instead of a proper -errno value. Adjust this to match the behavior of raw_open() (in raw-win32), which is to return -EINVAL in this case. Also, change the call to error_setg*() to match the one in raw_open() as well. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0624c7f916b4d97f17726d9b295d6a6b0dc5076d Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Oct 10 10:30:27 2013 +0200 e820: pass high memory too. We have a fw_cfg entry to pass e820 entries from qemu to the firmware. Today it's used to pass reservations only. This patch makes qemu pass entries for RAM too. This allows to pass RAM sizes larger than 1TB to the firmware and it will also allow to pass non-contignous memory ramges should we decide to implement that some day, say for our virtual numa nodes. Obviously this needs some extra care to not break existing firware. SeaBIOS loads the entries and happily adds them without looking at the type. Which is problematic for memory below 4g as this will overwrite reservations added for bios memory etc. For memory above 4g it works just fine, seabios will merge the entry derived from cmos with the one loaded from fw_cfg. OVMF doesn't look at the fw_cfg e820 table. coreboot doesn't look at the fw_cfg e820 table. Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-By: Igor Mammedov <imammedo@xxxxxxxxxx> commit 9fa032866daae68357d99abc725c18fe9ed4b61b Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Oct 11 22:39:59 2013 +0200 spice: fix multihead support This patch fixes spice display initialization to handle multihead properly. spice-core now keeps track of which QemuConsole has a spice display channel attached to it and which has not. It also manages display channel ids. spice-display looks at all QemuConsoles and will pick up any graphic console not yet bound to a spice channel (which in practice are all non-qxl graphic devices). Result is that (a) you'll get a spice client window for each graphical device now (first only without this patch), and (b) mixing qxl and non-qxl vga cards works properly. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 35b2122db446a03be9b88f540e865930efd01d6a Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Oct 17 12:11:43 2013 +0200 spice-display: add display channel id to the debug messages. And s/__FUNCTION__/__func__/ while being at it. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 764eb39d1b6f614e9734ea3ed1b7dcf6c3aaa260 Author: Christophe Fergeau <cfergeau@xxxxxxxxxx> Date: Wed Oct 16 17:52:33 2013 +0200 Fix VNC SASL authentication when using a QXL device ui/vnc.c:vnc_display_open() and spice-server/server/reds.c:do_spice_init() are both calling sasl_server_init(). If spice_server_set_sasl_appname() hasn't been called, spice-server will call it with "spice" as an appname, causing cyrus-sasl to try to use a /etc/sasl2/spice.conf config file rather than the /etc/sasl2/qemu.conf file that QEMU uses. When using -spice sasl on the command line, QEMU properly calls spice_server_set_sasl_appname() to set the SASL appname as "qemu", but when using a QXL device without using SPICE, spice_server_init() is called from qemu_spice_add_interface() without setting the appname to "qemu", which then causes the VNC code to try to use spice.conf instead of qemu.conf. Signed-off-by: Christophe Fergeau <cfergeau@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 26defe81f6a878f33e0aaeb1df4d0d7022c929ca Author: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Date: Fri Oct 4 13:10:46 2013 +0200 spice: replace use of deprecated API hose API are deprecated since 0.11, and qemu depends on 0.12 already. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit a7fdbcf0e6e52d935ebff6d849fe4b5473e5860d Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Oct 15 17:45:50 2013 +0800 blockdev: fix cdrom read_only flag Since 0ebd24e0, cdrom doesn't have read-only on by default, which will error out when using an read only image. Fix it by setting the default value when parsing opts. Reported-by: Edivaldo de Araujo Pereira <edivaldoapereira@xxxxxxxxxxxx> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 794cbc26eb94ce13c75d105eea9ff0afff56e2c2 Author: Andreas Färber <afaerber@xxxxxxx> Date: Wed Oct 16 15:24:01 2013 +0200 sd: Avoid access to NULL BlockDriverState Commit 4f8a066b5fc254eeaabbbde56ba4f5b29cc68fdf (blockdev: Remove IF_* check for read-only blockdev_init) added a usage of bdrv_is_read_only() to sd_init(), which is called for versatilepb, versatileab and xilinx-zynq-a9 machines among others with NULL argument by default, causing the new qom-test to fail. Add a check to prevent this. Suggested-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 684b25447c10b9171e5aa9305075b830885fe6e3 Author: Mike Qiu <qiudayu@xxxxxxxxxxxxxxxxxx> Date: Wed Oct 16 23:16:01 2013 -0400 hmp: drop bogus "[not inserted]" Commit 3e9fab690d59ac15956c3733fe0794ce1ae4c4af ("block: Add support for throttling burst max in QMP and the command line.") introduced bogus "[not inserted]" output, possibly due to a merge failure. Remove this artifact. Output of 'info block' scsi0-hd0: /images/f18-ppc64.qcow2 (qcow2) [not inserted] scsi0-cd2: [not inserted] Removable device: not locked, tray closed floppy0: [not inserted] Removable device: not locked, tray closed sd0: [not inserted] Removable device: not locked, tray closed There will be no additional lines between scsi0-hd0 and scsi0-cd2. At the same time, scsi0-hd0 already inserted, but still has '[not inserted]' flag. This line should be removed. This patch is to solve this. Signed-off-by: Mike Qiu <qiudayu@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2324841c0275f31505168e7a6ceb71bcede92d33 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Thu Oct 10 19:26:09 2013 +0800 ui/Makefile.objs: delete unnecessary cocoa.o dependency Delete an unnecessary dependency for cocoa.o; we already have a general rule that tells Make that we can build a .o file from a .m source using an ObjC compiler, so this specific rule is unnecessary. Further, it is using the dubious construct "$(SRC_PATH)/$(obj)" to get at the source directory, which will break when $(obj) is redefined as part of the preparation for per-object library support. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit b77abd95a9484ca5ffd7fb4cda25155bb8677bfb Author: Ã?kos Kovács <akoskovacs@xxxxxxx> Date: Fri Sep 13 18:25:54 2013 +0100 default-configs/: CONFIG_GDBSTUB_XML removed Makefile.target: Build gdbstub-xml.o only when TARGET_XML_FILES is not empty. Signed-off-by: Ã?kos Kovács <akoskovacs@xxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit cf01ba9eef81d828c8292eacab70c67c81ca4501 Author: Ã?kos Kovács <akoskovacs@xxxxxxx> Date: Fri Sep 13 18:25:53 2013 +0100 Makefile.target: CONFIG_NO_* variables removed CONFIG_NO_* variables replaced with the lnot logical function Signed-off-by: Ã?kos Kovács <akoskovacs@xxxxxxx> [PMM: fixed a few CONFIG_NO_* uses that were missed] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 9ef622e31e7168a9a2c80f95d245c2ad156e3fa7 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Sep 13 18:25:52 2013 +0100 rules.mak: New string testing functions Add new string testing functions which return a y/n result: eq : are two strings equal (ignoring leading/trailing space)? ne : are two strings unequal? isempty : is a string empty? notempty : is a string non-empty? Based on an idea by Ã?kos Kovács <akoskovacs@xxxxxxx>. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 837a2e267f9c01cd9204d5b701712d6d26a5220e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Sep 13 18:25:51 2013 +0100 rules.mak: New logical functions for handling y/n values Add new logical functions for handling y/n values like those we use in CONFIG_FOO variables: lnot : logical NOT land : logical AND lor : logical OR lxor : logical XOR leqv : logical equality, inverse of lxor lif : like Make's $(if) but with an eq-like test Based on an idea by Ã?kos Kovács <akoskovacs@xxxxxxx>. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit ca529f8e13557cc2feb2eee3872d422712d9bcb0 Author: Max Filippov <jcmvbkbc@xxxxxxxxx> Date: Sat Aug 17 12:30:57 2013 +0400 target-xtensa: add in_asm logging Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> commit 1680d485777ecf436d724631ea8722cc0c66990e Merge: ded77da f8da40a Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Oct 14 09:59:59 2013 -0700 Merge remote-tracking branch 'rth/tcg-ldst-6' into staging # By Richard Henderson # Via Richard Henderson * rth/tcg-ldst-6: target-alpha: Convert to new ldst opcodes tcg-ppc64: Support new ldst opcodes tcg-ppc: Support new ldst opcodes tcg-ppc64: Convert to le/be ldst helpers tcg-ppc: Convert to le/be ldst helpers tcg-ppc64: Use TCGMemOp within qemu_ldst routines tcg-ppc: Use TCGMemOp within qemu_ldst routines tcg-arm: Improve GUEST_BASE qemu_ld/st tcg-arm: Convert to new ldst opcodes tcg-arm: Tidy variable naming convention in qemu_ld/st tcg-arm: Convert to le/be ldst helpers tcg-arm: Use TCGMemOp within qemu_ldst routines tcg-i386: Support new ldst opcodes tcg-i386: Remove "cb" output restriction from qemu_st8 for i386 tcg-i386: Tidy softmmu routines tcg-i386: Use TCGMemOp within qemu_ldst routines tcg: Use TCGMemOp for TCGLabelQemuLdst.opc Message-id: 1381620683-4568-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit ded77da3cd6b6bcd201a4e36abb3294d725be644 Merge: 08683cb 6ef8263 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Oct 14 09:15:47 2013 -0700 Merge remote-tracking branch 'jliu/or32' into staging # By Sebastian Macke # Via Jia Liu * jliu/or32: target-openrisc: Removes a non-conforming behavior for the first page of the memory target-openrisc: Correct handling of page faults. Message-id: 1380789702-18935-1-git-send-email-proljc@xxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 08683cb53286848913d4b58afb3f975a29d93535 Merge: 575ddeb b1c50c5 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Mon Oct 14 09:14:30 2013 -0700 Merge remote-tracking branch 'awilliam/tags/vfio-pci-for-qemu-20131010.0' into staging vfio-pci updates include: - Forgotten MSI affinity patch posted several months ago - Lazy option ROM loading to delay load until after device/bus resets - Error reporting cleanups - PCI hot reset support introduced with Linux v3.12 development kernels - Debug build fix for int128 The lazy ROM loading and hot reset should help VGA assignment as we can now do a bus reset when there are multiple devices on the bus, ex. multi-function graphics and audio cards. # gpg: Signature made Thu 10 Oct 2013 11:26:39 AM PDT using RSA key ID 3BB08B22 # gpg: Can't check signature: public key not found # By Alex Williamson (7) and Alexey Kardashevskiy (1) # Via Alex Williamson * awilliam/tags/vfio-pci-for-qemu-20131010.0: vfio-pci: Fix endian issues in vfio_pci_size_rom() vfio-pci: Add dummy PCI ROM write accessor vfio: Fix debug output for int128 values vfio-pci: Implement PCI hot reset vfio-pci: Cleanup error_reports vfio-pci: Lazy PCI option ROM loading vfio-pci: Test device reset capabilities vfio-pci: Add support for MSI affinity Message-id: 20131010184122.31667.28382.stgit@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 575ddeb459f622a114cbfe37d220c0519ec9c2a4 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Sep 29 20:56:45 2013 +0200 exec: Fix prototype of phys_mem_set_alloc and related functions phys_mem_alloc and its assigned values qemu_anon_ram_alloc and legacy_s390_alloc must have identical argument lists. legacy_s390_alloc uses the size parameter to call mmap, so size_t is good enough for all of them. This patch fixes compiler errors on i686 Linux hosts: CC alpha-softmmu/exec.o exec.c:752:51: error: initialization from incompatible pointer type [-Werror] exec.c: In function 'qemu_ram_alloc_from_ptr': exec.c:1139:32: error: comparison of distinct pointer types lacks a cast [-Werror] exec.c: In function 'qemu_ram_remap': exec.c:1283:21: error: comparison of distinct pointer types lacks a cast [-Werror] Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Message-id: 1380481005-32399-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 742f5d2ed578bb53b2130b6da2c66de9929f4821 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Fri Sep 27 17:15:41 2013 +0300 ssdt-proc: update generated file Update generated ssdt proc hex file (used for systems lacking IASL) after P_BLK length change. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 6ec80ef1502e90d19b90f021514debe32c8689a8 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Fri Sep 27 01:15:14 2013 +0300 ssdt: fix PBLK length We don't really support CPU throttling, so supply 0 PBLK length. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 72c194f7e75cb64b2558111cb111adb49fbf4097 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:14 2013 +0300 i386: ACPI table generation code from seabios This adds C code for generating ACPI tables at runtime, imported from seabios git tree commit 51684b7ced75fb76776e8ee84833fcfb6ecf12dd Although ACPI tables come from a system BIOS on real hw, it makes sense that the ACPI tables are coupled with the virtual machine, since they have to abstract the x86 machine to the OS's. This is widely desired as a way to avoid the churn and proliferation of QEMU-specific interfaces associated with ACPI tables in bios code. Notes: As BIOS can reprogram devices prior to loading ACPI tables, we pre-format ACPI tables but defer loading hardware configuration there until tables are loaded. The code structure was intentionally kept as close to the seabios original as possible, to simplify comparison and making sure we didn't lose anything in translation. Minor code duplication results, to help ensure there are no functional regressions, I think it's better to merge it like this and do more code changes in follow-up patches. Cross-version compatibility concerns have been addressed: ACPI tables are exposed to guest as FW_CFG entries. When running with -M 1.5 and older, this patch disables ACPI table generation, and doesn't expose ACPI tables to guest. As table content is likely to change over time, the following measures are taken to simplify cross-version migration: - All tables besides the RSDP are packed in a single FW CFG entry. This entry size is currently 23K. We round it up to 64K to avoid too much churn there. - Tables are placed in special ROM blob (not mapped into guest memory) which is automatically migrated together with the guest, same as BIOS code. - Offsets where hardware configuration is loaded in ACPI tables are also migrated, this is in case future ACPI changes make us rearrange the tables in memory. This patch reuses some code from SeaBIOS, which was originally under LGPLv2 and then relicensed to GPLv3 or LGPLv3, in QEMU under GPLv2+. This relicensing has been acked by all contributors that had contributed to the code since the v2->v3 relicense. ACKs approving the v2+ relicensing are listed below. The list might include ACKs from people not holding copyright on any parts of the reused code, but it's better to err on the side of caution and include them. Affected SeaBIOS files (GPLv2+ license headers added) <http://thread.gmane.org/gmane.comp.bios.coreboot.seabios/5949>: src/acpi-dsdt-cpu-hotplug.dsl src/acpi-dsdt-dbug.dsl src/acpi-dsdt-hpet.dsl src/acpi-dsdt-isa.dsl src/acpi-dsdt-pci-crs.dsl src/acpi.c src/acpi.h src/ssdt-misc.dsl src/ssdt-pcihp.dsl src/ssdt-proc.dsl tools/acpi_extract.py tools/acpi_extract_preprocess.py Each one of the listed people agreed to the following: > If you allow the use of your contribution in QEMU under the > terms of GPLv2 or later as proposed by this patch, > please respond to this mail including the line: > > Acked-by: Name <email address> Acked-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Acked-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Acked-by: Jason Baron <jbaron@xxxxxxxxxx> Acked-by: David Woodhouse <David.Woodhouse@xxxxxxxxx> Acked-by: Gleb Natapov <gleb@xxxxxxxxxx> Acked-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Acked-by: Dave Frodin <dave.frodin@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Acked-by: Kevin O'Connor <kevin@xxxxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx> Acked-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx> Acked-by: Magnus Christensson <magnus.christensson@xxxxxxxxx> Acked-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Acked-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 1a4b2666dfbd6fbd9b5623a8e0ed6035cd0854fe Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Oct 7 22:12:00 2013 +0300 pc: use new api to add builtin tables At this point the only builtin table we have is the DSDT used for Q35. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 60de1163d5b5013fe964ac0792e9a64a823e73a3 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Oct 7 14:41:40 2013 +0300 acpi: add interface to access user-installed tables Also add a new API to install builtin tables, so that we can distinguish between the two. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 64e9df8d34e493e59c1920358257a7576a560a1a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:13 2013 +0300 hpet: add API to find it Add API to find HPET using QOM. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 309cd62d6b2628b4f0e2850b42011077f40956c7 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:12 2013 +0300 pvpanic: add API to access io port Add API to find pvpanic device and get its io port. Will be used to fill in guest info structure. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 6f1426ab0fad715bccbad60e976ebf420442006c Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:10 2013 +0300 ich9: APIs for pc guest info This adds APIs that will be used to fill in acpi tables, implemented using QOM, to various ich9 components. Some information is still missing in QOM, so we fall back on lookups by type instead. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 277e9340e6a1b0a0e8e988d2f0ac82b18b695c0b Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:11 2013 +0300 piix: APIs for pc guest info This adds APIs that will be used to fill in guest acpi tables. Some required information is still lacking in QOM, so we fall back on lookups by type and returning explicit types. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit f854ecc79957e588bed8ed7e8c1c24ded55fc1e9 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Sep 16 18:09:11 2013 +0300 acpi/piix: add macros for acpi property names Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit b20c9bd5f6d8860856f6078836d197c6c2e27ef1 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:09 2013 +0300 i386: define pc guest info This defines a structure that will be used to fill in acpi tables where relevant properties are not yet available using QOM. Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d916b46494a2a477636a59900ab1609de192f47a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:08 2013 +0300 loader: allow adding ROMs in done callbacks Don't abort if machine done callbacks add ROMs. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit bc70232918ad3fb45c2b5423455a5de6bc7efdef Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:06 2013 +0300 i386: add bios linker/loader This adds a dynamic bios linker/loader. This will be used by acpi table generation code to: - load each table in the appropriate memory segment - link tables to each other - fix up checksums after said linking Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 35c12e60c840bc4840cbbe3f6ca514a53b2e36bc Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:05 2013 +0300 loader: use file path size from fw_cfg.h Avoid a bit of code duplication, make max file path constant reusable. Suggested-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 544d2bfa84c43f9d4c70ca2202a6113d686b8999 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Fri Sep 27 17:16:32 2013 +0300 acpi: ssdt pcihp: updat generated file update generated file, not sure what changed Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d512d0d723cc3a08ac0409e1ab13edfa1cc04c70 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:04 2013 +0300 acpi: pre-compiled ASL files Add pre-compiled ASL files. Useful for systems that do not have IASL. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a31a864273bb501851a4d52a366c645d06a53991 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:03 2013 +0300 acpi: add rules to compile ASL source Detect presence of IASL compiler and use it to process ASL source. If not there, use pre-compiled files in-tree. Add script to update the in-tree files. Note: distros are known to silently update iasl so detect correct iasl flags for the installed version on each run as opposed to at configure time. Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 74523b850189afc23b608918c458b9242757f6d9 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Jul 24 18:56:02 2013 +0300 i386: add ACPI table files from seabios This adds ASL code as well as scripts for processing it, imported from seabios git tree commit 51684b7ced75fb76776e8ee84833fcfb6ecf12dd Will be used for runtime acpi table generation. Note: This patch reuses some code from SeaBIOS, which was originally under LGPLv2 and then relicensed to GPLv3 or LGPLv3, in QEMU under GPLv2+. This relicensing has been acked by all contributors that had contributed to the code since the v2->v3 relicense. ACKs approving the v2+ relicensing are listed below. The list might include ACKs from people not holding copyright on any parts of the reused code, but it's better to err on the side of caution and include them. Affected SeaBIOS files (GPLv2+ license headers added) <http://thread.gmane.org/gmane.comp.bios.coreboot.seabios/5949>: src/acpi-dsdt-cpu-hotplug.dsl src/acpi-dsdt-dbug.dsl src/acpi-dsdt-hpet.dsl src/acpi-dsdt-isa.dsl src/acpi-dsdt-pci-crs.dsl src/acpi.c src/acpi.h src/ssdt-misc.dsl src/ssdt-pcihp.dsl src/ssdt-proc.dsl tools/acpi_extract.py tools/acpi_extract_preprocess.py Each one of the listed people agreed to the following: > If you allow the use of your contribution in QEMU under the > terms of GPLv2 or later as proposed by this patch, > please respond to this mail including the line: > > Acked-by: Name <email address> Acked-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Acked-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Acked-by: Jason Baron <jbaron@xxxxxxxxxx> Acked-by: David Woodhouse <David.Woodhouse@xxxxxxxxx> Acked-by: Gleb Natapov <gleb@xxxxxxxxxx> Acked-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Acked-by: Dave Frodin <dave.frodin@xxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Acked-by: Kevin O'Connor <kevin@xxxxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx> Acked-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx> Acked-by: Magnus Christensson <magnus.christensson@xxxxxxxxx> Acked-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Acked-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit cbcaf79e3ce1b14084f3e3f4f64365e9bfd70e6a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Sep 10 10:16:02 2013 +0300 q35: expose mmcfg size as a property Address is already exposed, expose size for symmetry. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 87f65245db4665edff22242c17546954d9d59c82 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Sep 2 17:59:38 2013 +0300 q35: use macro for MCFG property name Useful to make it accessible through QOM. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 6f6d282330a3c85ecbeb54dec5b57282bd177b44 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Sep 10 10:15:00 2013 +0300 pcie_host: expose address format Callers pass in the address so it's helpful for them to be able to decode it. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 079e3e7012a0e3ff80b4786e67f5a5d4341dcd51 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Sep 10 08:43:48 2013 +0300 pcie_host: expose UNMAPPED macro Make it possible to test unmapped status through QMP. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 48354cc5a3744c9a56462e5053e1f267a0ce69de Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Aug 18 17:02:33 2013 +0300 loader: support for unmapped ROM blobs Support ROM blobs not mapped into guest memory: same as ROM files really but use caller's buffer. Support invoking callback on access and return memory pointer making it easier for caller to update memory if necessary. Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d87072ceeccf4f84a64d4bc59124bcd64286c070 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Sep 1 17:56:20 2013 +0300 fw_cfg: interface to trigger callback on read Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 77d6f4ea7608fe7f47c9d7beddd19191b2e852b2 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Oct 1 15:39:13 2013 +0300 pci: fix up w64 size calculation helper BAR base was calculated incorrectly. Use existing pci_bar_address to get it right. Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit e732ea638705da35445a42dee32691fbe813d3e0 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Sep 22 10:10:17 2013 +0300 qom: add pointer to int property helpers Make it easy to add read-only helpers for simple integer properties in memory. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit e82df24873970742778e4a960f059ba9f8b1b2a7 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Sep 22 10:08:14 2013 +0300 qom: cleanup struct Error references now that a typedef for struct Error is available, use it in qom/object.h to match coding style rules. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Tested-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 008e05662ae5ff314b2b8462508ffd4b40503369 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Tue Oct 1 17:44:32 2013 +0200 cleanup object.h: include error.h directly qapi/error.h is simple enough to be included in qom/object.h direcly and prepares qom/object.h to use Error typedef. Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c31d04b516b183b02336f8cce65a41bd547f6f6b Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:41 2013 +0300 hw/pci: removed irq field from PCIDevice Instead of exposing the the irq field, pci wrappers to qemu_set_irq or qemu_irq_* can be used. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 5a03e708f213c716c9dde11e8ab4b23b8ca5c066 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:40 2013 +0300 hw/pcie: AER and hot-plug events must use device's interrupt The fields hpev_intx and aer_intx were removed because both AER and hot-plug events must use device's interrupt. Assert/deassert interrupts using pci irq wrappers instead. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9e64f8a3fcc88a508990a62ecc5a1269e41272ad Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:39 2013 +0300 hw: set interrupts using pci irq wrappers pci_set_irq and the other pci irq wrappers use PCI_INTERRUPT_PIN config register to compute device INTx pin to assert/deassert. An irq is allocated using pci_allocate_irq wrapper only if is needed by non pci devices. Removed irq related fields from state if not used anymore. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 68919cace8242363edfe8ff9b9c68b5e58c30db4 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:38 2013 +0300 hw/vfio: set interrupts using pci irq wrappers pci_set_irq and the other pci irq wrappers use PCI_INTERRUPT_PIN config register to compute device INTx pin to assert/deassert. save INTX pin into the config register before calling pci_set_irq Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4c89e3e59368584ae6f34fdfce3c698223b8a918 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:37 2013 +0300 hw/vmxnet3: set interrupts using pci irq wrappers pci_set_irq uses PCI_INTERRUPT_PIN config register to compute device INTx pin to assert/deassert. An assert is used to ensure that intx received from the quest OS corresponds to PCI_INTERRUPT_PIN. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c008ac0c1cb68dfe8dcfda0e25562fa81c687e50 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:36 2013 +0300 hw/pci-bridge: set PCI_INTERRUPT_PIN register before shpc init The PCI_INTERRUPT_PIN will be used by shpc init, so was moved before the call to shpc_init. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit d98f08f54e0882b4da1177345161afabb8d47d94 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:35 2013 +0300 hw/pci: add pci wrappers for allocating and asserting irqs Interrupt pin is selected and saved into PCI_INTERRUPT_PIN register during device initialization. Devices should not call directly qemu_set_irq and specify the INTx pin on each call. Added pci_* wrappers to replace qemu_set_irq, qemu_irq_raise, qemu_irq_lower and qemu_irq_pulse, setting the irq based on PCI_INTERRUPT_PIN. Added pci_allocate_irq wrapper to be used by devices that still need PCIDevice infrastructure to assert irqs. Renamed a static method which was named already pci_set_irq. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a8a9d30bab2fae2e0ab3436fa0a40d89fbb0cf4e Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Oct 7 10:36:34 2013 +0300 hw/core: Add interface to allocate and free a single IRQ qemu_allocate_irq returns a single qemu_irq. The interface allows to specify an interrupt number. qemu_free_irq frees it. Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a53ae8e934cd54686875b5bcfc2f434244ee55d6 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Sep 16 11:21:16 2013 +0300 hw/pci: partially handle pci master abort A MemoryRegion with negative priority was created and it spans over all the pci address space. It "intercepts" the accesses to unassigned pci address space and will follow the pci spec: 1. returns -1 on read 2. does nothing on write Note: setting the RECEIVED MASTER ABORT bit in the STATUS register of the device that initiated the transaction will be implemented in another series Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8002ccd6e4c5c52210c5fc886f7bf88fd707c2df Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Sep 16 11:21:15 2013 +0300 docs/memory: Explictly state that MemoryRegion priority is signed When memory regions overlap, priority can be used to specify which of them takes priority. By making the priority values signed rather than unsigned, we make it more convenient to implement a situation where one "background" region should appear only where no other region exists: rather than having to explicitly specify a high priority for all the other regions, we can let them take the default (zero) priority and specify a negative priority for the background region. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a1ff8ae0666ffcbe78ae7e28812dd30db6bb7131 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Mon Sep 16 11:21:14 2013 +0300 memory: Change MemoryRegion priorities from unsigned to signed When memory regions overlap, priority can be used to specify which of them takes priority. By making the priority values signed rather than unsigned, we make it more convenient to implement a situation where one "background" region should appear only where no other region exists: rather than having to explicitly specify a high priority for all the other regions, we can let them take the default (zero) priority and specify a negative priority for the background region. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit f8da40aefbd1b40a0c5ab6fb25987943fe01125c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 10 13:11:56 2013 -0700 target-alpha: Convert to new ldst opcodes Or, partially. The fundamental primitives for the port are gen_load_mem and gen_store_mem, which take a callback to emit the memory operation. For that, we continue to use the original inline functions that forward to the new ops, rather than replicate the same thing privately. That said, all free-standing calls to tcg_gen_qemu_* have been converted. The 32-bit floating-point references now use _i32 opcodes, eliminating a truncate or extension. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1768ec0623c1253df3bf1424b07fbccb164e85fb Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 10 10:15:25 2013 -0700 tcg-ppc64: Support new ldst opcodes Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5dd391604f590938dd9fd335102442f1612e5eed Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 10 10:00:27 2013 -0700 tcg-ppc: Support new ldst opcodes Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e349a8d4ffb63e8e16c67d1702dd728d781424d6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 10 09:05:15 2013 -0700 tcg-ppc64: Convert to le/be ldst helpers Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 92d0acda271f54a96956b9aef5031e702e12a700 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 10 08:54:04 2013 -0700 tcg-ppc: Convert to le/be ldst helpers Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a058557381e6bb4c7688572bba7b3a4c01234955 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 3 17:05:37 2013 -0700 tcg-ppc64: Use TCGMemOp within qemu_ldst routines Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f1a16dcdd5d52aa92563c8798d1b3e304c1245f9 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 3 17:05:31 2013 -0700 tcg-ppc: Use TCGMemOp within qemu_ldst routines Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 091d5677713d5e8e48ad670655d6bf1bac0b064d Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 12 15:06:23 2013 -0700 tcg-arm: Improve GUEST_BASE qemu_ld/st If we pull the code to emit the actual load/store into a subroutine, we can share the reg+reg addressing mode code between softmmu and usermode. This lets us load GUEST_BASE into a temporary register rather than attempting to add it piece-wise to the address. Which lets us use movw+movt for armv7, rather than (up to) 4 adds. Code size for pre-armv7 stays the same. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 15ecf6e3946b0d2f0b6deb95c321604b8741a882 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 12 10:17:45 2013 -0700 tcg-arm: Convert to new ldst opcodes Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a485cff09c44fffea121401cd3dcea13b8d1fe27 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 12 09:07:38 2013 -0700 tcg-arm: Tidy variable naming convention in qemu_ld/st s/addr_reg2/addrhi/ s/addr_reg/addrlo/ s/data_reg2/datahi/ s/data_reg/datalo/ Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0315c51ea954766df8ab6697502dff22f5364f77 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Sep 12 08:58:33 2013 -0700 tcg-arm: Convert to le/be ldst helpers Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 099fcf2e3689a702a0948b53f3cd42926bbe044a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 3 16:16:47 2013 -0700 tcg-arm: Use TCGMemOp within qemu_ldst routines Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8221a267fdc6e8eebbeb8d810b58efbe3a7d913e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 4 09:35:37 2013 -0700 tcg-i386: Support new ldst opcodes No support for helpers with non-default endianness yet, but good enough to test the opcodes. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b3e2bc500f5fe09763a107e2e28cb0e2d39ffb7c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 4 08:51:07 2013 -0700 tcg-i386: Remove "cb" output restriction from qemu_st8 for i386 Once we form a combined qemu_st_i32 opcode, we won't be able to have separate constraints based on size. This one is fairly easy to work around, since eax is available as a scratch register. When storing variable data, this tends to merely exchange one mov for another. E.g. -: mov %esi,%ecx ... -: mov %cl,(%edx) +: mov %esi,%eax +: mov %al,(%edx) Where we do have a regression is when storing constant data, in which we may load the constant into edi, when only ecx/ebx ought to be used. The proper way to recover this regression is to allow constants as arguments to qemu_st_i32, so that we never load the constant data into a register at all, must less the wrong register. TBD. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7352ee546ce0aba261d0e64595eae6e74e75e49d Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 4 08:13:42 2013 -0700 tcg-i386: Tidy softmmu routines Pass two TCGReg to tcg_out_tlb_load, rather than idx+args. Move ldst_optimization routines just below tcg_out_tlb_load to avoid the need for forward declarations. Use TCGReg enum in preference to int where apprpriate. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 37c5d0d5d1ad4e603dc50411c85bad6f726357a2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 3 13:54:21 2013 -0700 tcg-i386: Use TCGMemOp within qemu_ldst routines Step one in the transition, with constants passed down from tcg_out_op. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d257e0d7aeb72f4280666590f81ca5f0a38697f8 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Oct 11 14:32:06 2013 -0700 tcg: Use TCGMemOp for TCGLabelQemuLdst.opc Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1cdae4573d7613149348d834c605bfbe3c7d405b Merge: ab1eb72 0106dc4 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 11 09:38:07 2013 -0700 Merge remote-tracking branch 'mdroth/qga-pull-2013-10-10' into staging # By Mark Wu (2) and Tomoki Sekiyama (1) # Via Michael Roth * mdroth/qga-pull-2013-10-10: qemu-ga: Extend 'guest-info' command to expose flag 'success-response' qemu-ga: Add interface to traverse the qmp command list by QmpCommand qemu-ga: execute fsfreeze-freeze in reverse order of mounts Message-id: 1381435782-25524-1-git-send-email-mdroth@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit ab1eb72b1db1740093d52207887a2cfc8665bad6 Merge: a3400ae 867b320 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 11 09:36:52 2013 -0700 Merge remote-tracking branch 'rth/tcg-pull' into staging # By Richard Henderson # Via Richard Henderson * rth/tcg-pull: exec: Add both big- and little-endian memory helpers tcg: Add qemu_ld_st_i32/64 tcg: Add TCGMemOp configure: Remove CONFIG_QEMU_LDST_OPTIMIZATION tcg: Add tcg-be-ldst.h tcg: Add tcg-be-null.h exec: Delete is_tcg_gen_code and GETRA_EXT tcg-aarch64: Update to helper_ret_*_mmu routines tcg: Merge tcg_register_helper into tcg_context_init tcg: Add tcg-runtime.c helpers to all_helpers tcg: Put target helper data into an array. tcg: Remove stray semi-colons from target-*/helper.h tcg: Move helper registration into tcg_context_init target-m68k: Rename helpers.h to helper.h tcg: Use a GHashTable for tcg_find_helper tcg: Delete tcg_helper_get_name declaration tcg-hppa: Remove tcg backend Message-id: 1381440525-6666-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit a3400aeede46c6c30b6fefb20fc90a43f1f6e7b2 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Oct 10 15:00:21 2013 +0200 qdev-monitor: Group "device_add help" and "info qdm" by category Output is a long, unsorted list. Not very helpful. Print one list per device category instead, with a header line identifying the category, plus a list of uncategorized devices. Print each list in case-insenitive alphabetical order. Devices with multiple categories are listed multiple times. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Message-id: 1381410021-1538-3-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 1fc224b4b6d195fb7802d5ba1a0846a4e7a1e2af Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Thu Oct 10 15:00:20 2013 +0200 Mostly revert "qemu-help: Sort devices by logical functionality" This reverts most of commit 3d1237fb2ab4edb926c717767bb5e31d6053a7c5. The commit claims to sort the output of "-device help" "by functionality rather than alphabetical". Issues: * The output was unsorted before, not alphabetically sorted. Misleading, but harmless enough. * The commit doesn't just sort the output of "-device help" as it claims, it adds categories to each line of "-device help", and it prints devices once per category. In particular, devices without a category aren't shown anymore. Maybe such devices should not exist, but they do. Regression. * Categories are also added to the output of "info qdm". Silent change, not nice. Output remains unsorted, unlike "-device help". I'm going to reimplement the feature we actually want, without the warts. Reverting the flawed commit first should make it easier to review. However, I can't revert it completely, since DeviceClass member categories has been put to use. So leave that part in. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Message-id: 1381410021-1538-2-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 859389810910f232188675d2f10b15f1aad77660 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Fri Oct 11 14:52:38 2013 +0200 Use qemu-project.org domain name qemu.org is held by a third-party and no core community contributor has access to the DNS configuration. This leaves the website exposed to outages due to DNS issues or IP address changes. For example, if the web server IP address needs to change we cannot guarantee qemu.org will point to it! The newer qemu-project.org domain name is owned by Anthony Liguori <anthony@xxxxxxxxxxxxx>. You can confirm this by querying the whois information. Also note that the #qemu IRC channel topic already references qemu-project.org. Short of having a dedicated legal entity to hold the domain name on behalf of the community, qemu-project.org seems like the safest bet. Let's replace references to qemu.org with qemu-project.org. Note that git-submodule(1) does not detect URL changes. The following commands clear out and re-initialize all submodules to ensure you are using the latest URLs: $ git submodule deinit . # you'll be warned if you have local changes $ rm -rf .git/modules # also clear cached .git/ directories $ git submodule update --init Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Message-id: 1381495958-8306-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 33c6cae44eccea5e627c2dc5cbf31456db90fc38 Merge: 39c153b 34eeb82 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Fri Oct 11 09:29:58 2013 -0700 Merge remote-tracking branch 'kwolf/for-anthony' into staging # By Max Reitz (30) and others # Via Kevin Wolf * kwolf/for-anthony: (61 commits) qemu-iotests: Add test for inactive L2 overlap qemu-io: Let "open" pass options to block driver vmdk: Fix vmdk_parse_extents blockdev: blockdev_init() error conversion blockdev: Don't disable COR automatically with blockdev-add blockdev: Remove 'media' parameter from blockdev_init() qemu-iotests: Check autodel behaviour for device_del blockdev: Remove IF_* check for read-only blockdev_init blockdev: Move virtio-blk device creation to drive_init blockdev: Move bus/unit/index processing to drive_init blockdev: Move parsing of 'boot' option to drive_init blockdev: Moving parsing of geometry options to drive_init blockdev: Move parsing of 'if' option to drive_init blockdev: Move parsing of 'media' option to drive_init blockdev: Pass QDict to blockdev_init() blockdev: Separate ID generation from DriveInfo creation blockdev: 'blockdev-add' QMP command blockdev: Introduce DriveInfo.enable_auto_del qapi-types/visit.py: Inheritance for structs qapi-types/visit.py: Pass whole expr dict for structs ... Message-id: 1381503951-27985-1-git-send-email-kwolf@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 34eeb82de65ce9f83081a3357b0afe80a6a1d86a Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Oct 11 14:02:11 2013 +0200 qemu-iotests: Add test for inactive L2 overlap Extend 060 by a test which creates a corrupted image with an active L2 entry pointing to an inactive L2 table and writes to the corresponding guest offset. Also, use overlap-check=all for all tests in 060. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b543c5cdcb818ffed90cfc97aa8e297214650d84 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Oct 11 14:02:10 2013 +0200 qemu-io: Let "open" pass options to block driver Add an option to the open command to specify runtime options for the block driver used. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 899f1ae219d5eaa96a53c996026cb0178d62a86d Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Oct 11 19:48:29 2013 +0800 vmdk: Fix vmdk_parse_extents An extra 'p++' after while loop when *p == '\n' will move p to unknown data position, risking parsing junk data or memory access violation. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b681072d2005911b79835d2a6af208eba3983a48 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Sep 20 11:33:11 2013 +0200 blockdev: blockdev_init() error conversion This gives us meaningful error messages for the blockdev-add QMP command. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 0ebd24e0a203cf2852c310b59fbe050190dc6c8c Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Sep 19 15:12:18 2013 +0200 blockdev: Don't disable COR automatically with blockdev-add If a read-only device is configured with copy-on-read=on, the old code only prints a warning and automatically disables copy on read. Make it a real error for blockdev-add. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit e34ef046412431acf5b4e30762390b4048187bb8 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Sep 19 14:24:10 2013 +0200 blockdev: Remove 'media' parameter from blockdev_init() The remaining users shouldn't be there with blockdev-add and are easy to move to drive_init(). Bonus bug fix: As a side effect, CD-ROM drives can now use block drivers on the read-only whitelist without explicitly specifying read-only=on, even if a format is explicitly specified. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit a9b43397a9782d028f45b63fb4affee164f85948 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Sep 18 16:47:41 2013 +0200 qemu-iotests: Check autodel behaviour for device_del Block devices creates with -drive and drive_add should automatically disappear if the guest device is unplugged. blockdev-add ones shouldn't. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 4f8a066b5fc254eeaabbbde56ba4f5b29cc68fdf Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Sep 13 15:51:47 2013 +0200 blockdev: Remove IF_* check for read-only blockdev_init IF_NONE allows read-only, which makes forbidding it in this place for other types pretty much pointless. Instead, make sure that all devices for which the check would have errored out check in their init function that they don't get a read-only BlockDriverState. This catches even cases where IF_NONE and -device is used. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 394c7d4d6bd06386308e2fef0cf1c613a10e0d23 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Sep 13 14:09:17 2013 +0200 blockdev: Move virtio-blk device creation to drive_init Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 87a899c5090c7864fc7dcff3ea0ac34153ea621b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Sep 10 15:48:13 2013 +0200 blockdev: Move bus/unit/index processing to drive_init This requires moving the automatic ID generation at the same time, so let's do that as well. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 26929298023b0592dc6ac8bc15163b5a24341670 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Sep 9 17:01:03 2013 +0200 blockdev: Move parsing of 'boot' option to drive_init It's already ignored and only prints a deprecation message. No use in making it available in new interfaces. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit b41a7338cfdeeb913ee4846d79a3f7e221350aed Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Sep 9 16:49:49 2013 +0200 blockdev: Moving parsing of geometry options to drive_init This moves all of the geometry options (cyls/heads/secs/trans) to drive_init so that they can only be accessed using legacy functions, but never with anything blockdev-add related. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 593d464bd43900c2a0c8800b76212f6a93e99a0d Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Aug 28 17:24:51 2013 +0200 blockdev: Move parsing of 'if' option to drive_init It's always IF_NONE for blockdev-add. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 33cb7dc8b7a26ccdff2f054056d3f2e487cbb4cd Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Aug 28 17:00:13 2013 +0200 blockdev: Move parsing of 'media' option to drive_init This moves as much as possible of the processing of the 'media' option to drive_init so that it can only be accessed using legacy functions, but never with anything blockdev-add related. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit f298d071662af6cf5dc221ee3e3bd0154035e570 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Sep 10 12:01:20 2013 +0200 blockdev: Pass QDict to blockdev_init() Working on a QDict instead of a QemuOpts that accepts anything is more in line with bdrv_open(). A QDict is what qmp_blockdev_add() already has anyway, so this saves additional conversions. And last, but not least, it allows later patches to easily extract legacy options into a separate, typed QemuOpts for drive_init() (the untyped QemuOpts that drive_init already has doesn't allow access to numbers, only strings, and is therefore useless without conversion). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 326642bc7f0ff95a0c08db527861a9a114a109da Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Jul 11 12:52:34 2013 +0200 blockdev: Separate ID generation from DriveInfo creation blockdev-add shouldn't automatically generate IDs, but will keep most of the DriveInfo creation code. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit d26c9a15738147a8dccc451c6f6d1ddc2305713d Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Sep 23 15:26:03 2013 +0200 blockdev: 'blockdev-add' QMP command For examples see the changes to qmp-commands.hx. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2d246f01d374c1a10c48c45aa931aa18f0a56634 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Sep 18 15:14:47 2013 +0200 blockdev: Introduce DriveInfo.enable_auto_del BlockDriverStates shouldn't be affected by an unplugged guest device, except if created with the legacy -drive command line option or the drive_add HMP command. Make the automatic deletion as well as cancelling of jobs conditional on an enable_auto_del boolean that is only set in drive_init(). Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> commit 622f557f5aaea1326c94ca4cddfa4eafeade3723 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Sep 19 11:56:36 2013 +0200 qapi-types/visit.py: Inheritance for structs This introduces a new 'base' key for struct definitions that refers to another struct type. On the JSON level, the fields of the base type are included directly into the same namespace as the fields of the defined type, like with unions. On the C level, a pointer to a struct of the base type is included. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 14d36307ffdf949df9c1dd7f435e138b36f63bb0 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Sep 18 17:22:02 2013 +0200 qapi-types/visit.py: Pass whole expr dict for structs Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 52c8d629cac27ad16dd51507b4733d46fa4efc55 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Oct 11 15:43:23 2013 +0800 vmdk: refuse enabling zeroed grain with flat images This is a header flag and we needs sparse for the header. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4823970bcb882cd5b7e9c9a21fa6573190035050 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Oct 11 15:43:22 2013 +0800 vmdk: convert error code to use errp Convert "fprintf(stderr,..." and standardize error messages: Remove a few local_error's and use errp. Remove "VMDK:" or "Vmdk:" prefixes in error message and fix to upper case. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2cdfb12332e885c8ce36f520d2a2a9200101e183 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Thu Sep 26 08:42:56 2013 +0800 build: add command check-clean This command will package the clean operations in tests. Now root Makefile simply calls the command and do not care the details of it any more. Original the built binaries for test will not be removed, now they will be deleted in clean operation. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 22ee5a557acc820109a9948620a26f66e4fa3a8f Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Thu Sep 26 08:42:55 2013 +0800 tests: build the helper program by default Usually we may configure and make, then goto ./tests/qemu-iotest, check. In this case an error will happen since helper program was not built. This patch simply build it by default. A better way may be introducing Makefile in ./tests/qemu-iotest, but it is more complicate to handle out of tree case, and a bit overkill for a single file now, we can do that when more files come. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e428e439df4d92ac42cb913a1dd19b86155eae86 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Oct 11 11:37:01 2013 +0200 block/raw-posix: Employ error parameter Make use of the error parameter in the opening and creating functions in block/raw-posix.c. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 5dd75f9afbea2e4e370c96676d34676e6f6b95b7 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Oct 11 14:59:49 2013 +0800 qemu-iotests: move blank lines of output in case 059 Move the blank line to above the test step banner, so it looks clearer in blocks. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit ca2884087a36c60d592aa0e8e327bf1579972077 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 15:44:04 2013 +0200 blkverify: Employ error parameter Make use of the error parameter in blkverify_open. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 10ffa72faed7e02805d7911d58d429efe6f95f93 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 15:44:03 2013 +0200 blkdebug: Employ error parameter Make use of the error parameter in blkdebug_open. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c6252b7cea0dfa893cf1f49de3a58f222e910783 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 15:44:02 2013 +0200 block/raw-win32: Employ error parameter Make use of the error parameter in the opening and creating functions in block/raw-win32.c. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 92f1deec317230575726a8e0ab5c110781d30ec0 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 15:44:00 2013 +0200 block/raw_bsd: Employ error parameter Propagate errors in raw_create rather than directly reporting and afterwards discarding them. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1fa5cc839aa6068c9182ad8d611f844c58f95f42 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 11:09:28 2013 +0200 qcow2: Evaluate overlap check options Evaluate the runtime overlap check options and set BDRVQcowState.overlap_check appropriately. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4a273c398b0c96985d56fed8156e19876b2e3c9e Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 11:09:27 2013 +0200 qcow2: Add more overlap check bitmask macros Introduces the macros QCOW2_OL_CONSTANT and QCOW2_OL_ALL in addition to the already existing QCOW2_OL_CACHED, signifying all metadata overlap checks that can be performed in constant time (regardless of image size etc.) and truly all available overlap checks, respectively. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4092e99d935fe26fd53631cc9e170f9a19e3ee4a Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 11:09:26 2013 +0200 qcow2: Array assigning options to OL check bits Add an array which assigns the option string to its corresponding overlap check bit. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 05de7e86cab3ed3830de38b38b39bbc711bc1158 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 11:09:25 2013 +0200 qcow2: Add overlap-check options Add runtime options to tune the overlap checks to be performed before write accesses. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3e3553905cfc814d59de6d1a634c3a991b2a9257 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 11:09:24 2013 +0200 qcow2: Make overlap check mask variable Replace the QCOW2_OL_DEFAULT macro by a variable overlap_check in BDRVQcowState. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 231bb267644ee3a9ebfd9c7f42d5d41610194b45 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Oct 10 11:09:23 2013 +0200 qcow2: Use negated overflow check mask In qcow2_check_metadata_overlap and qcow2_pre_write_overlap_check, change the parameter signifying the checks to perform from its current positive form to a negative one, i.e., it will no longer explicitly specify every check to perform but rather a mask of checks not to perform. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8f94a6e40e46cbc8e8014da825d25824b1803b34 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Thu Oct 10 11:45:55 2013 +0200 block: Improve driver whitelist checks The main intent of this patch is to consolidate the whitelist checks to a single point in the code instead of spreading it everywhere. This adds a nicer error message for read-only whitelisting, too, in places where it was still missing. The patch also contains a bonus bug fix: By finding the format first in bdrv_open() and then independently checking against the whitelist only later, we avoid the case that use of a non-whitelisted format results in probing rather than an error message. Previously, this could happen when using the driver=... option. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Fam Zheng <famz@xxxxxxxxxx> commit 00c49b21e7af1dd8d2167c1b019619ac186dad14 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 14:42:47 2013 +0200 qcow2: Use better type for numerical snapshot ID When trying to find a new snapshot ID, the existing ones are converted to integers using strtoul. This function returns an unsigned long, therefore its result should be saved in an unsigned long as well. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 84757f7e67cda3df8b04e06fbdeecc266415d2f3 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 14:42:00 2013 +0200 qcow2: Fix snapshot restoration in snapshot_create If the new snapshot table could not be written in qcow2_snapshot_create, the old snapshot table has to be restored in memory and the new one released. This should include restoration of the old snapshot count as well, which is added by this patch. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f9bff971436b5924ca3c3203c6a3dcd6437bd430 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 14:41:28 2013 +0200 qcow2: Remove wrong metadata overlap check In qcow2_write_compressed, if the compression fails, a normal cluster is written to disk. This is done through bdrv_write on the qcow2 BDS itself (using the guest offset), thus it is wrong to do a metadata overlap check before. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9e3f08923a14ba0655c6797edd9ffef44bb8cbf2 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 14:40:48 2013 +0200 qcow2: Add missing space in error message The error message in qcow2_downgrade about an unsupported refcount order is missing a space. This patch adds it. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 89e911816a1d5cdbc9480d5464c571d216cf5ea8 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Fri Sep 27 08:48:15 2013 -0400 block: qemu-iotests for vhdx, read sample dynamic image This adds the VHDX format to the qemu-iotests format, and adds a read test. The test reads from an existing sample image, that was created with Hyper-V under Windwos Server 2012. The image file is a 1GB dynamic image, with 32MB blocks. The pattern 0xa5 exists from 0MB-33MB (past a block size boundary) The pattern 0x96 exists from 33MB-66MB (past another block boundary, and leaving a partial blank block) From 66MB-1024MB, all reads should return 0. Although 1GB dynamic image with 66MB of data, the bzip2'ed image file size is only 874 bytes. This also adds in the IMGFMT_GENERIC flag, so r/o images can be tested (e.g. ./check -vhdx) without failing tests that assume r/w support. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 13164591f30ad95ae24f9892cf2caf779271a29b Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Sep 29 00:09:35 2013 +0300 ahci: set ahci mode on reset ATM we set AHCI mode on 1st GHC write. Spec says we should set it on reset. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 975a93c082452db9aa1397a797ca8f13ba367393 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 12:07:33 2013 +0200 qemu-iotests: Discard preallocated zero clusters Add a new test case for discarding preallocated zero clusters; doing this should not result in any leaks. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f6186f49e2c98d91f22027d8c62996df4fcf3f92 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Wed Oct 2 14:33:48 2013 +0200 block: Add BlockDriver.bdrv_check_ext_snapshot. This field is used by blkverify to disable external snapshots creation. It will also be used by block filters like quorum to disable external snapshot creation. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 92bc50a5ad7fbc9a0bd17240eaea5027a100ca79 Author: Peter Lieven <pl@xxxxxxx> Date: Tue Oct 8 14:43:14 2013 +0200 block/get_block_status: avoid redundant callouts on raw devices if a raw device like an iscsi target or host device is used the current implementation makes a second call out to get the block status of bs->file. Signed-off-by: Peter Lieven <pl@xxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 88fb15351284868b70fa1d5b101e809057fcc5aa Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:51:06 2013 +0200 qcow2: Assert against snapshot name/ID overflow qcow2_write_snapshots relies on the length of every snapshot ID and name fitting into an unsigned 16 bit integer. This is currently ensured by QEMU through generally only allowing 128 byte IDs and 256 byte names. However, if this should change in the future, the length written to the image file should not be silently truncated (though the name itself would be written completely). Since this is currently not an issue but might require attention due to internal QEMU changes in the future, an assert ensuring sanity is enough for now. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9186ad9658cc597937fbc03ad66bceb3a0515d99 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:51:05 2013 +0200 qcow2: Free allocated snapshot table on error If an error occurs during qcow2_write_snapshots, the newly allocated snapshot table clusters are leaked and should thus be freed. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 37d41f0a04e5017d37906728a806d7944e867a2a Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:51:04 2013 +0200 qcow2: Always use error path on writing snapshots qcow2_write_snapshots does contain a fail label and there is no reason not to use it on some errors; therefore, we should always jump there on error. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8f730dd24edd2576ecbd596de7ea4361296b129c Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:44:28 2013 +0200 qcow2: Free preallocated zero clusters In qcow2_free_any_clusters, preallocated zero clusters should be freed just as normal clusters are. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 998b959c1e59044f5d5f64c482f4ce8facc8e0bc Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:42:56 2013 +0200 qcow2: Use pread for inactive L1 in overlap check Currently, qcow2_check_metadata_overlap uses bdrv_read to read inactive L1 tables from disk. The number of sectors to read is calculated through a truncating integer division, therefore, if the L1 table size is not a multiple of the sector size, the final entries will not be read and their entries in memory remain undefined (from the g_malloc). Using bdrv_pread fixes this. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f252080453ec081ba653bba4e0c1ca86c52cf19f Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:34:10 2013 +0200 qcow2: Alignment of snapshot table entries The qcow2 specification does not explicitly state so far that every snapshot table entry is aligned to 8 bytes. QEMU, in contrast, does this alignment, thus it should be properly documented (which this patch does). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3677e6f6252542cbab85674d97d051d95e91693b Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:46:20 2013 +0200 qemu-iotests: Additional info from qemu-img info Add a test for the additional information now provided by qemu-img info when used on qcow2 images. It also tests the qemu QMP output from the query-block command when running qemu with different runtime options than specified in the image (ImageInfoSpecific should always refer to the image). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4c2e946500c45685fdec61b3d929311dc26a2ad5 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:46:19 2013 +0200 qemu-iotests: Discard specific info in _img_info In _img_info, filter out additional information specific to the image format provided by qemu-img info, since tests designed for multiple image formats would produce different outputs for every image format otherwise. In a human-readable dump, that new information will always be last for each "image information block" (multiple blocks are emitted when inspecting the backing file chain). Every block is separated by an empty line. Therefore, in this case, everything starting with the line "Format specific information:" up to that empty line (or EOF, if it is the last block) has to be stripped. The JSON dump will always emit pretty JSON data. Therefore, the opening and closing braces of every object will be on lines which are indented by exactly the same amount, and all lines in between will have more indentation. Thus, in this case, everything starting with a line matching the regular expression /^ *"format-specific": {/ until /^ *},?/ has to be stripped, where the number of spaces at the beginning of the respective lines is equal. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 37764dfb71c4d0d058b71ba33340c6beab7d5a66 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:46:18 2013 +0200 qcow2: Add support for ImageInfoSpecific Add a new ImageInfoSpecificQCow2 type as a subtype of ImageInfoSpecific. This contains the compatibility level as a string and an optional lazy_refcounts boolean (optional means mandatory for compat >= 1.1 and not available for compat == 0.10). Also, add qcow2_get_specific_info, which returns this information. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a8d8ecb77fc16da49ea2c1edae267dc9d0c01dfd Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:46:17 2013 +0200 block/qapi: Human-readable ImageInfoSpecific dump Add a function for generically dumping the ImageInfoSpecific information in a human-readable format to block/qapi.c. Use this function in bdrv_image_info_dump and qemu-io-cmds.c:info_f to allow qemu-img info resp. qemu-io -c info to print that format specific information. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit eae041fe6f4314962e873615134eefb32cf8ba61 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:46:16 2013 +0200 block: Add bdrv_get_specific_info Add a function for retrieving an ImageInfoSpecific object from a block driver. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f2bb8a8a47597634b74c161c44b9980c7f4e50ac Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 9 10:46:15 2013 +0200 qapi: Add ImageInfoSpecific type Add a new type ImageInfoSpecific as a union for image format specific information in ImageInfo. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 79e14bf7782d861d3d773a67680de07a8f354f4e Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Oct 8 17:29:40 2013 +0800 qapi: make use of new BlockJobType Switch the string to enum type BlockJobType in BlockJobDriver. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2cb5b22286a7546226d9e9363aaee543fcba6b61 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Oct 8 17:29:39 2013 +0800 qapi: Introduce enum BlockJobType This will replace the open coded block job type string for mirror, commit and backup. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3fc4b10af09b75a1cb811b61abc9d8c90771dfb2 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Oct 8 17:29:38 2013 +0800 blockjob: rename BlockJobType to BlockJobDriver We will use BlockJobType as the enum type name of block jobs in QAPI, rename current BlockJobType to BlockJobDriver, which will eventually become a set of operations, similar to block drivers. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 867b3201a333e35a91bea9febc66cce689a765c4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 4 11:45:20 2013 -0700 exec: Add both big- and little-endian memory helpers Step three in the transition: helpers not tied to the target "default" endianness. To be used when the guest uses a memory operation with non-default endianness. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f713d6ad7b9f52129695d5e3e63541abcd0375c0 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 4 08:11:05 2013 -0700 tcg: Add qemu_ld_st_i32/64 Step two in the transition, adding the new ldst opcodes. Keep the old opcodes around until all backends support the new opcodes. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 39c153b80f890dc5f02465dc59992e195abd5f40 Merge: e8f2f59 51fb256 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Oct 10 13:16:25 2013 -0700 Merge remote-tracking branch 'afaerber/tags/qom-cpu-for-anthony' into staging QOM CPUState refactorings / X86CPU * Fix for X86CPU model field of qemu32/qemu64 CPU models * Bug fix for longjmp on FreeBSD * Removal of unused function * Confinement of clone syscall infrastructure to linux-user # gpg: Signature made Wed 09 Oct 2013 03:40:51 AM PDT using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Andreas Färber (2) and others # Via Andreas Färber * afaerber/tags/qom-cpu-for-anthony: cpu: Drop cpu_model_str from CPU_COMMON cpu: Move cpu_copy() into linux-user cputlb: Remove dead function tlb_update_dirty() cpu-exec: Also reload CPUClass *cc after longjmp return in cpu_exec() target-i386: Set model=6 on qemu64 & qemu32 CPU models commit e8f2f59aaf2978641b7e073ba623bd4b4a9e864d Merge: 88b70e5 386a5a1 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Oct 10 13:16:02 2013 -0700 Merge remote-tracking branch 'amit/char-remove-watch-on-unplug' into staging # By Amit Shah # Via Amit Shah * amit/char-remove-watch-on-unplug: char: remove watch callback on chardev detach from frontend char: use common function to disable callbacks on chardev close char: move backends' io watch tag to CharDriverState Message-id: 20131004154802.GA25646@xxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 88b70e56b969142c88f240434f392b9348600ef5 Merge: e572398 c236f45 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Oct 10 13:15:46 2013 -0700 Merge remote-tracking branch 'otubo/seccomp' into staging # By Eduardo Otubo # Via Eduardo Otubo * otubo/seccomp: seccomp: fine tuning whitelist by adding times() Message-id: 1380047458-21673-1-git-send-email-otubo@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit e572398de14c2173d5701d1f7771689764356b68 Merge: f2c6bcf ad98acb Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Oct 10 13:00:03 2013 -0700 Merge remote-tracking branch 'mcayland/qemu-openbios' into staging * mcayland/qemu-openbios: Update OpenBIOS images Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 0106dc4f05231b44f54fae5d0ee42031298588bd Author: Mark Wu <wudxw@xxxxxxxxxxxxxxxxxx> Date: Wed Oct 9 10:37:26 2013 +0800 qemu-ga: Extend 'guest-info' command to expose flag 'success-response' Now we have several qemu-ga commands not returning response on success. It has been documented in qga/qapi-schema.json already. This patch exposes the 'success-response' flag by extending 'guest-info' command. With this change, the clients can handle the command response more flexibly. Signed-off-by: Mark Wu <wudxw@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> *fixed up commit subject Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 8dc4d915dd6ea347a47557f5aa75a648555fe253 Author: Mark Wu <wudxw@xxxxxxxxxxxxxxxxxx> Date: Wed Oct 9 11:25:07 2013 +0800 qemu-ga: Add interface to traverse the qmp command list by QmpCommand In the original code, qmp_get_command_list is used to construct a list of all commands' name. To get the information of all qga commands, it traverses the name list and search the command info with its name. So it can cause O(n^2) in the number of commands. This patch adds an interface to traverse the qmp command list by QmpCommand to replace qmp_get_command_list. It can decrease the complexity from O(n^2) to O(n). Signed-off-by: Mark Wu <wudxw@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> *fix up commit subject Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit e5d9adbdab972a2172815c1174aed3fabcc448f1 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Tue Oct 1 17:09:53 2013 -0400 qemu-ga: execute fsfreeze-freeze in reverse order of mounts Currently, fsfreeze-freeze may cause deadlock if a guest has loopback mounts of image files in its disk; e.g.: # mount | grep ^/ /dev/vda1 / type ext4 (rw,noatime,seclabel,data=ordered) /tmp/disk.img on /mnt type ext4 (rw,relatime,seclabel) To avoid the deadlock, this freezes filesystems in reverse order of mounts. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> *fix up commit msg Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 6c5f4ead649dd876c5762c468b205563288d5ecd Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 3 13:52:19 2013 -0700 tcg: Add TCGMemOp Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ec9135cd6e5e448a3a5c1d75cac611c655ebb3d5 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Oct 3 14:58:00 2013 -0500 configure: Remove CONFIG_QEMU_LDST_OPTIMIZATION No longer used. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 9ecefc84dd12af07394575a75f0689dc748eea78 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Oct 3 14:51:24 2013 -0500 tcg: Add tcg-be-ldst.h Move TCGLabelQemuLdst and related stuff out of tcg.h. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3cf246f0d402fdb80bfa2b3c0a20131f394c349d Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Oct 3 14:04:46 2013 -0500 tcg: Add tcg-be-null.h This is a no-op backend data implementation, for those targets that are not currently using the load/store optimization path. This is prepatory to always requiring these functions in all backends. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit dbdbe0cd3124a3e9afa2d1c11da7c6476097bb9d Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Sep 3 14:24:58 2013 -0700 exec: Delete is_tcg_gen_code and GETRA_EXT All implementations now boil down to GETRA. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 023261ef851b22a04f6c5d76da870051031757a6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Oct 1 13:47:38 2013 -0700 tcg-aarch64: Update to helper_ret_*_mmu routines A minimal update to use the new helpers with the return address argument. Tested-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Reviewed-by: Claudio Fontana <claudio.fontana@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 84fd9dd3f78ced9d41e1160d43862bb620cb462a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 16:44:31 2013 -0700 tcg: Merge tcg_register_helper into tcg_context_init Eliminates the repeated checks for having created the s->helpers hash table. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4953ee62711bd11a55e58b26c8c71b302198363c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 16:06:50 2013 -0700 tcg: Add tcg-runtime.c helpers to all_helpers For the few targets that actually use these, we'd not report them symbolicly in the tcg opcode logs. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 100b5e0170e86661aaf830869be930a1a201ed08 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 15:57:22 2013 -0700 tcg: Put target helper data into an array. One call inside of a loop to tcg_register_helper instead of hundreds of sequential calls. Presumably more icache and branch prediction friendly; resulting binary size mostly unchanged on x86_64, as we're trading 32-bit rip-relative references in .text for full 64-bit pointers in .rodata. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f5daeec412b9624ba902bdba26edff88a1694ea6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 15:38:30 2013 -0700 tcg: Remove stray semi-colons from target-*/helper.h During GEN_HELPER=1, these are actually stray top-level semi-colons which are technically invalid ISO C, but GCC accepts as an extension. If we added enough __extension__ markers that we could dare use -Wpedantic, we'd see warning: ISO C does not allow extra â??;â?? outside of a function This will become a hard error in the next patch, wherein those ; will appear in the middle of a data structure. Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5cd8f6210f83db15702e81b91e40e7079608e6f3 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 15:09:39 2013 -0700 tcg: Move helper registration into tcg_context_init No longer needs to be done on a per-target basis. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e5e84d22a3c31a674f9bb1d9ffcb92c111e13421 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 14:41:34 2013 -0700 target-m68k: Rename helpers.h to helper.h This brings the m68k target in line with all other targets. Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6e085f72c6d331fb0e9fc69e3061cd1e5893d9e4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 14:37:06 2013 -0700 tcg: Use a GHashTable for tcg_find_helper Slightly changes the interface, in that we now return name instead of a TCGHelperInfo structure, which goes away. Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 7c57df0d852a9a9faf9068ff235886c8b28b113e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Sep 14 14:29:35 2013 -0700 tcg: Delete tcg_helper_get_name declaration The function was deleted in 4dc81f2822187f4503d4bdb76785cafa5b28db0b. Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 802b5081233a6b643a8b135a5facaf14bafaa77d Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Sep 25 12:11:31 2013 -0700 tcg-hppa: Remove tcg backend Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f2c6bcfc2e15e1dc5c69c3e579ff2063068ecb85 Merge: 634ebf4 33876df Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Oct 10 10:03:38 2013 -0700 Merge remote-tracking branch 'sstabellini/xen-2013-10-10' into staging # By Matthew Daley (1) and Roger Pau Monné (1) # Via Stefano Stabellini * sstabellini/xen-2013-10-10: qemu/xen: make use of xenstore relative paths xen_disk: mark ioreq as mapped before unmapping in error case commit 634ebf4b177723f2cf329a719f31913cf9ce5de6 Merge: c4ca690 8464243 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Oct 10 10:03:00 2013 -0700 Merge remote-tracking branch 'bonzini/scsi-next' into staging # By Asias He (1) and Peter Lieven (1) # Via Paolo Bonzini * bonzini/scsi-next: scsi: Allocate SCSITargetReq r->buf dynamically [CVE-2013-4344] block/iscsi: reenable iscsi_co_get_block_status Message-id: 1381332391-8781-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit c4ca6901582c00a2d13368520779e4948b184071 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Oct 10 09:56:25 2013 -0700 Update email address Amazon is now funding my work as QEMU maintainer so update addresses accordingly. Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit 33876dfad64bc481f59c5e9ccf60db78624c4b93 Author: Roger Pau Monné <roger.pau@xxxxxxxxxx> Date: Thu Oct 10 14:25:52 2013 +0000 qemu/xen: make use of xenstore relative paths Qemu has several hardcoded xenstore paths that are only valid on Dom0. Attempts to launch a Qemu instance (to act as a userspace backend for PV disks) will fail because Qemu is not able to access those paths when running on a domain different than Dom0. Instead make the xenstore paths relative to the domain where Qemu is actually running. Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Reviewed-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx> commit a76f48e53382e6f039db6278443e3ce437653302 Author: Matthew Daley <mattjd@xxxxxxxxx> Date: Thu Oct 10 14:10:48 2013 +0000 xen_disk: mark ioreq as mapped before unmapping in error case Commit 4472beae modified the semantics of ioreq_{un,}map so that they are idempotent if called when they're not needed (ie., twice in a row). However, it neglected to handle the case where batch mapping is not being used (the default), and one of the grants fails to map. In this case, ioreq_unmap will be called to unwind and unmap any mappings already performed, but ioreq_unmap simply returns due to the aforementioned change (the ioreq has not already been marked as mapped). The frontend user can therefore force xen_disk to leak grant mappings, a per-domain limited resource. Fix by marking the ioreq as mapped before calling ioreq_unmap in this situation. Signed-off-by: Matthew Daley <mattjd@xxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 846424350b292f16b732b573273a5c1f195cd7a3 Author: Asias He <asias@xxxxxxxxxx> Date: Wed Oct 9 15:41:03 2013 +0800 scsi: Allocate SCSITargetReq r->buf dynamically [CVE-2013-4344] r->buf is hardcoded to 2056 which is (256 + 1) * 8, allowing 256 luns at most. If more than 256 luns are specified by user, we have buffer overflow in scsi_target_emulate_report_luns. To fix, we allocate the buffer dynamically. Signed-off-by: Asias He <asias@xxxxxxxxxx> Tested-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit a107170537abdfec7221c1e0d424c82f5faf2ebe Merge: 80dfc87 d4cea8d Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Oct 9 07:54:42 2013 -0700 Merge remote-tracking branch 'stefanha/block' into staging # By Max Reitz (5) and others # Via Stefan Hajnoczi * stefanha/block: block: use correct filename qemu-iotests: Correct 026 output qcow2: Free allocated L2 cluster on error qcow2: Switch L1 table in a single sequence block: vhdx - add migration blocker block: use correct filename for error report qcow2: CHECK_OFLAG_COPIED is obsolete qcow2: Correct endianness in overlap check Message-id: 1381145289-6591-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 80dfc87394ed10f47918299a5192f337a85333d8 Merge: 576e81b 387eede Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Oct 9 07:54:20 2013 -0700 Merge remote-tracking branch 'mjt/trivial-patches' into staging # By Stefan Weil (5) and others # Via Michael Tokarev * mjt/trivial-patches: migration: Fix compiler warning ('caps' may be used uninitialized) util/path: Fix type which is longer than 8 bit for MinGW hw/9pfs: Fix errno value for xattr functions vl: Clean up unnecessary boot_order complications qemu-char: Fix potential out of bounds access to local arrays pci-ohci: Add missing 'break' in ohci_service_td sh4: Fix serial line access for Linux kernels later than 3.2 hw/alpha: Fix compiler warning (integer constant is too large) target-i386: Fix compiler warning (integer constant is too large) block: Remove unused assignment (fixes warning from clang) exec: cleanup DEBUG_SUBPAGE tests: Fix schema parser test for in-tree build tests: Update .gitignore for test-int128 and test-bitops .gitignore: ignore tests/qemu-iotests/socket_scm_helper Message-id: 1381051979-25742-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 576e81be39ee195b9fd7c948fed16ed6846cef3a Merge: 9e8f8b1 ee06e23 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Oct 9 07:52:57 2013 -0700 Merge remote-tracking branch 'rth/tcg-arm-pull' into staging # By Richard Henderson # Via Richard Henderson * rth/tcg-arm-pull: tcg-arm: Move the tlb addend load earlier tcg-arm: Remove restriction on qemu_ld output register tcg-arm: Return register containing tlb addend tcg-arm: Move load of tlb addend into tcg_out_tlb_read tcg-arm: Use QEMU_BUILD_BUG_ON to verify constraints on tlb tcg-arm: Use strd for tcg_out_arg_reg64 tcg-arm: Rearrange slow-path qemu_ld/st tcg-arm: Use ldrd/strd for appropriate qemu_ld/st64 Message-id: 1380663109-14434-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 9e8f8b1cd8e1b85dc93c367c4745f9944079a37b Merge: dfe2279 04fd1c7 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Oct 9 07:52:21 2013 -0700 Merge remote-tracking branch 'sweil/mingw' into staging # By Sebastian Ottlik # Via Stefan Weil * sweil/mingw: util: call socket_set_fast_reuse instead of setting SO_REUSEADDR slirp: call socket_set_fast_reuse instead of setting SO_REUSEADDR net: call socket_set_fast_reuse instead of setting SO_REUSEADDR gdbstub: call socket_set_fast_reuse instead of setting SO_REUSEADDR util: add socket_set_fast_reuse function which will replace setting SO_REUSEADDR Message-id: 1380735690-24009-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit dfe22799751818115ed6d36bedc8a55b2026de3a Merge: ce079ab ee6ee83 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Oct 9 07:52:11 2013 -0700 Merge remote-tracking branch 'kraxel/chardev.8' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * kraxel/chardev.8: chardev: handle qmp_chardev_add(KIND_MUX) failure Message-id: 1380708925-6721-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit ce079abb410d685d48c1285bc6749d9b23c78c5c Merge: 0e19885 3df2b8f Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Oct 9 07:50:37 2013 -0700 Merge remote-tracking branch 'sweil/tci' into staging # By Stefan Weil # Via Stefan Weil * sweil/tci: misc: Use new rotate functions bitops: Add rotate functions (rol8, ror8, ...) tci: Add implementation of rotl_i64, rotr_i64 Message-id: 1380137693-3729-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 24c7608a5d973e5d562715998e9887f74deac794 Author: Peter Lieven <pl@xxxxxxx> Date: Wed Oct 2 13:52:08 2013 +0200 block/iscsi: reenable iscsi_co_get_block_status Commit f35c934a accidently disabled iscsi_co_get_block_status for all libiscsi versions. Its not possible to check for enumeration constants in the C preprocessor. This patch changes the check to the preprocessor constant LIBISCSI_FEATURE_IOVECTOR which was introduced shortly after get_lba_status support was added to libiscsi. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit d4cea8dfb99153803164915c7a1109549ad3da9c Author: Dunrong Huang <riegamaths@xxxxxxxxx> Date: Thu Oct 3 01:31:27 2013 +0800 block: use correct filename The content filename point to may be erased by qemu_opts_absorb_qdict() in raw_open_common() in drv->bdrv_file_open() So it's better to use bs->filename. Signed-off-by: Dunrong Huang <riegamaths@xxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5c1fa87708d5f226bfd96e8eef8c905fb6895ae3 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Oct 2 16:45:31 2013 +0200 qemu-iotests: Correct 026 output Because l2_allocate now frees the unused L2 cluster on error, the according test cases in 026 don't result in one leaked cluster anymore. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e3b21ef9e016e6d91fd71e44af5e23fb359e18f9 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Sep 25 16:37:19 2013 +0200 qcow2: Free allocated L2 cluster on error If an error occurs in l2_allocate, the allocated (but unused) L2 cluster should be freed. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 51fb256ab5ebc3e1879eb1df9c828866a2ef8141 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 2 18:26:11 2013 +0200 cpu: Drop cpu_model_str from CPU_COMMON Since this is only read in cpu_copy() and linux-user has a global cpu_model, drop the field from generic code. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 30ba0ee52d1519b717089782ef1caf0480a01dc3 Author: Andreas Färber <afaerber@xxxxxxx> Date: Tue Jul 2 17:43:21 2013 +0200 cpu: Move cpu_copy() into linux-user It is only used there and is deemed very fragile if not incorrect in its current memcpy() form. Moving it into linux-user will allow to move parts into target_cpu.h headers and only copy what the ABI mandates. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 812586405c5d165aae791d3806a9bbb8312ec2ac Author: liguang <lig.fnst@xxxxxxxxxxxxxx> Date: Tue Sep 3 15:05:17 2013 +0800 cputlb: Remove dead function tlb_update_dirty() Signed-off-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 6c78f29a2424622bfc9c30dfbbc13404481eacb6 Author: Juergen Lock <qemu-l@xxxxxxxxxxxxxxxxxx> Date: Thu Oct 3 16:09:37 2013 +0200 cpu-exec: Also reload CPUClass *cc after longjmp return in cpu_exec() Local variable CPUClass *cc needs to be reloaded after return from longjmp, too. (This fixes a mips-softmmu crash observed on FreeBSD when QEMU is built with clang.) Reported-by: Dimitry Andric <dim@xxxxxxxxxxx> Signed-off-by: Juergen Lock <nox@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 387eedebf60a463ba30833588f10123da296ba4d Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Sat Oct 5 13:18:28 2013 +0400 migration: Fix compiler warning ('caps' may be used uninitialized) Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> commit ddd23638d7eebd7419148ba8db65f0d53a1920ab Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Oct 2 22:40:29 2013 +0200 util/path: Fix type which is longer than 8 bit for MinGW While dirent->d_type is 8 bit for most systems, it is 32 bit for MinGW. Reducing it to 8 bit results in a compiler warning because the macro is_dir_maybe compares that 8 bit value with 32 bit constants. Using 'unsigned' instead of 'unsigned char' matches the declaration for MinGW and does not harm the other systems. MinGW-w64 is not affected: it does not declare d_type. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 8af00205445eb901f17ca5b632d976065187538e Author: Daniel P. Berrange <berrange@xxxxxxxxxx> Date: Tue Oct 1 12:28:17 2013 +0100 hw/9pfs: Fix errno value for xattr functions If there is no operation driver for the xattr type the functions return '-1' and set errno to '-EOPNOTSUPP'. When the calling code sets 'ret = -errno' this turns into a large positive number. In Linux 3.11, the kernel has switched to using 9p version 9p2000.L, instead of 9p2000.u, which enables support for xattr operations. This on its own is harmless, but for another change which makes it request the xattr with a name 'security.capability'. The result is that the guest sees a succesful return of 95 bytes of data, instead of a failure with errno set to 95. Since the kernel expects a maximum of 20 bytes for an xattr return this gets translated to the unexpected errno ERANGE. This all means that when running a binary off a 9p fs in 3.11 kernels you get a fun result of: # ./date sh: ./date: Numerical result out of range The only workaround is to pass 'version=9p2000.u' when mounting the 9p fs in the guest, to disable all use of xattrs. Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit e3fdc535f25b471e55ac3c8b9f0b504957015bbe Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Tue Oct 1 13:47:22 2013 +0200 vl: Clean up unnecessary boot_order complications Messed up in commit 8281abd. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 49aa4058ac6dd0081aaa45776f07c98df397ca5e Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Mon Sep 30 23:04:49 2013 +0200 qemu-char: Fix potential out of bounds access to local arrays Latest gcc-4.8 supports a new option -fsanitize=address which activates an AddressSanitizer. This AddressSanitizer stops the QEMU system emulation very early because two character arrays of size 8 are potentially written with 9 bytes. Commit 6ea314d91439741e95772dfbab98b4135e04bebb added the code. There is no obvious reason why width or height could need 8 characters, so reduce it to 7 characters which together with the terminating '\0' fit into the arrays. Cc: qemu-stable <qemu-stable@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Alex Bennée <alex@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit b1c50c5f248805be747e96e89efbe784ee99f764 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Oct 4 12:50:51 2013 -0600 vfio-pci: Fix endian issues in vfio_pci_size_rom() VFIO is always little endian so do byte swapping of our mask on the way in and byte swapping of the size on the way out. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Reported-by: Alexey Kardashevskiy <aik@xxxxxxxxx> commit 64fa25a0efcadda6e8197e8ea578f6117d01bb4b Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Fri Oct 4 08:51:36 2013 -0600 vfio-pci: Add dummy PCI ROM write accessor Just to be sure we don't jump off any NULL pointer cliffs. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Reported-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 7174e54cf14290233f4ae3e989ebc7b507636e77 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Mon Sep 30 12:35:13 2013 +0200 kvmvapic: Prevent reading beyond the end of guest RAM rom_state_paddr is guest provided (caller address of outw(VAPIC_PORT) + writen 16-bit value) and can be influenced to point beyond the end of the host memory backing the guest's RAM. Make sure we do not use this pointer to actually read beyond the limits. Reading arbitrary guest bytes is harmless, the guest kernel has to manage access to this I/O port anyway. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit 1d5bf692e55ae22b59083741d521e27db704846d Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Oct 3 09:10:09 2013 -0600 vfio: Fix debug output for int128 values Memory regions can easily be 2^64 byte long and therefore overflow for just a bit but that is enough for int128_get64() to assert. This takes care of debug printing of huge section sizes. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 6ef8263ead779e1eecfaf1e0388f4c3941ea7ec3 Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Thu Oct 3 16:16:14 2013 +0800 target-openrisc: Removes a non-conforming behavior for the first page of the memory Where *software* leaves 0x0000 - 0x2000 unmapped, the hardware should still allow for this area to be mapped. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Signed-off-by: Stefan Kristiansson <stefan.kristiansson@xxxxxxxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> commit bf961b52785061e1802214c9e03a1c65b261f7c1 Author: Sebastian Macke <sebastian@xxxxxxxx> Date: Thu Oct 3 16:04:46 2013 +0800 target-openrisc: Correct handling of page faults. The result of (rw & 0) is always zero and therefore a logic false. The whole comparison will therefore never be executed, it is a obvious bug, we should use !(rw & 1) here. Signed-off-by: Sebastian Macke <sebastian@xxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> commit ad98acb9b1d610c4d243f53d9fb380e500d4abbe Author: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> Date: Thu Oct 3 00:04:20 2013 +0100 Update OpenBIOS images Update OpenBIOS images to SVN r1229 built from submodule. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx> commit f16f39c3fc973c5d7cbc2224eefb4ef5eb1e64ff Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Wed Oct 2 13:51:00 2013 -0600 vfio-pci: Implement PCI hot reset Now that VFIO has a PCI hot reset interface, take advantage of it. There are two modes that we need to consider. The first is when only one device within the set of devices affected is actually assigned to the guest. In this case the other devices are are just held by VFIO for isolation and we can pretend they're not there, doing an entire bus reset whenever the device reset callback is triggered. Supporting this case separately allows us to do the best reset we can do of the device even if the device is hotplugged. The second mode is when multiple affected devices are all exposed to the guest. In this case we can only do a hot reset when the entire system is being reset. However, this also allows us to track which individual devices are affected by a reset and only do them once. We split our reset function into pre- and post-reset helper functions prioritize the types of device resets available to us, and create separate _one vs _multi reset interfaces to handle the distinct cases above. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 4b351a0f212769deda960da44e299f44d5da0737 Author: Ján Veselý <jano.vesely@xxxxxxxxx> Date: Sat Sep 21 16:26:41 2013 -0400 pci-ohci: Add missing 'break' in ohci_service_td Device communication errors need to be reported to driver. Add a debug message while at it. Signed-off-by: Jan Vesely <jano.vesely@xxxxxxxxx> Acked-by: Gerd Hoffmann <kraxel@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 84faf7c3927ca7f3013362e38c58c02a7e733c0c Author: Guenter Roeck <linux@xxxxxxxxxxxx> Date: Sun Sep 8 00:39:05 2013 -0700 sh4: Fix serial line access for Linux kernels later than 3.2 With Linux kernel version 3.3 or later, qemu fails with the following message: sh_serial: unsupported read from 0x18 Aborted Reported-and-analyzed-by: Rob Landley <rob@xxxxxxxxxxx> Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 9b2caaf40bd667492b4e6228dd3d1f5e44083456 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Sep 29 17:51:20 2013 +0200 hw/alpha: Fix compiler warning (integer constant is too large) From buildbot default_i386_rhel61: CC alpha-softmmu/hw/alpha/typhoon.o hw/alpha/typhoon.c: In function 'typhoon_translate_iommu': hw/alpha/typhoon.c:703: warning: integer constant is too large for 'long' type hw/alpha/typhoon.c:703: warning: integer constant is too large for 'long' type Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Acked-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 00fdef658675ac2d019005769c426c275bceec6f Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Sep 29 17:55:56 2013 +0200 target-i386: Fix compiler warning (integer constant is too large) From buildbot default_i386_rhel61: CC i386-softmmu/target-i386/arch_memory_mapping.o target-i386/arch_memory_mapping.c: In function 'walk_pde': target-i386/arch_memory_mapping.c:110: warning: integer constant is too large for 'long' type Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 3a6f2703268c99f2f2f0a93f2fbacec7b039fd36 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Sep 28 11:55:14 2013 +0200 block: Remove unused assignment (fixes warning from clang) blockdev.c:1929:13: warning: Value stored to 'ret' is never read ret = 0; ^ ~ Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 016e9d62fe66d40eff09d069714f3ccfd2066d79 Author: Amos Kong <akong@xxxxxxxxxx> Date: Fri Sep 27 09:25:38 2013 +0800 exec: cleanup DEBUG_SUBPAGE Touched some error after enabling DEBUG_SUBPAGE. Signed-off-by: Amos Kong <akong@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit d8039e58b1ecfdc9af171502c83e3949f6dafb95 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Tue Sep 24 09:43:39 2013 +0200 tests: Fix schema parser test for in-tree build Commit 4f193e3 added the test, but screwed up in-tree builds (SRCDIR=.): the tests's output overwrites the expected output, and is thus compared to itself. Cc: qemu-stable@xxxxxxxxxx Reported-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 8fbf47c3a8a7f37a11268a07290d20a325ba4cb6 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Wed Oct 2 12:52:38 2013 -0600 vfio-pci: Cleanup error_reports Remove carriage returns and tweak formatting for error_reports. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 6f864e6ec8812d5a5525a7861ca599c6bcabdebe Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Wed Oct 2 12:52:38 2013 -0600 vfio-pci: Lazy PCI option ROM loading During vfio-pci initfn, the device is not always in a state where the option ROM can be read. In the case of graphics cards, there's often no per function reset, which means we have host driver state affecting whether the option ROM is usable. Ideally we want to move reading the option ROM past any co-assigned device resets to the point where the guest first tries to read the ROM itself. To accomplish this, we switch the memory region for the option rom to an I/O region rather than a memory mapped region. This has the side benefit that we don't waste KVM memory slots for a BAR where we don't care about performance. This also allows us to delay loading the ROM from the device until the first read by the guest. We then use the PCI config space size of the ROM BAR when setting up the BAR through QEMU PCI. Another benefit of this approach is that previously when a user set the ROM to a file using the romfile= option, we still probed VFIO for the parameters of the ROM, which can result in dmesg errors about an invalid ROM. We now only probe VFIO to get the ROM contents if the guest actually tries to read the ROM. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit befe5176ef7a0004ba23517c97c804e292273635 Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Wed Oct 2 12:52:38 2013 -0600 vfio-pci: Test device reset capabilities Not all resets are created equal. PM reset is not very reliable, especially for GPUs, so we might want to opt for a bus reset if a standard reset will only do a D3hot->D0 transition. We can also use this to tell if the standard reset will do a bus reset (if neither has_pm_reset or has_flr is probed, but the device still supports reset). Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit c7679d450ee021eb0826be65e4e018884443643a Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Wed Oct 2 12:52:38 2013 -0600 vfio-pci: Add support for MSI affinity When MSI is accelerated through KVM the vectors are only programmed when the guest first enables MSI support. Subsequent writes to the vector address or data fields are ignored. Unfortunately that means we're ignore updates done to adjust SMP affinity of the vectors. MSI SMP affinity already works in non-KVM mode because the address and data fields are read from their backing store on each interrupt. This patch stores the MSIMessage programmed into KVM so that we can determine when changes are made and update the routes. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> commit 04fd1c789677fe121cb9546c652d088c994477fb Author: Sebastian Ottlik <ottlik@xxxxxx> Date: Wed Oct 2 12:23:16 2013 +0200 util: call socket_set_fast_reuse instead of setting SO_REUSEADDR SO_REUSEADDR should be avoided on Windows but is desired on other operating systems. So instead of setting it we call socket_set_fast_reuse that will result in the appropriate behaviour on all operating systems. Signed-off-by: Sebastian Ottlik <ottlik@xxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit aad1239a7e15f42c0b8a802433582c48417a4541 Author: Sebastian Ottlik <ottlik@xxxxxx> Date: Wed Oct 2 12:23:15 2013 +0200 slirp: call socket_set_fast_reuse instead of setting SO_REUSEADDR SO_REUSEADDR should be avoided on Windows but is desired on other operating systems. So instead of setting it we call socket_set_fast_reuse that will result in the appropriate behaviour on all operating systems. Signed-off-by: Sebastian Ottlik <ottlik@xxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit bcbe92fb080420551125994f3b15c139019da694 Author: Sebastian Ottlik <ottlik@xxxxxx> Date: Wed Oct 2 12:23:14 2013 +0200 net: call socket_set_fast_reuse instead of setting SO_REUSEADDR SO_REUSEADDR should be avoided on Windows but is desired on other operating systems. So instead of setting it we call socket_set_fast_reuse that will result in the appropriate behaviour on all operating systems. An exception to this rule are multicast sockets where it is sensible to have multiple sockets listen on the same ip and port and we should set SO_REUSEADDR on windows. Signed-off-by: Sebastian Ottlik <ottlik@xxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 6669ca13c39a8515cc634695698d3dea5f39be1c Author: Sebastian Ottlik <ottlik@xxxxxx> Date: Wed Oct 2 12:23:13 2013 +0200 gdbstub: call socket_set_fast_reuse instead of setting SO_REUSEADDR SO_REUSEADDR should be avoided on Windows but is desired on other operating systems. So instead of setting it we call socket_set_fast_reuse that will result in the appropriate behaviour on all operating systems. Signed-off-by: Sebastian Ottlik <ottlik@xxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 606600a176c981addcfedb0698f13fd0f2f4446e Author: Sebastian Ottlik <ottlik@xxxxxx> Date: Wed Oct 2 12:23:12 2013 +0200 util: add socket_set_fast_reuse function which will replace setting SO_REUSEADDR If a socket is closed it remains in TIME_WAIT state for some time. On operating systems using BSD sockets the endpoint of the socket may not be reused while in this state unless SO_REUSEADDR was set on the socket. On windows on the other hand the default behaviour is to allow reuse (i.e. identical to SO_REUSEADDR on other operating systems) and setting SO_REUSEADDR on a socket allows it to be bound to a endpoint even if the endpoint is already used by another socket independently of the other sockets state. This can even result in undefined behaviour. Many sockets used by QEMU should not block the use of their endpoint after being closed while they are still in TIME_WAIT state. Currently QEMU sets SO_REUSEADDR for such sockets, which can lead to problems on Windows. This patch introduces the function socket_set_fast_reuse that should be used instead of setting SO_REUSEADDR when fast socket reuse is desired and behaves correctly on all operating systems. As a failure of this function can only be caused by bad QEMU internal errors, an assertion handles these situations. The return value is still passed on, to minimize changes in client code and prevent unused variable warnings if NDEBUG is defined. Signed-off-by: Sebastian Ottlik <ottlik@xxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 0e19885e736938c3f6bd8c139eca00728bb24384 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Oct 2 12:09:12 2013 -0500 Update MAINTAINERS All of Paul's emails are bouncing and he hasn't been active for some time. Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 2560f19f426aceb4f2e809d860b93e7573cb1c4e Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Oct 2 17:54:57 2013 +0200 x86: cpuid: reconstruct leaf 0Dh data The data in leaf 0Dh depends on information from other feature bits. Instead of passing it blindly from the host, compute it based on whether these feature bits are enabled. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit c74f41bbcc83d12787ac42f2c74fc2be54e9f222 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 13 15:55:57 2013 +0200 x86: fix migration from pre-version 12 On KVM, the KVM_SET_XSAVE would be executed with a 0 xstate_bv, and not restore anything. Since FP and SSE data are always valid, set them in xstate_bv at reset time. In fact, that value is the same that KVM_GET_XSAVE returns on pre-XSAVE hosts. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit f8e6a11aecc96e9d8a84f17d7c07019471714e20 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Tue Sep 10 17:48:59 2013 -0300 target-i386: Set model=6 on qemu64 & qemu32 CPU models There's no Intel CPU with family=6,model=2, and Linux and Windows guests disable SEP when seeing that combination due to Pentium Pro erratum #82. In addition to just having SEP ignored by guests, Skype (and maybe other applications) runs sysenter directly without passing through ntdll on Windows, and crashes because Windows ignored the SEP CPUID bit. So, having model > 2 is a better default on qemu64 and qemu32 for two reasons: making SEP really available for guests, and avoiding crashing applications that work on bare metal. model=3 would fix the problem, but it causes CPU enumeration problems for Windows guests[1]. So let's set model=6, that matches "Athlon (PM core)" on AMD and "P2 with on-die L2 cache" on Intel and it allows Windows to use all CPUs as well as fixing sysenter. [1] https://bugzilla.redhat.com/show_bug.cgi?id=508623 Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit fda74f826baec78d685e5a87fd8a95bfb7bb2243 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Sep 30 17:57:21 2013 +0200 qcow2: Switch L1 table in a single sequence Switching the L1 table in memory should be an atomic operation, as far as possible. Calling qcow2_free_clusters on the old L1 table on disk is not a good idea when the old L1 table is no longer valid and the address to the new one hasn't yet been written into the corresponding BDRVQcowState field. To be more specific, this can lead to segfaults due to qcow2_check_metadata_overlap trying to access the L1 table during the free operation. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5641bf405608cc89578fafed8ec689a19046285a Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Tue Oct 1 11:59:20 2013 -0400 block: vhdx - add migration blocker This blocks migration for VHDX image files, until the functionality can be supported. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2fa9aa59cfc472c16309c4e84547aa873423b2f5 Author: Dunrong Huang <riegamaths@xxxxxxxxx> Date: Tue Sep 24 18:14:01 2013 +0800 block: use correct filename for error report The content filename point to will be erased by qemu_opts_absorb_qdict() in raw_open_common() in drv->bdrv_file_open() So it's better to use bs->filename. Signed-off-by: Dunrong Huang <riegamaths@xxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit db0749012b3d1cf655bddb3cc79052a0fd4dc97b Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Sep 30 09:21:07 2013 +0200 qcow2: CHECK_OFLAG_COPIED is obsolete CHECK_OFLAG_COPIED as a parameter to check_refcounts_l1 and check_refcounts_l2 is obselete now, since the OFLAG_COPIED consistency check is actually no longer performed by these functions (but by check_oflag_copied). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1e242b5544a48bc43eca9c637dc91ec06bcf3a31 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Sep 30 08:59:28 2013 +0200 qcow2: Correct endianness in overlap check If an inactive L1 table is loaded from disk, its entries are in big endian and have to be converted to host byte order before using them. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ee06e23051251c00778edf54fb930198df0e873a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 30 09:48:56 2013 -0700 tcg-arm: Move the tlb addend load earlier There are free scheduling slots between the sequence of comparison instructions. This requires changing the register in use to avoid conflict with those compares. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 66c2056fb83b873df0a3a4bda3a679bf53d082a2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 30 09:12:32 2013 -0700 tcg-arm: Remove restriction on qemu_ld output register The main intent of the patch is to allow the tlb addend register to be changed, without tying that change to the constraint. But the most common side-effect seems to be to enable usage of ldrd with the r0,r1 pair. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d3e440bef2783b7b2ebc210a0717c36351506b8c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 30 08:45:53 2013 -0700 tcg-arm: Return register containing tlb addend Preparatory to rescheduling the tlb load, and changing said register. Continues to use R1 for now. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d0ebde228415c6d89ad61270a461717fbb04915c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 30 08:16:00 2013 -0700 tcg-arm: Move load of tlb addend into tcg_out_tlb_read This allows us to make more intelligent decisions about the relative offsets of the tlb comparator and the addend, avoiding any need of writeback addressing. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f2488736371ae902f345cf9270d141f0a6797731 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 28 14:40:52 2013 -0700 tcg-arm: Use QEMU_BUILD_BUG_ON to verify constraints on tlb One of the two constraints we already checked via #if, but the tlb offset distance was only checked at runtime. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e5e2e4a74b75b41f72e1e3b3bac8c2a6b02896c2 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 28 11:16:16 2013 -0700 tcg-arm: Use strd for tcg_out_arg_reg64 Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d9f4dde4a6d34f14509664edc262016f21be5aac Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Jul 27 14:09:47 2013 -1000 tcg-arm: Rearrange slow-path qemu_ld/st Use the new helper_ret_*_mmu routines. Use a conditional call to arrange for a tail-call from the store path, and to load the return address for the helper for the load path. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 23bbc25085ceac827e1da9bebead058f436f66a6 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Jul 27 08:42:51 2013 -1000 tcg-arm: Use ldrd/strd for appropriate qemu_ld/st64 Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 9dbb52e862458935c250bac9e71d5a87da4e33e9 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Tue Sep 24 09:43:40 2013 +0200 tests: Update .gitignore for test-int128 and test-bitops Forgotten in commit 6046c62 and 3464700. Cc: qemu-stable@xxxxxxxxxx Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit d1c295f5721f206d55315405baa2c299acec7d76 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Sun Sep 22 20:49:19 2013 +0800 .gitignore: ignore tests/qemu-iotests/socket_scm_helper Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Wenchao Xia<xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ee6ee83de29923483b4905b35f18abf5333f6ea9 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Sep 13 12:48:47 2013 +0200 chardev: handle qmp_chardev_add(KIND_MUX) failure Cc: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit a684f3cf9b9b9c3cb82be87aafc463de8974610c Merge: 349cd52 1cf9412 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:15:27 2013 -0500 Merge remote-tracking branch 'kraxel/seabios-1.7.3.2' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * kraxel/seabios-1.7.3.2: update seabios from 1.7.2.2 to 1.7.3.2 Message-id: 1380533055-24960-1-git-send-email-kraxel@xxxxxxxxxx commit 349cd52c708eb7974d4517f40151685e09a069f6 Merge: eb322b8 774e80e Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:15:18 2013 -0500 Merge remote-tracking branch 'kraxel/roms.1' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * kraxel/roms.1: roms: add support for building sgabios roms: enable parallel seabios / seavgabios builds roms: enable ipxe cross builds roms: add rules to build slof roms: rewrite scripts/refresh-pxe-roms.sh roms: parallel ipxe builds roms: build lgplvgabios isavga variant roms: enable parallel builds for 'make lgplvgabios' roms: add 'make clean' Message-id: 1380532378-22138-1-git-send-email-kraxel@xxxxxxxxxx commit eb322b8155120166fa259a8e96040f76ba4fde64 Merge: 4235d77 e26d3e7 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:15:01 2013 -0500 Merge remote-tracking branch 'mst/tags/for_anthony' into staging pc,pci,virtio fixes and cleanups This includes pc and pci cleanups and enhancements, and a virtio-net bugfix related to softmac programming. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Sun 29 Sep 2013 01:51:16 AM CDT using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Michael S. Tsirkin (8) and others # Via Michael S. Tsirkin * mst/tags/for_anthony: smbios: Factor out smbios_maybe_add_str() smbios: Make multiple -smbios type= accumulate sanely smbios: Improve diagnostics for conflicting entries smbios: Convert to QemuOpts smbios: Normalize smbios_entry_add()'s error handling to exit(1) virtio-net: fix up HMP NIC info string on reset pci: remove explicit check to 64K ioport size piix4: disable io on reset piix: use 64 bit window programmed by guest q35: use 64 bit window programmed by guest pci: add helper to retrieve the 64-bit range range: add min/max operations on ranges range: add Range to typedefs q35: make pci window address/size match guest cfg Message-id: 1380437951-21788-1-git-send-email-mst@xxxxxxxxxx commit 4235d77349e93e7157555f20f1892088f55edff4 Merge: 3469a60 6165300 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:14:49 2013 -0500 Merge remote-tracking branch 'kwolf/for-anthony' into staging # By Max Reitz (10) and others # Via Kevin Wolf * kwolf/for-anthony: (30 commits) qcow2: Remove useless count_contiguous_clusters() parameter qcow2: COMPRESSED on count_contiguous_clusters qcow2: count_contiguous_clusters and compression qcow2: Free only newly allocated clusters on error qcow2: Always use error path in l2_allocate qcow2: Don't put invalid L2 table into cache qemu-iotests: Preallocated zero clusters in 061 qcow2: Correct bitmap size in zero expansion qemu-iotests: Quote $TEST_IMG* and $TEST_DIR usage qemu-iotests: Add basic ability to use binary sample images qemu-iotests: fix qmp.py search path block: use DIV_ROUND_UP in bdrv_co_do_readv qcow2: Assert against currently impossible overflow block: qed - use QEMU_PACKED for on-disk structures block: qcow2 - used QEMU_PACKED for on-disk structures block: vpc - use QEMU_PACKED for on-disk structures block: vdi - use QEMU_PACKED for on-disk structures rbd: avoid qemu_rbd_snap_list() memory leaks qdict: Extract qdict_extract_subqdict block: Fix compiler warning (-Werror=uninitialized) ... Message-id: 1380296370-14523-1-git-send-email-kwolf@xxxxxxxxxx commit 3469a60d9f6f7ba6fca3fe0788391f7285ead631 Merge: 28b9d47 594278d Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:14:10 2013 -0500 Merge remote-tracking branch 'sstabellini/xen-2013-09-25' into staging # By Anthony PERARD (2) and Liu, Jinsong (2) # Via Stefano Stabellini * sstabellini/xen-2013-09-25: xen: Enable cpu-hotplug on xenfv machine. xen: Fix vcpu initialization. qemu: Add qemu xen logic for Xen HVM S3 resume qemu: Adjust qemu wakeup Message-id: alpine.DEB.2.02.1309251749180.5498@xxxxxxxxxxxxxxxxxxxxxxx commit 28b9d47db61a96d2630c7ffa6cbfdcdd1536f7cb Merge: 8429d63 7f12d64 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:14:01 2013 -0500 Merge remote-tracking branch 'rth/tcg-ppc-pull' into staging # By Richard Henderson (19) and Paolo Bonzini (2) # Via Richard Henderson * rth/tcg-ppc-pull: (21 commits) tcg-ppc64: Implement CONFIG_QEMU_LDST_OPTIMIZATION tcg-ppc64: Add _noaddr functions for emitting forward branches tcg-ppc64: Streamline tcg_out_tlb_read tcg-ppc64: Implement tcg_register_jit tcg-ppc64: Handle long offsets better tcg-ppc64: Tidy register allocation order tcg-ppc64: Look through a constant function descriptor tcg-ppc64: Fold constant call address into descriptor load tcg-ppc64: Don't load the static chain from TCG tcg-ppc64: Avoid code for nop move tcg-ppc64: Use tcg_out64 tcg-ppc64: Use TCG_REG_Rn constants tcg-ppc64: More use of TAI and SAI helper macros tcg-ppc64: Reformat tcg-target.c tcg-ppc: Fix and cleanup tcg_out_tlb_check tcg-ppc: Use conditional branch and link to slow path tcg-ppc: Cleanup tcg_out_qemu_ld/st_slow_path tcg-ppc: Avoid code for nop move tcg-ppc: use new return-argument ld/st helpers tcg-ppc: fix qemu_ld/qemu_st for AIX ABI ... Message-id: 1380126458-3247-1-git-send-email-rth@xxxxxxxxxxx commit 8429d63b0e5671f112cb4cbf8ab6d697a676ccc4 Merge: d7f0efc d613a56 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:13:43 2013 -0500 Merge remote-tracking branch 'quintela/migration.next' into staging # By Isaku Yamahata (4) and others # Via Juan Quintela * quintela/migration.next: migration: ram_handle_compressed arch_init: make is_zero_page accept size migration: Fix debug print type migration: add version supporting macros for struct pointer rdma: constify ram_chunk_{index, start, end} rdma: clean up of qemu_rdma_cleanup() arch_init: right return for ram_save_iterate savevm: fix wrong initialization by ram_control_load_hook savevm: add comments for qemu_file_get_error() Message-id: 1380024203-25897-1-git-send-email-quintela@xxxxxxxxxx commit d7f0efcb229bc1c3e458c6968efe4a6644f24740 Merge: 1b365b2 19b0dfc Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:13:32 2013 -0500 Merge remote-tracking branch 'kraxel/audio.1' into staging # By Bandan Das (3) and Gerd Hoffmann (1) # Via Gerd Hoffmann * kraxel/audio.1: audio: remove CONFIG_MIXEMU configure option hda-codec: make mixemu selectable at runtime hda-codec: refactor common definitions into a header file audio maintainers update Message-id: 1380011943-15083-1-git-send-email-kraxel@xxxxxxxxxx commit 1b365b2eb629d033b3650acc9f46fc132ef0981c Merge: 53d09b7 6a444f8 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 30 17:13:18 2013 -0500 Merge remote-tracking branch 'borntraeger/tags/s390-next-20130924' into staging This is a bunch of fixes/changes for the s390 architecture. It also contains the fixes from the previous pull request, which did not make it yet. Overall it contains - a fix for kexec without kdump (which uses diag308 subcode 0 instead of 1) - several sclp related fixes - some initial sclp migration code - the sclp line mode console - A fix for a boot problem with the virtio ccw ipl bios - zeroed out padding bytes for the notes section of dump-guest-memory - some cleanups # gpg: Signature made Tue 24 Sep 2013 02:18:44 AM CDT using RSA key ID B5A61C7C # gpg: Can't check signature: public key not found # By Christian Borntraeger (6) and others # Via Christian Borntraeger * borntraeger/tags/s390-next-20130924: s390/sclplmconsole: Add support for SCLP line-mode console s390/ebcdic: Move conversion tables to header file s390/eventfacility: allow childs to handle more than 1 event type s390/eventfacility: remove unused event_type variable s390/eventfacility: Fix receive/send masks s390/eventfacility: fix multiple Read Event Data sources s390/sclp: add reset() functions s390/sclpquiesce: Add code to support live migration s390/sclpconsole: Add code to support live migration for sclpconsole s390/sclpconsole: modify definition of input buffer s390/kexec: Implement diag308 subcode 0 s390/ioinst: Moved the CC setting to the IO instruction handlers s390/cpu: Make setcc() function available to other files s390/ipl: Update the s390-ccw.img rom s390/ipl: Fix waiting for virtio processing s390/dump: zero out padding bytes in notes sections s390/kvm: Add check for priviledged SCLP handler Message-id: 1380007671-18976-1-git-send-email-borntraeger@xxxxxxxxxx commit 1cf9412b3b583b59a1ac131609cbf673662ee7eb Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Sep 30 11:17:57 2013 +0200 update seabios from 1.7.2.2 to 1.7.3.2 'git shortlog d4f7d90f..ece025f5' says: Alex Williamson (4): seabios q35: Enable all PIRQn IRQs at startup seabios q35: Add new PCI slot to irq routing function seabios: Add a dummy PCI slot to irq mapping function pciinit: Enable default VGA device Asias He (2): virtio-scsi: Set _DRIVER_OK flag before scsi target scanning virtio-scsi: Pack struct virtio_scsi_{req_cmd,resp_cmd} Avik Sil (1): USB-EHCI: Fix null pointer assignment Christian Gmeiner (5): geodevga: fix errors in geode_fp_* functions geodevga: move framebuffer setup geodevga: move output setup to own function geodevga: add debug to msr functions geodevga: fix wrong define name David Woodhouse (26): Add macros for pushing and popping struct bregs Clean up #if in pirtable.c. CONFIG_PIRTABLE can't be set if CONFIG_COREBOOT is post: Export functions which will be used individually by CSM Export callrom() for CSM to use Export copy_smbios() from biostables.c Import LegacyBios.h from OVMF Complete and checksum EFI_COMPATIBILITY16_TABLE at build time Add pic_save_mask() and pic_restore_mask() functions Add CSM support Add README.CSM Add find_pmtimer() function Enable PMTIMER for CSM build Fix rom_reserve()/rom_confirm() for CSM oprom dispatch Don't calibrate TSC if PMTIMER is already set up Move find_pmtimer() to ACPI table setup where it logically belongs Use find_pmtimer() after copying Xen ACPI tables Use find_pmtimer() after copying coreboot ACPI tables Unify return path for CSM to go via csm_return() Make CONFIG_OPTIONROMS_DEPLOYED depend on CONFIG_QEMU Implement !CONFIG_OPTIONROMS support for CSM Implement !CONFIG_BOOT for CSM Enable VGA output when settings bochs-specific mode Disable CONFIG_THREAD_OPTIONROMS for CSM build Fix return type of le64_to_cpu() and be64_to_cpu() Rename find_pmtimer() to find_acpi_features() Add acpi_reboot() reset method using RESET_REG Gerd Hoffmann (6): config: allow DEBUG_IO for !QEMU coreboot: add qemu detection tweak coreboot qemu detection apm: fix shutdown ahci: add missing check for allocation failure fix buildversion.sh Hu Tao (1): Add pvpanic device driver Kevin O'Connor (101): pmm: Use 'struct segoff_s' in pmm header. Minor: Update README - variable changes are now reset on soft-reboots. Normalize POST initialization function name suffixes. POST: Reorganize post init functions for better grouping and reusability. Fix rebase error in commit 8a0a972f that broke LOWMEM variables. Support calling a function other than maininit() from reloc_preinit(). Ensure exported symbols are visible in the final link POST: Move QEMU specific ramsize and BIOS table setup to paravirt.c. POST: Reorganize post entry and "preinit" functions. POST: Move cpu caching and dma setup to platform_hardware_setup(). Undo incorrect assumptions about Xen in commit 6ca0460f. Determine century during init and store in VARLOW mem during runtime. No need to check both CONFIG_THREADS and CONFIG_THREAD_OPTIONROMS. Add runningOnQEMU() and runningOnXen() for runtime platform detection. Consistently use CONFIG_COREBOOT, CONFIG_QEMU, and runningOnXen(). Convert kvm_para_available() to runningOnKVM(). Minor - move definitions to paravirt.c from paravirt.h. Only perform SMP setup on QEMU. Start device_hardware_setup in mainint even with CONFIG_THREAD_OPTIONROMS. The mathcp setup touches the PIC and thus move to the "setup" phase. Update tools/acpi_extract.py to handle iasl 20130117 release. Support skipping content when reading from QEMU fw_cfg romfile entries. Convert fw_cfg ACPI entries into romfile entries. Convert fw_cfg SMBIOS entries into romfile entries. Convert basic integer fw_cfg entries into romfile entries. Convert fw_cfg NUMA entries into a romfile entry. Process fw_cfg e820 entries during the fw_cfg setup stage. Integrate qemu_cfg_preinit() into qemu_romfile_init(). Group QEMU platform setup together and move to paravirt.c. vgabios: Bochs/QEMU vgabios support should depend on CONFIG_QEMU. Warn on unaligned PCI ROM structure in option roms. Fix Makefile - don't reference "out/" directly, instead use "$(OUT)". build: Don't require $(OUT) to be a sub-directory of the main directory. Rename rom_get_top() to rom_get_max(). Report on f-segment UMB ram also. Clarify build generated "zone low" values. Verify CC is valid during build tests. Disable handle_post() on CSM builds. Remove unnecessary "export" declarations from assembler functions. Minor assembler enhancements to __csm_return. Introduce VARFSEG for variables that will reside in the f-segment. Convert VAR16VISIBLE, VAR16EXPORT, and VAR32VISIBLE to VARFSEG. Don't relocate "varlow" variable references at runtime. Move malloc's ZoneFSeg and ZoneLow setup to malloc_init. Calculate "RamSize" needed by 16bit interface dynamically. Eliminate separate BiosTableSpace[] space for f-segment allocations. Use CONFIG_ prefix for Kconfig variables; use BUILD_ for others. Try to detect an unsuccessful hard-reboot to prevent soft-reboot loops. Minor - fix confusing final_sec32low_start name in layoutrom.py. Minor - introduce numeric defines for the IVT offset of hw irqs. Separate out 16bit PCI-BIOS entry point from regular int 0x1a entry point. Support using the "extra stack" for all 16bit irq entry points. Minor - improve comments and grouping of handle_08(). floppy: Introduce 'struct floppy_pio_s' for floppy PIO ops. floppy: Cleanup floppy irq wait handling. floppy: Clean up Check Interrupt Status code. floppy: Move recalibration and results parsing to floppy_cmd(). floppy: Improve floppy_pio() error checking. floppy: Implement media format sensing. floppy: Actually do controller reset in floppy_reset(). Minor - note that passing QEMU config via cmos is deprecated. Cache boot-fail-wait to avoid romfile access after POST. Rename src/ssdt-susp.dsl to src/ssdt-misc.dsl. acpi: Eliminate BDAT parameter passing to DSDT code. Add additional dependency checks to Makefile. Don't use __FILE__ in virtio-ring.c. shadow: Don't use PCIDevices list in make_bios_readonly(). smm: Don't use PCIDevices list in smm_setup(). Add VARVERIFY32INIT attribute for variables only available during "init". Use VARVERIFY32INIT on global variables that point to "tmp" memory. vgabios: Fix stdvga_perform_gray_scale_summing(). vgabios: Fix cirrus memory clear on mode switch. Minor - add missing newline to floppy debug statement. Fix bug in NUMA node setup - don't create SRAT if NUMA not present. Update README - copy *.aml files for QEMU. Add dependencies to vgafixup.py and buildversion.sh scripts. Set ZF prior to keyboard read call in check_for_keystroke(). mptable: Don't describe pci-to-pci bridges. mptable: Use same PCI irqs as ACPI code. Cleanup QEMU_CFG_NUMA fw_cfg processing - split into two romfile entries. Use container_of on romfile entries. acpi: Move ACPI table definitions from acpi.c to acpi.h. acpi: Remove dead code with descriptions of bit flags. acpi: Use cpu_to_leXX() consistently. Minor - explicitly close files in buildrom.py. Minor - move "tracked memory alloc" code in pmm.c. Introduce and convert pmm code to use standard list helpers. Minor - relocate code in stacks.c to keep low-level thread code together. Introduce helper function have_threads() in stacks.c. Convert stacks.c to use standard list manipulation code. Convert boot.c to use standard list manipulation code. Convert pciinit.c to use standard list manipulation code. Convert PCIDevices list to use standard list manipultion code. Revert "Convert pciinit.c to use standard list manipulation code." Fix error in hlist_for_each_entry_safe macro. Convert pciinit.c to use standard list manipulation code. make qemu_cfg_init depend on QEMU_HARDWARE instead of QEMU Another fix for hlist_for_each_entry_safe. Minor - remove debugging dprintf added to pciinit.c. Fix USB EHCI detection that was broken in hlist conversion of PCIDevices. Fix bug in CBFS file walking with compressed files. Laszlo Ersek (1): Enable VGA output when setting Cirrus-specific mode Michael S. Tsirkin (2): acpi: make default DSDT optional acpi: sync FADT flags from PIIX4 to Q35 Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 774e80ea1d080c608ab06a3b68d9f583644b8d85 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Sep 24 15:46:52 2013 +0200 roms: add support for building sgabios Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 95f7c6803c71ca6f74e8d59da3fd189230d1c466 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Sep 24 15:38:28 2013 +0200 roms: enable parallel seabios / seavgabios builds Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 779fa9d7060c547059ff1993dd38bea565d7f2e7 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Sep 23 11:05:48 2013 +0200 roms: enable ipxe cross builds commit bcf06c15e7beb31a9839951ee24a809b6919a85e Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Sep 20 14:51:10 2013 +0200 roms: add rules to build slof Add some logic to detect cross compilers. Add support for "make slof", which should JustWork[tm] if you are on a ppx64 machine or have a ppc64 cross compiler installed somewhere in your path. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 93a2b3c470cbf1523478e8272816e3a22400775d Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Sep 23 10:24:10 2013 +0200 roms: rewrite scripts/refresh-pxe-roms.sh Just use the Makefile in roms/ Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 46ef7f33a200a903dfcf7174ef5db4a09dc84f06 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Sep 20 15:26:26 2013 +0200 roms: parallel ipxe builds Enable parallel ipxe builds. Reduce the recursive make calls. Call recursive make properly using $(MAKE) $(MAKEFLAGS). Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5a7bd33385f25ccd09725899b380e0c62f6d5733 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Sep 20 14:35:31 2013 +0200 roms: build lgplvgabios isavga variant Add logic to also build+install the isavga vgabios variant. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 1ede4dd04b4f16a281a92d6a44905c63fb1635cf Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Sep 20 14:29:29 2013 +0200 roms: enable parallel builds for 'make lgplvgabios' Recurse into vgabios once, adjust dependencies, call make using $(MAKE) $(MAKEFLAGS) so jobserver mode works. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 6887581728c9eddf858e7458b6eacbfe3ac68302 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Fri Sep 20 15:34:27 2013 +0200 roms: add 'make clean' Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e26d3e734650640fabd7d95ace4f3a6f88725e0b Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 15:18:32 2013 +0200 smbios: Factor out smbios_maybe_add_str() Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit fc3b32958a80bca13309e2695de07b43dd788421 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 15:18:31 2013 +0200 smbios: Make multiple -smbios type= accumulate sanely Currently, -smbios type=T,NAME=VAL,... adds one field (T,NAME) with value VAL to fw_cfg for each unique NAME. If NAME occurs multiple times, the last one's VAL is used (before the QemuOpts conversion, the first one was used). Multiple -smbios can add multiple fields with the same (T, NAME). SeaBIOS reads all of them from fw_cfg, but uses only the first field (T, NAME). The others are ignored. "First one wins, subsequent ones get ignored silently" isn't nice. We commonly let the last option win. Useful, because it lets you -readconfig first, then selectively override with command line options. Clean up -smbios to work the common way. Accumulate the settings, with later ones overwriting earlier ones. Put the result into fw_cfg (no more useless duplicates). Bonus cleanup: qemu_uuid_parse() no longer sets SMBIOS system uuid by side effect. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit ec2df8c10a4585ba4641ae482cf2f5f13daa810e Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 15:18:30 2013 +0200 smbios: Improve diagnostics for conflicting entries We allow either tables or fields for the same type. Makes sense, because SeaBIOS uses fields only when no tables are present. We do this by searching the SMBIOS blob for a previously added table or field. Error messages look like this: qemu-system-x86_64: -smbios type=1,serial=42: SMBIOS type 1 table already defined, cannot add field User needs to know that "table" is defined by -smbios file=..., and "field" by -smbios type=... Instead of searching the blob, record additions of interest, and check that. Simpler, and makes better error messages possible: qemu-system-x86_64: -smbios file=smbios_type_1.bin: Can't mix file= and type= for same type qemu-system-x86_64: -smbios type=1,serial=42,serial=99: This is the conflicting setting Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 4f953d2fc806f1ba6fa76f01dfd121fe7d0dc4a7 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 15:18:29 2013 +0200 smbios: Convert to QemuOpts So that it can be set in config file for -readconfig. This tightens parsing of -smbios, and makes it more consistent with other options: unknown parameters are rejected, numbers with trailing junk are rejected, when a parameter is given multiple times, last rather than first wins, ... MST: drop one chunk to fix build errors Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 351a6a73ca7a9123f0dfd6c6f85fd01e82fe3741 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 15:18:28 2013 +0200 smbios: Normalize smbios_entry_add()'s error handling to exit(1) It exits on all error conditions but one, where it returns -1. Normalize, and return void. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 61653008adad45026464f962759112995802fe01 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Sep 27 13:36:11 2013 +0200 qcow2: Remove useless count_contiguous_clusters() parameter All callers pass start = 0, and it's doubtful if any other value would actually do what you expect. Remove the parameter. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Jeff Cody <jcody@xxxxxxxxxx> commit 22f0dd29afd6011b2b7a94bf860502eafce4ddd5 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Sep 27 12:14:16 2013 +0200 qcow2: COMPRESSED on count_contiguous_clusters Compressed clusters can never be contiguous, therefore the corresponding flag does not need to be given explicitly to count_contiguous_clusters. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 15684a474286cc2c6106c756ddd095a21d058970 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Sep 27 12:14:15 2013 +0200 qcow2: count_contiguous_clusters and compression The function is not intended to be used on compressed clusters and will not work correctly, if used anyway, since L2E_OFFSET_MASK is not the right mask for determining the offset of compressed clusters. Therefore, assert that the first cluster is not compressed and always include the compression flag in the mask of significant flags, i.e., stop the search as soon as a compressed cluster occurs. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 320c70666687db4dd4df8165f9fe6960de782ca9 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Sep 27 10:21:48 2013 +0200 qcow2: Free only newly allocated clusters on error In expand_zero_clusters_in_l1, a new cluster is only allocated if it was not already preallocated. On error, such preallocated clusters should not be freed, but only the newly allocated ones. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit be0b742ee320d1139d57062fa18490e7aa485f2a Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Sep 25 16:37:20 2013 +0200 qcow2: Always use error path in l2_allocate Just returning -errno in some cases prevents trace_qcow2_l2_allocate_done from being executed (and, in one case, also the unused allocated L2 table from being freed). Always going down the error path fixes this. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8585afd8133eed037dde9c14106e7eb8d7c46968 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Sep 25 16:37:18 2013 +0200 qcow2: Don't put invalid L2 table into cache In l2_allocate, the fail path is executed if qcow2_cache_flush fails. However, the L2 table has not yet been fetched from the L2 table cache. The qcow2_cache_put in the fail path therefore basically gives an undefined argument as the L2 table address (in this case). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit fd9e03e6060b3a64099d17e4a886421b21dd7341 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Sep 25 12:07:23 2013 +0200 qemu-iotests: Preallocated zero clusters in 061 Add a test case for zero cluster expansion on an image completely filled with preallocated zero clusters to test 061. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e390cf5a9722d3f3cc54efb505f6ff37fa554b11 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Sep 25 12:07:22 2013 +0200 qcow2: Correct bitmap size in zero expansion Since the expanded_clusters bitmap is addressed using host offsets in the underlying image file, the correct size to use for allocating the bitmap is not determined by the guest disk image but by the underlying host image file. Furthermore, this size may change during the expansion due to cluster allocations on growable image files. In this case, the bitmap needs to be resized as well to reflect the growth. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit fef9c19139f4d69a080d99b8cbade163d0bbf0fc Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Sep 25 08:12:22 2013 -0400 qemu-iotests: Quote $TEST_IMG* and $TEST_DIR usage A lot of image filename and paths are used unquoted. Quote these to make sure that directories / filenames with spaces are not problematic. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 85edbd375b9ab451c6769011cb6b3e0287dc71e4 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Sep 25 08:12:20 2013 -0400 qemu-iotests: Add basic ability to use binary sample images For image formats that are not "QEMU native", but supported for compatibility, it is useful to verify that an image created with the 'gold standard' native tool can be read / written to successfully by QEMU. In addition to testing non-native images, this could also be useful to test against image files created by older versions of QEMU. This provides a directory to store small sample images, for use by scripts in tests/qemu-iotests. Image files should be compressed with bzip2. To use a sample image from a bash script, the _use_sample_img function will copy and decompress the image into $TEST_DIR, and set $TEST_IMG to be the decompressed sample image copy. To cleanup, call _cleanup_test_img as normal. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 212774c5a5036b327dc10a0dd3e5fe194b509a18 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Sep 26 19:57:34 2013 +0800 qemu-iotests: fix qmp.py search path QMP/qmp.py is renamed to scripts/qmp/qmp.py, fix the search path in iotests.py. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d055a1fec37ec84fd3e87d48a0e766a9ff8369c4 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Sep 26 19:55:33 2013 +0800 block: use DIV_ROUND_UP in bdrv_co_do_readv Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c01dbccbad647be5784be39eb8fa0144732295db Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Wed Sep 25 17:48:55 2013 +0200 qcow2: Assert against currently impossible overflow If qcow2_alloc_cluster_link_l2 is called with a QCowL2Meta describing a request crossing L2 boundaries, a buffer overflow will occur. This is impossible right now since such requests are never generated (every request is shortened to L2 boundaries before) and probably also completely unintended (considering the name "QCowL2Meta"), however, it is still worth an assertion. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3df2b8fde949be86d8a78923c992fdd698d4ea4c Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 21:13:13 2013 +0200 misc: Use new rotate functions Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 6aa25b4a7bb10c48c3054f268d5be98e42ea42c0 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 21:13:12 2013 +0200 bitops: Add rotate functions (rol8, ror8, ...) These functions were copies from include/linux/bitopts.h. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit d285bf784b6234e994ce73c05c82c9fb6429df00 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 21:13:11 2013 +0200 tci: Add implementation of rotl_i64, rotr_i64 It is used by qemu-ppc64 when running Debian's busybox-static. Cc: qemu-stable <qemu-stable@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> commit 687fb89366366ce654a17c15af48adfe8c4ce70a Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Sep 25 12:08:51 2013 -0400 block: qed - use QEMU_PACKED for on-disk structures QEDHeader is read, and written, directly from on-disk images via bdrv_pread()/write(). To avoid any unintentional padding, these structs should be packed. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c4217f645dfdfd405cd0c50af953515e1114436a Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Sep 25 12:08:50 2013 -0400 block: qcow2 - used QEMU_PACKED for on-disk structures QCowHeader and QCowExtension are structs that reside in the on-disk image format, and are read and written directly via bdrv_pread()/write(), and as such should be packed to avoid any unintentional struct padding. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e54835c06d1f4896941c1505a86532aa1403ebe8 Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Sep 25 12:08:49 2013 -0400 block: vpc - use QEMU_PACKED for on-disk structures The VHD footer and header structs (vhd_footer and vhd_dyndisk_header) are on-disk structures for the image format, and as such should be packed. Go ahead and make these typedefs as well, with the preferred QEMU naming convention, so that the packed attribute is used consistently with the struct. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8368febd81cbf3cc71f5b0e92ef36e482dff37ca Author: Jeff Cody <jcody@xxxxxxxxxx> Date: Wed Sep 25 12:08:48 2013 -0400 block: vdi - use QEMU_PACKED for on-disk structures The header struct VdiHeader is an on-disk structure for the image format, and as such should be packed. Signed-off-by: Jeff Cody <jcody@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 594278d9f251222675f1c24f5fbb1b05560b8711 Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> Date: Wed Sep 25 16:43:12 2013 +0000 xen: Enable cpu-hotplug on xenfv machine. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 1cd25a889687ab199944b98c1bdc59216ea81487 Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> Date: Wed Sep 25 16:41:48 2013 +0000 xen: Fix vcpu initialization. Each vcpu need a evtchn binded in qemu, even those that are offline at QEMU initialisation. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> commit 11addd0ab9371af2b6ec028c7fe4e4c4992252fc Author: Liu, Jinsong <jinsong.liu@xxxxxxxxx> Date: Wed Sep 25 16:40:23 2013 +0000 qemu: Add qemu xen logic for Xen HVM S3 resume This patch is qemu patch 2 to fix Xen HVM S3 bug, adding qemu xen logic. When qemu wakeup, qemu xen logic is notified and hypercall to xen hypervisor to unpause domain. Signed-off-by: Liu Jinsong <jinsong.liu@xxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Reviewed-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> commit 4bc78a877252d772b983810a7d2c0be00e9be70e Author: Liu, Jinsong <jinsong.liu@xxxxxxxxx> Date: Wed Sep 25 16:38:29 2013 +0000 qemu: Adjust qemu wakeup Currently Xen hvm s3 has a bug coming from the difference between qemu-traditioanl and qemu-xen. For qemu-traditional, the way to resume from hvm s3 is via 'xl trigger' command. However, for qemu-xen, the way to resume from hvm s3 inherited from standard qemu, i.e. via QMP, and it doesn't work under Xen. The root cause is, for qemu-xen, 'xl trigger' command didn't reset devices, while QMP didn't unpause hvm domain though they did qemu system reset. We have two qemu patches and one xl patch to fix Xen hvm s3 bug. This patch is the qemu patch 1. It adjusts qemu wakeup so that Xen s3 resume logic (which will be implemented at qemu patch 2) will be notified after qemu system reset. Signed-off-by: Liu Jinsong <jinsong.liu@xxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> commit 7f12d6497f9c4907c1ce4ef296392aef305ed587 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jul 31 16:15:18 2013 -0700 tcg-ppc64: Implement CONFIG_QEMU_LDST_OPTIMIZATION Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c7ca6a2b75f3867dd723c214fac08aa6cbf8cf94 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 30 17:58:10 2013 -0700 tcg-ppc64: Add _noaddr functions for emitting forward branches ... rather than open-coding this stuff through the file. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit fedee3e7fda16e2ca438d2de6e76e4d434bcd3bb Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jul 31 15:11:44 2013 -0700 tcg-ppc64: Streamline tcg_out_tlb_read Less conditional compilation. Merge an add insn with the indexed memory load insn. Load the tlb addend earlier. Avoid the address update memory form. Fix a bug in not allowing large enough tlb offsets for some guests. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit fa94c3be7a3fc7f1beaa3b031da7199ae3c5ddc8 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Aug 31 04:44:21 2013 -0700 tcg-ppc64: Implement tcg_register_jit Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b18d5d2b80ba0fd33edabae72fd7e7ad6f20316a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jul 31 11:36:42 2013 -0700 tcg-ppc64: Handle long offsets better Previously we'd only handle 16-bit offsets from memory operand without falling back to indexed, but it's easy to use ADDIS to handle full 32-bit offsets. This also lets us unify code that existed inline in tcg_out_op for handling addition of large constants. The new R2 temporary was marked reserved for the AIX calling convention, but the register really is call-clobbered and since tcg generated code has no use for a TOC, it's available for use. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5e1702b0742b7cc88e85dfe76c3ba5d1432312aa Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jul 31 10:18:49 2013 -0700 tcg-ppc64: Tidy register allocation order Remove conditionalization from tcg_target_reg_alloc_order, relying on reserved_regs to prevent register allocation that shouldn't happen. So R11 is now present in reg_alloc_order for __APPLE__, but also now reserved. Sort reg_alloc_order into call-saved, call-clobbered, and parameters. This reduces the effect of values getting spilled and reloaded before function calls. Whether or not it is reserved, R2 (TOC) is always call-clobbered. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b0940da012c4c80145fdcf1730620f28ce80c2d8 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Aug 31 06:30:45 2013 -0700 tcg-ppc64: Look through a constant function descriptor Especially in the user-only configurations, a direct branch into the executable may be in range. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d40f3cb1128208d901b6224b52ff36ff05680d28 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Aug 31 06:13:49 2013 -0700 tcg-ppc64: Fold constant call address into descriptor load Eliminates one insn per call: : lis r2,4165 -: ori r2,r2,59616 -: ld r0,0(r2) +: ld r0,-5920(r2) : mtctr r0 -: ld r2,8(r2) +: ld r2,-5912(r2) : bctrl Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ad94e1a9db52de4ddfd9940324249518e0265902 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Jul 30 23:14:19 2013 -0700 tcg-ppc64: Don't load the static chain from TCG There are no helpers that require the static chain. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f8b84129073d600cef20d526814b9bdd15c2e1ba Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Jul 30 18:26:04 2013 -1000 tcg-ppc64: Avoid code for nop move While these are rare from code that's been through the optimizer, it's not uncommon within the tcg backend. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5e0f40cfedecfbc2a0608d75e8a8d22173f23431 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Aug 31 05:46:25 2013 -0700 tcg-ppc64: Use tcg_out64 Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8327a470df78cb41de95f6be0133a59e0a721e2c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Aug 31 05:41:45 2013 -0700 tcg-ppc64: Use TCG_REG_Rn constants Instead of bare N, for clarity. The only (intentional) exception made is for insns that encode R|0, i.e. when R0 encoded into the insn is interpreted as zero not the contents of the register. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 29b69198690f4b2754338c7c01f8ebe004b2efac Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Aug 31 05:23:23 2013 -0700 tcg-ppc64: More use of TAI and SAI helper macros Finish conversion of all memory operations. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 541dd4ceaacb92d93ceae87d4d521ae8bd381559 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sat Aug 31 05:14:53 2013 -0700 tcg-ppc64: Reformat tcg-target.c Whitespace and brace changes only. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8f50c841b374dc90ea604888ca92c37f469c428a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Aug 29 09:32:20 2013 -0700 tcg-ppc: Fix and cleanup tcg_out_tlb_check The fix is that sparc has so many mmu modes that the last one overflowed the 16-bit signed offset we assumed would fit. Handle this, and check the new assumption at compile time. Load the tlb addend earlier for the fast path. Remove the explicit address + addend and make use of index addressing. Adjust constraints for qemu_ld64 such that we don't clobber the address register or tlb addend before loading both values. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5b1c985b7e4d3f430769925c1775c9e8836272df Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Mon Sep 9 16:49:36 2013 -0700 tcg-ppc: Use conditional branch and link to slow path Saves one insn per slow path. Note that we can no longer use a tail call into the store helper. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 1d10cf9886429d17d22e233081697ef27465dca3 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Aug 29 10:07:24 2013 -0700 tcg-ppc: Cleanup tcg_out_qemu_ld/st_slow_path Coding style fixes. Use TCGReg enumeration values instead of raw numbers. Don't needlessly pull the whole TCGLabelQemuLdst struct into local variables. Less conditional compilation. No functional changes. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 4b2b114d8cc0f0f59bc20855bf287fb3df55b553 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 28 15:51:08 2013 -0700 tcg-ppc: Avoid code for nop move While these are rare from code that's been through the optimizer, it's not uncommon within the tcg backend. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 619f90ba62e27c674b1a9af8c0ae68eef8d64a92 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Sep 5 10:22:09 2013 +0200 tcg-ppc: use new return-argument ld/st helpers These use a 32-bit load-of-immediate to save a mflr+addi+mtlr sequence. Tested with a Windows 98 guest (pretty much the most recent thing I could run on my PPC machine) and kvm-unit-tests's sieve.flat. The speed up for sieve.flat is as high as 10% for qemu-system-i386, 25% (no kidding) for qemu-system-x86_64 on my PowerBook G4. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 6a115579883e6c0e56394bf7aaabd04260e11233 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Sep 5 10:22:08 2013 +0200 tcg-ppc: fix qemu_ld/qemu_st for AIX ABI For the AIX ABI, the function pointer and small area pointer need to be loaded in the trampoline. The trampoline instead is called with a normal BL instruction. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 9e6337d0818650362149b734d53edf9489f3acaa Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Sep 25 16:00:48 2013 +0200 rbd: avoid qemu_rbd_snap_list() memory leaks When there are no snapshots qemu_rbd_snap_list() returns 0 and the snapshot table pointer is NULL. Don't forget to free the snaps buffer we allocated for librbd rbd_snap_list(). When the function succeeds don't forget to free the snaps buffer after calling rbd_snap_list_end(). Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 5726d872f3c7a78a6c17ff5a6e47e01cff0a5e55 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Wed Sep 25 13:30:01 2013 +0200 qdict: Extract qdict_extract_subqdict Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c3e4f43a99549daa6e9b87350922e8339341c2ab Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Sep 22 08:19:10 2013 +0200 block: Fix compiler warning (-Werror=uninitialized) The patch fixes a warning from gcc (Debian 4.6.3-14+rpi1) 4.6.3: block/stream.c:141:22: error: â??copyâ?? may be used uninitialized in this function [-Werror=uninitialized] This is not a real bug - a better compiler would not complain. Now 'copy' has always a defined value, so the check for ret >= 0 can be removed. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Acked-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 030be32184034261da14693b69e9582f6fe4af9d Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Tue Sep 24 17:07:04 2013 +0200 block: introduce BlockDriver.bdrv_needs_filename to enable some drivers. Some drivers will have driver specifics options but no filename. This new bool allow the block layer to treat them correctly. The .bdrv_needs_filename is set in drivers not having .bdrv_parse_filename and not having .bdrv_open. The first exception to this rule will be the quorum driver. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2fe2e2907163f6d86b6bbced776ec8f9319ca83f Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Sep 25 17:45:51 2013 +0800 qemu-iotests: add monolithicFlat creation test to 059 Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit fc7ce63fb101ffb56027a04e89c8c6a38031bfc3 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Sep 25 17:45:50 2013 +0800 qemu-iotests: fix test case 059 Since commit "block: Error parameter for open functions", error output is more verbose. Update test case output file to follow the change. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 301c7d38a0c359b91526391d13617386f3d9bb29 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Sep 23 17:18:29 2013 +0800 vmdk: fix cluster size check for flat extents We use the extent size as cluster size for flat extents (where no L1/L2 table is allocated so it's safe) reuse sector calculating code with sparse extents. Don't pass in the cluster size for adding flat extent, just set it to sectors later, then the cluster size checking will not fail. The cluster_sectors is changed to int64_t to allow big flat extent. Without this, flat extent opening is broken: # qemu-img create -f vmdk -o subformat=monolithicFlat /tmp/a.vmdk 100G Formatting '/tmp/a.vmdk', fmt=vmdk size=107374182400 compat6=off subformat='monolithicFlat' zeroed_grain=off # qemu-img info /tmp/a.vmdk image: /tmp/a.vmdk file format: raw virtual size: 0 (0 bytes) disk size: 4.0K Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1f9db2243c1b987c834fe559a8e73b3178f50c2b Author: Peter Lieven <pl@xxxxxxx> Date: Tue Sep 24 15:35:09 2013 +0200 block/get_block_status: avoid segfault if there is no backing_hd Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 3e0a233d869e74e78b516be34715b91528508cfc Author: Peter Lieven <pl@xxxxxxx> Date: Tue Sep 24 15:35:08 2013 +0200 block/get_block_status: set *pnum = 0 on error if the call is invoked through bdrv_is_allocated the caller might expect *pnum = 0 on error. however, a new implementation of bdrv_get_block_status might only return a negative exit value on error while keeping *pnum untouched. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7454d600457f75f4fda6bf7be027fd3bcf7d5220 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 24 13:50:46 2013 +0200 qcow2: Don't shadow return value When trying to update the refcounts for a snapshot, the return value of update_refcount on a compressed cluster was pretty much ignored, cancelling the update on error but returning 0. This is caused by an inner "ret" variable shadowing the outer one (the latter is used in the return statement). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit ff42308f30e05155efc78a1f00f53943ca51e4f9 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Sep 23 16:38:33 2013 +0200 qemu-iotests: Do not execute 052 with -nocache Test 052 uses qemu-io -s which will result in bdrv_open trying to create a temporary snapshot file in /tmp. However, since O_DIRECT and tmpfs do not work well together, disable this test for -nocache. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4db9c980027447816cfd00703070a7672cb8e482 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Sun Sep 22 20:05:07 2013 +0800 qemu-iotests: add test for backing file overriding Test that backing.file.filename option can be parsed and override the backing file from image (backing file reflected with "info block"). Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit dbecebddfa4932d1c83915bcb9b5ba5984eb91be Author: Fam Zheng <famz@xxxxxxxxxx> Date: Sun Sep 22 20:05:06 2013 +0800 block: fix backing file overriding Providing backing.file.filename doesn't override backing file as expected: $ x86_64-softmmu/qemu-system-x86_64 -drive \ file=/tmp/child.qcow2,backing.file.filename=/tmp/fake.qcow2 qemu-system-x86_64: -drive \ file=/tmp/child.qcow2,backing.file.filename=/tmp/fake.qcow2: could not open disk image /tmp/child.qcow2: Can't specify 'file' and 'filename' options at the same time With $ qemu-img info /tmp/child.qcow2 image: /tmp/child.qcow2 file format: qcow2 virtual size: 1.0G (1073741824 bytes) disk size: 196K cluster_size: 65536 backing file: /tmp/fake.qcow2 This fixes it by calling bdrv_get_full_backing_filename only if backing.file.filename is not provided. Also save the backing file name to bs->backing_file so the information is correct with HMP "info block". Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e3608d66cea318698a2c4361d4e11a0e224c36db Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 28 15:48:21 2013 -0700 configure: Allow command-line configure for ppc32 Similar to manually selecting i386 for an x86_64 host. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c236f4519c9838801798f3705c17dce9ab9e3b9d Author: Eduardo Otubo <otubo@xxxxxxxxxxxxxxxxxx> Date: Tue Sep 24 14:50:44 2013 -0300 seccomp: fine tuning whitelist by adding times() This was causing Qemu process to hang when using -sandbox on as discribed on RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1004175 Signed-off-by: Eduardo Otubo <otubo@xxxxxxxxxxxxxxxxxx> Tested-by: Paul Moore <pmoore@xxxxxxxxxx> Acked-by: Paul Moore <pmoore@xxxxxxxxxx> commit d613a56f845788412a442c6b5aff88b38244f99a Author: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Date: Sat Sep 21 01:23:37 2013 +0900 migration: ram_handle_compressed ram_handle_compressed() should be aware of size > TARGET_PAGE_SIZE. migration-rdma can call it with larger size. Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit dc3c26a479e5bd19c1b3c04f696b8f70ad57f0b7 Author: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Date: Sat Sep 21 01:23:36 2013 +0900 arch_init: make is_zero_page accept size Later is_zero_page will be used for non TARGET_PAGE_SIZE range. And rename it to is_zero_range as it isn't page size any more. Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 5016e2df569bc7d67637060103dd360ed2f0d557 Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Date: Fri Aug 23 10:34:16 2013 -0700 migration: Fix debug print type The printf args are uint64_t and with -Werr QEMU doesn't compile with migration debugging turned on unless this is fixed. Fix it. Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 7102400d40be7fcfb017c8f211d6a37ecead2a2f Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Wed Sep 4 14:35:26 2013 +1000 migration: add version supporting macros for struct pointer This adds version supporting macros VMSTATE_STRUCT_POINTER_TEST_V and VMSTATE_STRUCT_POINTER_V in addition to the already existing VMSTATE_STRUCT_POINTER and VMSTATE_STRUCT_POINTER_TEST macros. Cc: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit dd286ed700c6ca2768ac3452bc5b79af1709296a Author: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Date: Wed Sep 4 11:32:19 2013 +0900 rdma: constify ram_chunk_{index, start, end} Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 5a91337cdf343b94474f8bbecab85a8c00f6d2a1 Author: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Date: Tue Aug 13 11:12:43 2013 +0900 rdma: clean up of qemu_rdma_cleanup() - It can't be determined by RDMAContext::cm_id != NULL if the connection is established or not. - RDMAContext::cm_id is leaked and not destroyed because it is set to NULL too early. - RDMAContext::qp is created by rdma_create_qp() so that it should be destroyed by rdma_destroy_qp(). not ibv_destroy_qp() Cc: Michael R. Hines <mrhines@xxxxxxxxxx> Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 6cd0beda2c3c21fd7575e944764f392be7ef50c1 Author: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 4 17:02:36 2013 +0800 arch_init: right return for ram_save_iterate qemu_file_rate_limit() never return negative value since the refactor by Commit 1964a39, this patch gets rid of the negative check for it, adjust bytes_transferred and return value correspondingly in ram_save_iterate(). Signed-off-by: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit c77a5f2daa1ccbd825d59b95c70207c0a196bb94 Author: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 4 17:02:35 2013 +0800 savevm: fix wrong initialization by ram_control_load_hook It should set negative error value rather than 0 in QEMUFile if there has been an error. Reviewed-by: Michael R. Hines <mrhines@xxxxxxxxxx> Signed-off-by: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 675fd0a7daa484a2011895583249c88ef2a27921 Author: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 4 17:02:34 2013 +0800 savevm: add comments for qemu_file_get_error() Add comments for qemu_file_get_error(), as its return value is not very clear. Signed-off-by: Lei Li <lilei@xxxxxxxxxxxxxxxxxx> Signed-off-by: Juan Quintela <quintela@xxxxxxxxxx> commit 19b0dfc19c0d911c322a03899806c59bc2f593c9 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Sat Sep 7 00:54:00 2013 -0400 audio: remove CONFIG_MIXEMU configure option Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 2690e61e8e313461428334586ed9dbf56531dae9 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Sat Sep 7 00:53:59 2013 -0400 hda-codec: make mixemu selectable at runtime Define PARAM so that we have two versions of the "desc_codec and family" structs. Add a property called "mixer" whose default value depends on whether CONFIG_MIXEMU is defined or not which will help us call the appropriate instance init functions. Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 7953793c033343dbea97836645edbe4e61754b11 Author: Bandan Das <bsd@xxxxxxxxxx> Date: Sat Sep 7 00:53:58 2013 -0400 hda-codec: refactor common definitions into a header file Move common defines and structs to a header file. The next commit will include it twice, once for a device with a mixer, and once for device without a mixer. Signed-off-by: Bandan Das <bsd@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 9f575846673f9f4e4f46b5710d1025af44762f92 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Sep 24 10:26:24 2013 +0200 audio maintainers update av1474@xxxxxxxx bounces, and I havn't seen malc @ qemu-devel for quite a while (anyone knows what is up?). Adding myself as audio maintainer, so audio patches don't fall through the cracks that easily. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 53d09b761f032f50c4424e8649396a9041070bae Author: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Date: Mon Sep 23 14:11:53 2013 +0200 linux-user: Handle SOCK_CLOEXEC/NONBLOCK if unavailable on host If the host lacks SOCK_CLOEXEC, bail out with -EINVAL. If the host lacks SOCK_ONONBLOCK, try to emulate it with fcntl() and O_NONBLOCK. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 89aaf1a6ad91c4cb3224fcca461d71dac9fa3fa6 Author: Riku Voipio <riku.voipio@xxxxxxxxxx> Date: Wed Jul 24 09:44:26 2013 +0300 [v2] linux-user: implement m68k atomic syscalls With nptl enabled, atomic_cmpxchg_32 and atomic_barrier system calls are needed. This patch enabled really dummy versions of the system calls, modeled after the m68k kernel code. With this patch I am able to execute m68k binaries with qemu linux-user (busybox compiled for coldfire). [v2] que an segfault instead of returning a EFAULT to keep in line with kernel code. Cc: Laurent Vivier <laurent@xxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 1308c464a8414ce3c6f79e172255fb90b5aa313d Author: Kwok Cheung Yeung <kcy@xxxxxxxxxxxxxxxx> Date: Mon Sep 9 17:36:40 2013 -0700 linux-user: Check type of microMIPS break instruction microMIPS instructions that cause breakpoint exceptions come in 16-bit and 32-bit variants. When handling exceptions caused by such instructions, the instruction type needs to be taken into account when extracting the break code. The code has also been restructured for better clarity. Signed-off-by: Kwok Cheung Yeung <kcy@xxxxxxxxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit dbf4f7965af974593da596ec12ac877d248efed6 Author: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Date: Fri Sep 13 19:27:29 2013 +0200 linux-user: correct how SOL_SOCKET is converted from target to host and back Previous implementation does not take into account that SOL_SOCKET constant can be arch specific. This change fixes some issues with sendmsg/recvmsg. Signed-off-by: Petar Jovanovic <petar.jovanovic@xxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 03cfd8faa7ffb7201e2949b99c2f35b1fef7078b Author: Laurent Vivier <laurent@xxxxxxxxx> Date: Fri Aug 30 01:46:44 2013 +0200 linux-user: add support of binfmt_misc 'O' flag The binfmt_misc module can calculate the credentials and security token according to the binary instead of to the interpreter if the 'C' flag is enabled. To be able to execute non-readable binaries, this flag implies 'O' flag. When 'O' flag is enabled, bintfmt_misc opens the file for reading and pass the file descriptor to the interpreter. References: linux/Documentation/binfmt_misc.txt ['O' and 'C' description] linux/fs/binfmt_misc.c linux/fs/binfmt_elf.c [ AT_EXECFD usage ] Signed-off-by: Laurent Vivier <laurent@xxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 0d78b3b5b1b5c391aa96b481be106de023810b66 Author: Laurent Vivier <laurent@xxxxxxxxx> Date: Fri Aug 30 01:46:43 2013 +0200 linux-user: add some IPV6 commands in setsockop() Signed-off-by: Laurent Vivier <laurent@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit bd00c74c7fdd8a34d5e22e27931b3a3a77e3b0dd Author: Laurent Vivier <laurent@xxxxxxxxx> Date: Fri Aug 30 01:46:42 2013 +0200 linux-user: allow use of TIOCGSID Signed-off-by: Laurent Vivier <laurent@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit f57d419241e7c7cce5d11172081a5860e86aa8bc Author: Laurent Vivier <laurent@xxxxxxxxx> Date: Fri Aug 30 01:46:41 2013 +0200 linux-user: Add setsockopt(SO_ATTACH_FILTER) This is needed to be able to run dhclient. Signed-off-by: Laurent Vivier <laurent@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit de6b9933772c743789808531b3092329faf42496 Author: Laurent Vivier <laurent@xxxxxxxxx> Date: Fri Aug 30 01:46:40 2013 +0200 linux-user: convert /proc/net/route when endianess differs This patch allows to have IP addresses in correct order in the case of "netstat -nr" when the endianess of the guest differs from one of the host. For instance, an m68k guest on an x86_64 host: WITHOUT this patch: $ netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 1.3.0.10 0.0.0.0 UG 0 0 0 eth0 0.3.0.10 0.0.0.0 0.255.255.255 U 0 0 0 eth0 $ cat /proc/net/route Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT eth0 00000000 0103000A 0003 0 0 0 000000000 0 0 eth0 0003000A 00000000 0001 0 0 0 00FFFFFF0 0 0 WITH this patch: $ netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 10.0.3.1 0.0.0.0 UG 0 0 0 eth0 10.0.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 $ cat /proc/net/route Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT eth0 00000000 0a000301 0003 0 0 0 000000000 0 0 eth0 0a000300 00000000 0001 0 0 0 ffffff000 0 0 Signed-off-by: Laurent Vivier <laurent@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 868e34d7bdf958963da9582c1c14f2b7930b6d37 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jul 24 09:50:01 2013 -1000 mips-linux-user: Adjust names in mips_syscall_args The name field of MIPS_SYS isn't actually used; it's just documentation. But adjust the umount entries to match mips/syscall_nr.h anyway. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit 8070e7be8b2909b48b56b5e965fca209ba5969db Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jul 24 09:50:00 2013 -1000 alpha-linux-user: Fix umount syscall numbers It has been pointed out on LKML that the alpha umount syscall numbers are named wrong, and a patch to rectify that has been posted for 3.11. Glibc works around this by treating NR_umount as NR_umount2 if NR_oldumount exists. That's more complicated than we need in QEMU, given that we control linux-user/*/syscall_nr.h. This is the last instance of TARGET_NR_oldumount, so delete that from the strace.list. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> commit f828a4c8faa118e0ebab3e353ac6840f3b2a0318 Merge: feb678c cbf5b96 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 23 11:53:22 2013 -0500 Merge remote-tracking branch 'stefanha/tracing' into staging # By Alexey Kardashevskiy # Via Stefan Hajnoczi * stefanha/tracing: kvm: fix traces to use %x instead of %d Message-id: 1379699931-5837-1-git-send-email-stefanha@xxxxxxxxxx commit feb678c6f7234d5227610939aff0510878590e83 Merge: 16121fa 97410dd Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 23 11:53:11 2013 -0500 Merge remote-tracking branch 'stefanha/net' into staging # By Aurelien Jarno (1) and Vincenzo Maffione (1) # Via Stefan Hajnoczi * stefanha/net: e1000: NetClientInfo.receive_iov implemented pcnet-pci: mark I/O and MMIO as LITTLE_ENDIAN Message-id: 1379699613-5338-1-git-send-email-stefanha@xxxxxxxxxx commit 16121fa39e1ec17308162af4de5c5f6c01c1cce1 Merge: 2e6ae66 ef5bc96 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 23 11:53:05 2013 -0500 Merge remote-tracking branch 'stefanha/block' into staging # By Stefan Hajnoczi (4) and others # Via Stefan Hajnoczi * stefanha/block: virtio-blk: do not relay a previous driver's WCE configuration to the current blockdev: do not default cache.no-flush to true block: don't lose data from last incomplete sector qcow2: Correct snapshots size for overlap check coroutine: fix /perf/nesting coroutine benchmark coroutine: add qemu_coroutine_yield benchmark qemu-timer: do not take the lock in timer_pending qemu-timer: make qemu_timer_mod_ns() and qemu_timer_del() thread-safe qemu-timer: drop outdated signal safety comments osdep: warn if open(O_DIRECT) on fails with EINVAL libcacard: link against qemu-error.o for error_report() Message-id: 1379698931-946-1-git-send-email-stefanha@xxxxxxxxxx commit 2e6ae666c8ccaa7fd26d7102c5c9bed24dc02b1d Merge: 3e4be9c 7a1c0d2 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 23 11:52:55 2013 -0500 Merge remote-tracking branch 'mjt/trivial-patches' into staging # By Stefan Weil (8) and others # Via Michael Tokarev * mjt/trivial-patches: tests/.gitignore: ignore test-throttle exec: Fix broken build for MinGW (regression) kvm: Fix compiler warning (clang) tcg-sparc: Fix parenthesis warning Makefile: Remove some more files when cleaning target-i386: Fix segment cache dump iov: avoid "orig_len may be used unitialized" warning vscclient: remove unnecessary use of uninitialized variable trace-events: Clean up with scripts/cleanup-trace-events.pl again tci: Fix qemu-alpha on 32 bit hosts (wrong assertions) *-user: Improve documentation for lock_user function MAINTAINERS: Add missing entry to filelist for TCI target translate-all: Fix formatting of dump output *-user: Fix typo in comment (ulocking -> unlocking) docs: Fix IO port number for CPU present bitmap. q35: Fix typo in constant DEFUALT -> DEFAULT. configure: Undefine _FORTIFY_SOURCE prior using it Message-id: 1379696296-32105-1-git-send-email-mjt@xxxxxxxxxxxxxxxx commit 3e4be9c29784df09c364b52a55e826a0b05b950e Merge: f3ca508 f010bc6 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 23 11:52:49 2013 -0500 Merge remote-tracking branch 'qemu-kvm/uq/master' into staging # By Alexey Kardashevskiy (3) and others # Via Paolo Bonzini * qemu-kvm/uq/master: target-i386: add feature kvm_pv_unhalt linux-headers: update to 3.12-rc1 target-i386: forward CPUID cache leaves when -cpu host is used linux-headers: update to 3.11 kvm: fix traces to use %x instead of %d kvmvapic: Clear also physical ROM address when entering INACTIVE state kvmvapic: Enter inactive state on hardware reset kvmvapic: Catch invalid ROM size kvm irqfd: support direct msimessage to irq translation fix steal time MSR vmsd callback to proper opaque type kvm: warn if num cpus is greater than num recommended cpu: Move cpu state syncs up into cpu_dump_state() exec: always use MADV_DONTFORK Message-id: 1379694292-1601-1-git-send-email-pbonzini@xxxxxxxxxx commit f3ca508f00fa1cc295334fe8f8010cd6ea45bacd Merge: 2571f8f f35c934 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Sep 23 11:52:32 2013 -0500 Merge remote-tracking branch 'bonzini/scsi-next' into staging # By Hervé Poussineau (5) and Stefan Weil (1) # Via Paolo Bonzini * bonzini/scsi-next: block/iscsi: Drop iscsi_co_get_block_status for older versions of libiscsi lsi: add 53C810 variant lsi: remove todo lsi: ignore write accesses to CTEST0 registers lsi: check ssid versus sdid only if ssid is valid lsi: use constant name instead of its value commit 702d66a813dd84afd7c3d1ad8cbdcc8e3449bcd9 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Sep 17 11:45:36 2013 +0300 virtio-net: fix up HMP NIC info string on reset When mac is updated on reset, info string has stale data. Fix it up. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit cbf5b968567dbd5a71165c1d30a0ce351bdca11a Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Wed Sep 4 20:26:25 2013 +1000 kvm: fix traces to use %x instead of %d KVM request types are normally defined using hex constants but QEMU traces print decimal values instead, which is not very convenient. This changes the request type format from %d to %x. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 97410dde60fdb66a65268fd9d7b14092efac7614 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Thu Sep 12 10:47:37 2013 +0200 e1000: NetClientInfo.receive_iov implemented This patch implements the NetClientInfo.receive_iov method for the e1000 device emulation. In this way a network backend that uses qemu_sendv_packet() can deliver the fragmented packet without requiring an additional copy in the frontend/backend network code (nc_sendv_compat() function). The existing method NetClientInfo.receive has been reimplemented using the new method. Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a26405b350c0d31d5ef53f3b459aeb6eaaf50db0 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Aug 28 14:17:39 2013 +0200 pcnet-pci: mark I/O and MMIO as LITTLE_ENDIAN Now that the memory subsystem is propagating the endianness correctly, the pcnet-pci device should have its I/O ports and MMIO memory marked as LITTLE_ENDIAN, as PCI devices are little endian. This makes the pcnet-pci NIC to work again on big endian MIPS Malta (default NIC). Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ef5bc96268ceec64769617dc53b0ac3a20ff351c Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Sep 20 17:31:55 2013 +0200 virtio-blk: do not relay a previous driver's WCE configuration to the current The following sequence happens: - the SeaBIOS virtio-blk driver does not support the WCE feature, which causes QEMU to disable writeback caching - the Linux virtio-blk driver resets the device, finds WCE is available but writeback caching is disabled; tells block layer to not send cache flush commands - the Linux virtio-blk driver sets the DRIVER_OK bit, which causes writeback caching to be re-enabled, but the Linux virtio-blk driver does not know of this side effect and cache flushes remain disabled The bug is at the third step. If the guest does know about CONFIG_WCE, QEMU should ignore the WCE feature's state. The guest will control the cache mode solely using configuration space. This change makes Linux do flushes correctly, but Linux will keep SeaBIOS's writethrough mode. Hence, whenever the guest is reset, the cache mode of the disk should be reset to whatever was specified in the "-drive" option. With this change, the Linux virtio-blk driver finds that writeback caching is enabled, and tells the block layer to send cache flush commands appropriately. Reported-by: Rusty Russell <rusty@xxxxxxxxxxx Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1df6fa4bc6754a170cf511a78e2e6fef84eb5228 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Sep 19 18:48:53 2013 +0200 blockdev: do not default cache.no-flush to true That's why all my VMs were so fast lately. :) This changed in 1.6.0 by mistake in patch 29c4e2b (blockdev: Split up 'cache' option, 2013-07-18). Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bcb9d66e8590151967e1dbe3724eec7ec71392e0 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Wed Sep 18 19:14:14 2013 +0800 block: don't lose data from last incomplete sector To read the last sector that is not aligned to sector boundary, current code for growable backends, since commit 893a8f6 "block: Produce zeros when protocols reading beyond end of file", drops the data and directly returns zeroes. That is incorrect. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7a1c0d200f3ca5be48f7034c6ed5458e490f8816 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Sep 16 15:20:40 2013 +0800 tests/.gitignore: ignore test-throttle Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 089f3f761ed99bd577661e7a6335a2529eda2ba3 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Sep 18 07:48:15 2013 +0200 exec: Fix broken build for MinGW (regression) Commit 3435f39513a104294b5e3bbf3612047028d25cfc reduced the ifdeffery with this result for MinGW: exec.c: In function â??qemu_ram_freeâ??: exec.c:1239:17: warning: implicit declaration of function â??munmapâ?? [-Wimplicit-function-declaration] exec.c:1239:17: warning: nested extern declaration of â??munmapâ?? [-Wnested-externs] exec.c:1239: undefined reference to `munmap' Add some ifdeffery again to fix this. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit e76d05c2b5028f09f6ac6bd2beee94103f388722 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Sep 17 22:39:55 2013 +0200 kvm: Fix compiler warning (clang) Report from clang analyzer: clock.c:42:15: warning: Value stored to 'cpu' during its initialization is never read Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 387e417666c28bd0cdc33c51036838dbae3bd3a4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Sep 6 13:24:11 2013 -0700 tcg-sparc: Fix parenthesis warning error: suggest parentheses around comparison in operand of â??&â?? [-Werror=parentheses] Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 8b6bfc771133caec7b1579c2bfa8838aec58e249 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Jul 25 18:24:58 2013 +0200 Makefile: Remove some more files when cleaning Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 469936ae0a9891b2de7e46743f683535b0819bee Author: Tobias Markus <tobias@xxxxxxxxxxxxxxxxxxxx> Date: Sun Aug 25 12:20:06 2013 +0200 target-i386: Fix segment cache dump When in Long Mode, cpu_x86_seg_cache() logs "DS16" because the Default operation size bit (D/B bit) is not set for Long Mode Data Segments since there are only Data Segments in Long Mode and no explicit 16/32/64-bit Descriptors. This patch fixes this by checking the Long Mode Active bit of the hidden flags variable and logging "DS" if it is set. (I.e. in Long Mode all Data Segments are logged as "DS") Signed-off-by: Tobias Markus <tobias@xxxxxxxxxxxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2be178a475289286db80de5ddd7830e67e112bdd Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Sat Sep 14 13:11:36 2013 +0400 iov: avoid "orig_len may be used unitialized" warning Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 69fded480e335ecfe877e2c37de0eff265fced12 Author: Michael Tokarev <mjt@xxxxxxxxxx> Date: Sat Sep 14 13:10:16 2013 +0400 vscclient: remove unnecessary use of uninitialized variable Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ddd0bd480fc07cc45f9cc7e3d113f23cb58b6082 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Sep 13 10:49:51 2013 +0200 trace-events: Clean up with scripts/cleanup-trace-events.pl again Event qxl_render_blit_guest_primary_initialized is unused since commit c58c7b9, drop it. Commit 42e5b4c moved hw/ppc/xics.c to hw/intc/xics.c without updating the comment in trace-events. "scripts/cleanup-trace-events.pl trace-events | diff trace-events" is now clean again. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 07ac4dc5db22a31e47b149abdbc5ea99013cf4de Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 20:17:50 2013 +0200 tci: Fix qemu-alpha on 32 bit hosts (wrong assertions) Debian busybox-static for alpha has a load address of 0x0000000120000000 which is mapped to 0x0000000020000000 for 32 bit hosts. qemu-alpha uses the TCG opcodes qemu_ld32, qemu_ld64, qemu_st32 and qemu_st64 which all raise the assertion (taddr == host_addr). Remove all assertions of this type because they are either wrong or unnecessary (when sizeof(tcg_target_ulong) >= sizeof(target_ulong)). Cc: qemu-stable <qemu-stable@xxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 6f20f55bccdead8e68c753093f3af6a74cbba883 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 19:57:15 2013 +0200 *-user: Improve documentation for lock_user function Add a missing "function" and replace "and" by "any". BSD and Linux use the same documentation here, so fix both. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2b7be8c8f5cecf936b7269ad1664361eee344842 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 20:24:31 2013 +0200 MAINTAINERS: Add missing entry to filelist for TCI target tci.c is also a maintained part of the TCI implementation. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 227b8175e2c60334c644c7cf7800bef8efbe085b Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 20:09:06 2013 +0200 translate-all: Fix formatting of dump output The page dump writes a table with 3 abi_ulong values in each row. These values take 8 or 16 characters (depending on sizeof abi_ulong). Fix the table headings to be aligned with the table columns. old: start end size prot 0000000120000000-000000012021e000 000000000021e000 rwx 0000004000000000-0000004000002000 0000000000002000 --- 0000004000002000-0000004000802000 0000000000800000 rw- new: start end size prot 0000000120000000-000000012021e000 000000000021e000 rwx 0000004000000000-0000004000002000 0000000000002000 --- 0000004000002000-0000004000802000 0000000000800000 rw- Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 41d1af4de44ac8729a21e4bf233d696861a3c570 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Sep 12 19:57:41 2013 +0200 *-user: Fix typo in comment (ulocking -> unlocking) Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 314b5d4bb6664e236aa90a478dd1e7833a918513 Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> Date: Tue Sep 10 17:36:18 2013 +0100 docs: Fix IO port number for CPU present bitmap. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Reviewd-By: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 451f7846ec64bbaa8feba03851e6fbb52acbf55c Author: Richard W.M. Jones <rjones@xxxxxxxxxx> Date: Mon Sep 2 14:43:36 2013 +0100 q35: Fix typo in constant DEFUALT -> DEFAULT. Signed-off-by: Richard W.M. Jones <rjones@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit e600cdf3b4ffe3370eb10a8e43ed547ac0f716cf Author: Michal Privoznik <mprivozn@xxxxxxxxxx> Date: Thu Sep 5 12:54:49 2013 +0200 configure: Undefine _FORTIFY_SOURCE prior using it Currently, we are enforcing the _FORTIFY_SOURCE=2 without any previous detection if the macro has been already defined, e.g. by environment, or is just enabled by compiler by default. Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> Signed-off-by: Jan Vesely <jano.vesely@xxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2571f8f5fbaea5dc3bdcd84737f109b459576e90 Merge: ce63e9c 521e759 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Fri Sep 20 08:08:18 2013 -0500 Merge remote-tracking branch 'spice/spice.v74' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * spice/spice.v74: qxl: compile only once qxl: simplify page dirtying qxl: simplify qxl_rom_size qxl: define qxl operating on 4k pages Message-id: 1379583534-7831-1-git-send-email-kraxel@xxxxxxxxxx commit ce63e9c258a05e344f81b28f2b995c530909a3f0 Merge: f54c49e 0ca6db4 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Fri Sep 20 08:08:08 2013 -0500 Merge remote-tracking branch 'kraxel/usb.90' into staging # By Hans de Goede (6) and Gerd Hoffmann (1) # Via Gerd Hoffmann * kraxel/usb.90: usb: Fix iovec memleak on combined-packet free usb: Also reset max_packet_size on ep_reset xhci: Fix memory leak on xhci_disable_ep xhci: Add xhci_epid_to_usbep helper function xhci: Init a transfers xhci, slotid and epid member on epctx alloc xhci: Fix number of streams allocated when using streams usb: remove old usb-host code Message-id: 1379583298-7524-1-git-send-email-kraxel@xxxxxxxxxx commit f54c49e2187976f4c3f6db1029461f3077e9f377 Merge: 92bfedb 7b5ce8d Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Fri Sep 20 08:06:38 2013 -0500 Merge remote-tracking branch 'luiz/queue/qmp' into staging # By Luiz Capitulino # Via Luiz Capitulino * luiz/queue/qmp: QMP: qmp-events.txt: alphabetical order fix and other minor changes QMP: Update qmp-spec.txt QMP: Update README file QMP: QMP/ -> docs/qmp/ QMP: fix qmp-commands.txt generation path QMP: add scripts/qmp Message-id: 1379509422-29115-1-git-send-email-lcapitulino@xxxxxxxxxx commit 6a444f8507514b3707c8807ed11c176d3fbc5860 Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Wed May 22 14:11:36 2013 +0200 s390/sclplmconsole: Add support for SCLP line-mode console Add simple support for SCLP line-mode also known as operating system messages. This can be added in addition to or instead of the SCLP full screen console with -device sclplmconsole. Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 40fa5264f68e04fdeb1fe0367955a98925349efd Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Tue May 21 17:04:58 2013 +0200 s390/ebcdic: Move conversion tables to header file Move conversion tables to header file. - In SCLP line mode processing EBCDIC/ASCII conversion is needed. - An additional EBCDIC to ASCII conversion function is added. Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit c3d9f24a392979cbd6a40d102c71eab018117f3e Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Tue Sep 17 13:07:30 2013 +0200 s390/eventfacility: allow childs to handle more than 1 event type Currently all handlers (quiesce, console) only handle one event type. Some drivers will handle multiple (compatible) event types. Rework the code accordingly. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> commit 8b8b1138df5e512dc8a89896c44b67d192dd3d7d Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Tue Sep 17 13:01:31 2013 +0200 s390/eventfacility: remove unused event_type variable The event_type variable is never used. Get rid of it. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> commit 788be8e9d669c314ad7aef1a71bce31367cfe462 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Tue Sep 17 10:32:54 2013 +0200 s390/eventfacility: Fix receive/send masks Currently we announce interchanged receive/send masks. This did not trigger a bug, since the sclp console has the same masks for send/receive and the Linux guest does not check the sclp mask for simple events like quiesce. With other event users like the sclp line mode console, we will have different send/receive bits. Fix it. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> commit a0c8699b23ea065f8435d3bd04bd23f1783aa454 Author: Ralf Hoppe <rhoppe@xxxxxxxxxx> Date: Mon Aug 19 09:41:24 2013 +0200 s390/eventfacility: fix multiple Read Event Data sources Make the handler for SCLP Read Event Data deal with notifications for multiple sources correctly. Signed-off-by: Ralf Hoppe <rhoppe@xxxxxxxxxx> Reviewed-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> [split bigger patch into smaller independent chunks] Reviewed-by: Alexander Graf <agraf@xxxxxxx> commit 3af6de321f39eda37d60a26559c63029c0d5b4c9 Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 4 12:55:45 2013 +0200 s390/sclp: add reset() functions Add reset() functions for event-facility, sclpconsole, and sclpquiesce. The reset() functions perform variable initialization at IPL and e.g. when monitor system_reset is called. Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 7e36b7a3561d685b8fb071b25ab887e890973a4d Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Tue Sep 11 13:41:26 2012 +0200 s390/sclpquiesce: Add code to support live migration This patch adds the necessary life migration pieces to sclpquiesce by using the vmstate_register. Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit cb335bebe1f5eadd0188215a9703c3fd90cfe84e Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Tue Sep 11 13:41:26 2012 +0200 s390/sclpconsole: Add code to support live migration for sclpconsole This patch adds the necessary life migration pieces to the sclp code by using vmstate_register. Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit ea9ad3e945526c56935c245a268731878c74e570 Author: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Date: Wed Aug 28 16:30:28 2013 +0200 s390/sclpconsole: modify definition of input buffer To use VMState for migration, we need to adapt some sclp code: - allocate console buffer as part of the console - change semantic of sclpconsole offset fields Signed-off-by: Heinz Graalfs <graalfs@xxxxxxxxxxxxxxxxxx> Reviewed-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit d8b30c830243c5b7180befd9e1921383c9626bf0 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Thu Sep 19 09:32:03 2013 +0200 s390/kexec: Implement diag308 subcode 0 This patch implements subcode 0 of diag 308. This is necessary for kexec (without kdump). The main difference to subcode 1 is that all CPUs get a full reset, instead of the architectured CPU reset (which leaves all registers untouched). Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 0f39ac9a07cc10278e37d87076b143008f28aa3b Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Sep 19 12:29:15 2013 +0200 qcow2: Correct snapshots size for overlap check Using s->snapshots_size instead of snapshots_size for the metadata overlap check in qcow2_write_snapshots leads to the detection of an overlap with the main qcow2 image header when deleting the last snapshot, since s->snapshots_size has not yet been updated and is therefore non-zero. However, the offset returned by qcow2_alloc_clusters will be zero since snapshots_size is zero. Therefore, an overlap is detected albeit no such will occur. This patch fixes this by replacing s->snapshots_size by snapshots_size when calling qcow2_pre_write_overlap_check. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5d9bf1c07c1369ab3506fc82cc65a10f4415d867 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Mon Jul 1 15:44:18 2013 +0200 s390/ioinst: Moved the CC setting to the IO instruction handlers The IO instruction handlers now take care of setting the CC value on their own, so that the confusing return code magic in kvm_handle_css_inst() is not needed anymore. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 3d0a615fe92501684d8d2dc54326f0241b666bd2 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Tue Jul 2 13:43:38 2013 +0200 s390/cpu: Make setcc() function available to other files Moved the setcc() function to cpu.h so that it can be used by other files, too. It now also does not modify the kvm state anymore since this gets updated during kvm_arch_put_registers() anyway. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 1902269c19a2c8ba852f90f04d6dfde1d1145d6f Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Mon Sep 2 11:05:43 2013 +0200 s390/ipl: Update the s390-ccw.img rom Rebuild of the virtio-ccw rom containing these patches: 1. s390/ipl: Fix waiting for virtio processing Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 441ea695f9e9d64399f69904c2dd12e59963f1a4 Author: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Date: Thu Aug 29 17:52:43 2013 +0200 s390/ipl: Fix waiting for virtio processing The guest side must not manipulate the index for the used buffers. Instead, remember the state of the used buffer locally and wait until it has moved. Signed-off-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit abd137a1bc72614e1e6ca1cd9502426e4b4f7e6a Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Thu Aug 29 12:40:25 2013 +0200 s390/dump: zero out padding bytes in notes sections The prstatus of an s390x dump contains several padding areas. Zero out these bytes to make reading the notes section easier with a hexdump. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 3ac85fb66626ea91641f5fb9ad9069aab94754f5 Author: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Date: Mon Jul 29 15:49:16 2013 +0200 s390/kvm: Add check for priviledged SCLP handler The SCLP instruction is priviledged, so we should make sure that we generate an exception when it is called from the problem state. Signed-off-by: Thomas Huth <thuth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit f010bc643a2759e87e989c3e4e85f15ec71ae98f Author: Andrew Jones <drjones@xxxxxxxxxx> Date: Wed Sep 18 16:41:45 2013 +0200 target-i386: add feature kvm_pv_unhalt I don't know yet if want this feature on by default, so for now I'm just adding support for "-cpu ...,+kvm_pv_unhalt". Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 4f2656079f903efcd0d8224cbc79170ad3ee5b70 Author: Andrew Jones <drjones@xxxxxxxxxx> Date: Wed Sep 18 16:41:44 2013 +0200 linux-headers: update to 3.12-rc1 Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 787aaf5703a702094f395db6795e74230282cd62 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Mon Sep 2 17:06:37 2013 +0200 target-i386: forward CPUID cache leaves when -cpu host is used Some users running cpu intensive tasks checking the cache CPUID leaves at startup and making decisions based on the result reported that the guest was not reflecting the host CPUID leaves when -cpu host is used. This patch fix this. Signed-off-by: Benoît Canet <benoit@xxxxxxxxxxx> [Rename new field to cache_info_passthrough - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c5daeae1b4ddff97d605bd954a7c2a2b2cf6040f Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Sep 3 18:27:37 2013 +1000 linux-headers: update to 3.11 Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 4fe6e9ecb7f9a221bfb3695079fb87946263a1e0 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Wed Sep 4 20:26:25 2013 +1000 kvm: fix traces to use %x instead of %d KVM request types are normally defined using hex constants but QEMU traces print decimal values instead, which is not very convenient. This changes the request type format from %d to %x. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 4357930b8a7d2fcff2d8121ec518117428a781e7 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Sep 3 18:08:52 2013 +0200 kvmvapic: Clear also physical ROM address when entering INACTIVE state To avoid misinterpreting INACTIVE after migration as old qemu-kvm's STANDBY, also clear rom_state_paddr when going back to this state. CC: qemu-stable@xxxxxxxxxx Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c056bc3f3464cfae1c94b7dd633d3ec13b13b655 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Sep 3 18:08:51 2013 +0200 kvmvapic: Enter inactive state on hardware reset ROM layout may change after reset of devices are hotplugged, so we have to pick up the physical address again when the ROM is initialized. This is best achieved by resetting the state to INACTIVE. CC: qemu-stable@xxxxxxxxxx Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 18e5eec4db96a00907eb588a2b803401637c7f67 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Sep 3 18:08:50 2013 +0200 kvmvapic: Catch invalid ROM size If not caught early, a zero-length ROM will cause a NULL-pointer access later on in patch_hypercalls when allocating a zero-length ROM copy and trying to read from it. CC: qemu-stable@xxxxxxxxxx Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 76fe21dedafb0319306bc993f23e7646b139cfe4 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Tue Sep 3 18:08:25 2013 +1000 kvm irqfd: support direct msimessage to irq translation On PPC64 systems MSI Messages are translated to system IRQ in a PCI host bridge. This is already supported for emulated MSI/MSIX but not for irqfd where the current QEMU allocates IRQ numbers from irqchip and maps MSIMessages to IRQ in the host kernel. This adds a new direct mapping flag which tells the kvm_irqchip_add_msi_route() function that a new VIRQ should not be allocated, instead the value from MSIMessage::data should be used. It is up to the platform code to make sure that this contains a valid IRQ number as sPAPR does in spapr_pci.c. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0e5035776df31380a44a1a851850d110b551ecb6 Author: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Date: Tue Sep 3 18:55:16 2013 -0300 fix steal time MSR vmsd callback to proper opaque type Convert steal time MSR vmsd callback pointer to proper X86CPU type. Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 670436ced08738802e15764039d03ab0dbab2bf3 Author: Andrew Jones <drjones@xxxxxxxxxx> Date: Fri Aug 23 15:24:37 2013 +0200 kvm: warn if num cpus is greater than num recommended The comment in kvm_max_vcpus() states that it's using the recommended procedure from the kernel API documentation to get the max number of vcpus that kvm supports. It is, but by always returning the maximum number supported. The maximum number should only be used for development purposes. qemu should check KVM_CAP_NR_VCPUS for the recommended number of vcpus. This patch adds a warning if a user specifies a number of cpus between the recommended and max. Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> Acked-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit 97577fd4c31777780a22b77afa4590086ac962c7 Author: James Hogan <james.hogan@xxxxxxxxxx> Date: Tue Aug 27 12:19:10 2013 +0100 cpu: Move cpu state syncs up into cpu_dump_state() The x86 and ppc targets call cpu_synchronize_state() from their *_cpu_dump_state() callbacks to ensure that up to date state is dumped when KVM is enabled (for example when a KVM internal error occurs). Move this call up into the generic cpu_dump_state() function so that other KVM targets (namely MIPS) can take advantage of it. This requires kvm_cpu_synchronize_state() and cpu_synchronize_state() to be moved out of the #ifdef NEED_CPU_H in <sysemu/kvm.h> so that they're accessible to qom/cpu.c. Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx> Cc: Andreas Färber <afaerber@xxxxxxx> Cc: Alexander Graf <agraf@xxxxxxx> Cc: Gleb Natapov <gleb@xxxxxxxxxx> Cc: qemu-ppc@xxxxxxxxxx Cc: kvm@xxxxxxxxxxxxxxx Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit 3e469dbfe413c25d48321c3a19ddfae0727dc6e5 Author: Andrea Arcangeli <aarcange@xxxxxxxxxx> Date: Thu Jul 25 12:11:15 2013 +0200 exec: always use MADV_DONTFORK MADV_DONTFORK prevents fork to fail with -ENOMEM if the default overcommit heuristics decides there's too much anonymous virtual memory allocated. If the KVM secondary MMU is synchronized with MMU notifiers or not, doesn't make a difference in that regard. Secondly it's always more efficient to avoid copying the guest physical address space in the fork child (so we avoid to mark all the guest memory readonly in the parent and so we skip the establishment and teardown of lots of pagetables in the child). In the common case we can ignore the error if MADV_DONTFORK is not available. Leave a second invocation that errors out in the KVM path if MMU notifiers are missing and KVM is enabled, to abort in such case. Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx> Tested-By: Benoit Canet <benoit@xxxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit a9031675b9f757eef0fe8c99284ec0133c032c32 Author: Gabriel Kerneis <gabriel@xxxxxxxxxxxx> Date: Tue Sep 17 18:26:48 2013 +0200 coroutine: fix /perf/nesting coroutine benchmark The /perf/nesting benchmark is broken because the counters are not reset after each iteration. Therefore, nesting is done only on the first iteration, and skipped on every other. This patch fixes the issue, and reduces the number of iterations to make it possible to run the benchmark in a reasonable amount of time. Signed-off-by: Gabriel Kerneis <gabriel@xxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2fcd15eac3223b3907837e8d7f2b3829a16a4c45 Author: Gabriel Kerneis <gabriel@xxxxxxxxxxxx> Date: Tue Sep 17 17:09:39 2013 +0200 coroutine: add qemu_coroutine_yield benchmark Current coroutine performance benchmarks test only coroutine creation, either directly or in a nested way. This patch adds a benchmark to evaluate the performance of qemu_coroutine_yield. Signed-off-by: Gabriel Kerneis <gabriel@xxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0ca6db4f3b3df5c4e5285a48a7709bdced5068de Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Sep 17 21:44:52 2013 +0200 usb: Fix iovec memleak on combined-packet free Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 9adbaad318cddd300c42dbbbc88991cdc9cecd99 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Sep 17 21:44:53 2013 +0200 usb: Also reset max_packet_size on ep_reset Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit b21da4e504fbdb907543a918b190783dc896d8e1 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Sep 17 21:44:51 2013 +0200 xhci: Fix memory leak on xhci_disable_ep The USBPacket-s in the transfers need to be cleaned up so that the memory allocated by the iovec in there gets freed. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 518ad5f2a0754f0a5ce4e478b79f4926ce46111b Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Sep 17 21:44:50 2013 +0200 xhci: Add xhci_epid_to_usbep helper function And use it instead of prying the USBEndpoint out of the packet struct in various places. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 4c5d82ecf1e8fd0720137f7d09fc77d65b51b4d0 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue Sep 17 21:44:49 2013 +0200 xhci: Init a transfers xhci, slotid and epid member on epctx alloc Transfers are part of an epctx, which is part of a slot, which is part of a xhci. Transfers cannot dynamically be moved from one epctx to another, so once created their xhci, slotid and epid are constant, so lets set these up at creation time, rather then re-initializing them with the same value each time a transfer gets submitted. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit d063c3112c4cd23a479ee18720c2bd119da2d315 Author: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Mon Sep 16 17:04:27 2013 +0200 xhci: Fix number of streams allocated when using streams According to the xhci spec the total number of streams is 2 ^ (MaxPStreams + 1), and this is also how the Linux xhci driver uses this field. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit b5613fdcb0e03d47852582c252942512f050b5b6 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Sep 10 11:02:59 2013 +0200 usb: remove old usb-host code The usb-host code has been rewritten for qemu 1.5 to use libusb, the old code has been left in as temporary fallback. Now we are two releases further out, targeting the 1.7 release. No major issues with the new code poped up until now. Time to remove it from tre tree. Should we ever need it again for some reason -- git has a copy for us in the history. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 3db1ee7c2af2fbbfe259712e3ce74158bc667ad3 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Sep 12 11:02:20 2013 +0200 qemu-timer: do not take the lock in timer_pending We can deduce the result from expire_time, by making it always -1 if the timer is not in the active_timers list. We need to check against negative times passed to timer_mod_ns; clamping them to zero is not a problem because the only clock that has a zero value at VM startup is QEMU_CLOCK_VIRTUAL, and it is monotonic so it cannot be non-zero. QEMU_CLOCK_HOST, instead, is not monotonic but it cannot go to negative values unless the host time is seriously screwed up and points to the 1960s. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 978f2205c791de0e02c8802a645bea657408abfd Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Sep 12 11:02:19 2013 +0200 qemu-timer: make qemu_timer_mod_ns() and qemu_timer_del() thread-safe Introduce QEMUTimerList->active_timers_lock to protect the linked list of active timers. This allows qemu_timer_mod_ns() to be called from any thread. Note that vm_clock is not thread-safe and its use of qemu_clock_has_timers() works fine today but is also not thread-safe. The purpose of this patch is to eventually let device models set or cancel timers from a vcpu thread without holding the global mutex. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit da718ceb1730bfe6fea0178df979639b14a0646e Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Sep 12 11:02:18 2013 +0200 qemu-timer: drop outdated signal safety comments host_alarm_handler() is invoked from the signal processing thread (currently the iothread). Previously we did processing in a real signal handler with signalfd and therefore needed signal-safe timer code. Today host_alarm_handler() just marks the alarm timer as expired/pending and notifies the main loop using qemu_notify_event(). Therefore these outdated comments about signal safety can be dropped. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a5813077aac7865f69b7ee46a594f3705429f7cd Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Aug 22 11:29:03 2013 +0200 osdep: warn if open(O_DIRECT) on fails with EINVAL Print a warning when opening a file O_DIRECT fails with EINVAL. This saves users a lot of time trying to figure out the EINVAL error, which is typical when attempting to open a file O_DIRECT on Linux tmpfs. Reported-by: Deepak C Shetty <deepakcs@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 975a0015ee380f49a3be744279a6a06ab97e960a Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Aug 22 11:29:02 2013 +0200 libcacard: link against qemu-error.o for error_report() Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7b5ce8db600a5d1842b9cb0cf8e8bb7af87fee10 Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Wed Sep 11 13:58:12 2013 -0400 QMP: qmp-events.txt: alphabetical order fix and other minor changes Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 715c18600ca770a8ada65d9fd77ad6423ab5fce9 Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Wed Sep 11 13:52:51 2013 -0400 QMP: Update qmp-spec.txt Simplify the text, fix some of the examples. Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 52bbff77c4d1c26b5d9f56e1f140523ec931c471 Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Tue Sep 10 17:15:49 2013 -0400 QMP: Update README file Drop unneeded info, fix some of the examples and rename QEMU Monitor Protocol to QEMU Machine Protocol. Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 7537fe0487c3f7991584ca1c4bf9b6c58cd33968 Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Tue Sep 10 17:00:45 2013 -0400 QMP: QMP/ -> docs/qmp/ Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit d076a2adddece29ad33afcce01e441bfc1c6923d Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Tue Sep 10 16:56:14 2013 -0400 QMP: fix qmp-commands.txt generation path This file should be generated in the BUILD_DIR, as all other docs. Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 22f3946bc5db2090ffc4ea41f2b83d09e58b665e Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Date: Tue Sep 10 16:39:23 2013 -0400 QMP: add scripts/qmp Populate it with all scripts stored in QMP/. Also fixes trailing whitespaces in qmp-shell and qmp.py. Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 521e759cf1ca05fc59a8653e48f18f830edbda7e Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Sep 11 13:32:07 2013 +0200 qxl: compile only once Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit b0297b4a82f5ba39f6e75c024f80bc4c20070d27 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Sep 11 13:15:48 2013 +0200 qxl: simplify page dirtying No need to do target page size calculations here, memory_region_set_dirty will care for us. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 60b3b2a55f4b3fb72419ce7e4b44378dc56eed28 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Sep 11 13:08:49 2013 +0200 qxl: simplify qxl_rom_size Nowdays rom size is fixed at 8192 for live migration compat reasons. So we can ditch the pointless math trying to calculate the size needed. Also make the size sanity check fail at compile time not runtime. Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 9efc2d8d813b94fde0a2bad6c13850bef7636748 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Sep 11 13:14:25 2013 +0200 qxl: define qxl operating on 4k pages Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit f35c934a5add17eb549e3f7f4b8286605eb21e99 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Sep 17 19:33:49 2013 +0200 block/iscsi: Drop iscsi_co_get_block_status for older versions of libiscsi Debian wheezy includes libiscsi-dev 1.4.0 which does not provide SCSI_PROVISIONING_TYPE_DEALLOCATED. Drop iscsi_co_get_block_status in this case to allow compilation without errors. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 92bfedb0b6071c5c59f97c99a0ff79e3a0856bd4 Author: Eduardo Otubo <otubo@xxxxxxxxxxxxxxxxxx> Date: Mon Sep 9 14:04:15 2013 -0300 MAINTAINERS: Add myself to MAINTAINERS file Add myself to the MAINTAINERS file. I'll be looking at qemu-seccomp.c and include/sysemu/seccomp.h. Signed-off-by: Eduardo Otubo <otubo@xxxxxxxxxxxxxxxxxx> Acked-by: Paul Moore <pmoore@xxxxxxxxxx> Message-id: 1378746255-2089-1-git-send-email-otubo@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 46663e5eff4be1d79971f46e51c9bb415ec8f5be Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 17 11:10:47 2013 -0500 hmp: block-stream: fix typo Found this by enabling C++ errors. The bool and enum arguments are mistakenly flipped. Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 6c2679fc19560699679200fb42ab4659bcbe7f79 Merge: 5dc1119 426e3e6 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 17 10:01:24 2013 -0500 Merge remote-tracking branch 'kiszka/queues/slirp' into staging # By Liu Ping Fan (3) and Jan Kiszka (1) # Via Jan Kiszka * kiszka/queues/slirp: slirp: clean up slirp_update_timeout slirp: set mainloop timeout with more precise value slirp: define timeout as macro slirp: make timeout local Message-id: cover.1379415024.git.jan.kiszka@xxxxxxxxxxx commit 5dc11192b23fbb09fab277d58ac3c42b9699a8b0 Merge: ab9cec4 c21bddf Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 17 09:51:40 2013 -0500 Merge remote-tracking branch 'kwolf/for-anthony' into staging # By Max Reitz (16) and others # Via Kevin Wolf * kwolf/for-anthony: (33 commits) qemu-iotests: Fix test 038 block: Assert validity of BdrvActionOps qemu-iotests: Cleanup test image in test number 007 qemu-img: fix invalid JSON coroutine: add ./configure --disable-coroutine-pool qemu-iotests: Adjustments due to error propagation qcow2: Use Error parameter qemu-img create: Emit filename on error block: Error parameter for create functions block: Error parameter for open functions bdrv: Use "Error" for creating images bdrv: Use "Error" for opening images qemu-iotests: add 057 internal snapshot for block device test case hmp: add interface hmp_snapshot_delete_blkdev_internal hmp: add interface hmp_snapshot_blkdev_internal qmp: add interface blockdev-snapshot-delete-internal-sync qmp: add interface blockdev-snapshot-internal-sync qmp: add internal snapshot support in qmp_transaction snapshot: distinguish id and name in snapshot delete snapshot: new function bdrv_snapshot_find_by_id_and_name() ... Message-id: 1379073063-14963-1-git-send-email-kwolf@xxxxxxxxxx commit ab9cec42bf3ed1d9bb574b7de5f3c61da47b3a81 Merge: 7d41364 bff9328 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 17 09:51:23 2013 -0500 Merge remote-tracking branch 'rth/tgt-i386' into staging # By Paolo Bonzini (1) and Peter Maydell (1) # Via Richard Henderson * rth/tgt-i386: target-i386: Only provide CMOV and friends if feature bit set target-i386: fix disassembly with PAE=1, PG=0 Message-id: 1379010496-5875-1-git-send-email-rth@xxxxxxxxxxx commit 7d41364e712f00894759f7dbf2623a8b27b79a0e Merge: 25afd6e f4ff3b7 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 17 09:50:23 2013 -0500 Merge remote-tracking branch 'bonzini/scsi-next' into staging # By Peter Lieven (3) and others # Via Paolo Bonzini * bonzini/scsi-next: spapr-vscsi: Report error on unsupported MAD requests spapr-vscsi: Adding VSCSI capabilities iscsi: split discard requests in multiple parts iscsi: add .bdrv_get_block_status iscsi: add logical block provisioning information to iscsilun hw/scsi/lsi53c895a: Use deposit32 rather than handcoded shift/mask hw/scsi/lsi53c895a: Use sextract32 for sign-extension scsi: Fix scsi_bus_legacy_add_drive() scsi-generic with serial virtio-scsi: Make type virtio-scsi-common abstract spapr-vscsi: add task management scsi: prefer UUID to VM name for the initiator name Message-id: 1378984634-765-1-git-send-email-pbonzini@xxxxxxxxxx commit 25afd6eb150324c70164875853a9aede08c48aff Merge: 7f87af3 b0d768c Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 17 09:49:43 2013 -0500 Merge remote-tracking branch 'kraxel/chardev.7' into staging # By Gerd Hoffmann # Via Gerd Hoffmann * kraxel/chardev.7: chardev: fix pty_chr_timer Message-id: 1378972894-11185-1-git-send-email-kraxel@xxxxxxxxxx commit 426e3e6ce1abdb0d85faefbfac3cf4dcc7f224a3 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Wed Aug 28 19:12:15 2013 +0200 slirp: clean up slirp_update_timeout No need to write out the timeout early, keep it local until we are done. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> commit a42e9c41888bc6a5446ef6bd95745c9fd023f107 Author: Liu Ping Fan <qemulist@xxxxxxxxx> Date: Sun Aug 25 10:01:21 2013 +0800 slirp: set mainloop timeout with more precise value If slirp needs to emulate tcp timeout, then the timeout value for mainloop should be more precise, which is determined by slirp's fasttimo or slowtimo. Achieve this by swap the logic sequence of slirp_pollfds_fill and slirp_update_timeout. Signed-off-by: Liu Ping Fan <pingfank@xxxxxxxxxxxxxxxxxx> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> commit 9b0ca6cc64d3542be35f1ca6174de2ab6af30ed0 Author: Liu Ping Fan <qemulist@xxxxxxxxx> Date: Sun Aug 25 10:01:20 2013 +0800 slirp: define timeout as macro Signed-off-by: Liu Ping Fan <pingfank@xxxxxxxxxxxxxxxxxx> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> commit fe0ff43c9d8ccf45effdade8d40e44aed421187f Author: Liu Ping Fan <qemulist@xxxxxxxxx> Date: Sun Aug 25 10:01:19 2013 +0800 slirp: make timeout local Each slirp has its own time to caculate timeout. Signed-off-by: Liu Ping Fan <pingfank@xxxxxxxxxxxxxxxxxx> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> commit ceae18bd74e8940ff79935a257c72e665b084bcc Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Sat Sep 14 17:51:09 2013 +0200 lsi: add 53C810 variant Currently, treat it exactly as a 53C895A. 53C895A is a 53C810 with more capabilities, so this should work. However, this lets us test different code paths on Linux, which don't use lastest features if it detect a 810, or on some OSes which only support 810 and not 895A (like very old Windows NT versions). Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 689f5ff4376c576681ee581f11e710d6711f06b4 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Sat Sep 14 17:51:08 2013 +0200 lsi: remove todo LSI emulation has been tested with Linux on PPC platform. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0903c35ddeebde56772b39cf08e7a0bae2eb39eb Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Sat Sep 14 17:51:07 2013 +0200 lsi: ignore write accesses to CTEST0 registers 53C895A datasheet says that this register is read/write, and that the value returned on read access is dependant of DMA FIFO state. However, nothing is said for written value. 53C810A datasheet gives more insight about this register: "This was a general purpose read/write register in previous SYM53C8XX family chips. Although it is still a read/write register, Symbios reserves the right to use these bits for future 53C8XX family enhancements." This prevents going to the default case, which prints an error message. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c7ac9f403af37439da0ce650b68bbcb13439768e Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Sat Sep 14 17:51:06 2013 +0200 lsi: check ssid versus sdid only if ssid is valid This prevents some (invalid) error messages on console. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 16b8ed1d09e9535457a09b9faf7a7e6c6e8da255 Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Sat Sep 14 17:51:05 2013 +0200 lsi: use constant name instead of its value Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 9f1a029abf15751e32a4b1df99ed2b8315f9072c Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Fri Sep 13 13:58:44 2013 +0200 pci: remove explicit check to 64K ioport size This check is useless, as bigger addresses will be ignored when added to 'io' MemoryRegion, which has a size of 64K. However, some architectures don't use the 'io' MemoryRegion, like the alpha and versatile platforms. They create a PCI I/O region bigger than 64K, so let them handle PCI I/O BARs in the higher range. MST: reinstated work-around for BAR sizing. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c046e8c4a26c902ca1b4f5bdf668a2da6bc75f54 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Wed Sep 11 13:33:31 2013 +0300 piix4: disable io on reset io base register at 0x40 is cleared on reset, but io is not disabled until some other event happens to call pm_io_space_update. Invoke pm_io_space_update directly to make this consistent. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 2028fdf3791e14c5ad156252afa0e792192a3e92 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Sep 2 12:58:57 2013 +0300 piix: use 64 bit window programmed by guest Detect the 64 bit window programmed by firmware and configure properties accordingly. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8b42d730e3401084720f4ba59d1e18a0d6c67dc6 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Sep 2 12:57:36 2013 +0300 q35: use 64 bit window programmed by guest Detect the 64 bit window programmed by firmware and configure properties accordingly. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 438640695723f33be6d0081ac1e690aa40975c39 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Sep 2 11:37:02 2013 +0300 pci: add helper to retrieve the 64-bit range Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c5a22c4344f17169bb20e122e9d935c62aedc063 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Sep 2 11:04:39 2013 +0300 range: add min/max operations on ranges Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit cfe25e2bcada943984e27ee63918fd75dc4563ac Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Sep 2 11:41:37 2013 +0300 range: add Range to typedefs will help simplify header dependencies. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 636228a887c4d5c0dc313bbf936de969b420a91a Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Sep 1 13:26:03 2013 +0300 q35: make pci window address/size match guest cfg For Q35, MMCFG address and size are guest configurable. Update w32 property to make it behave accordingly. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit c21bddf27fd8029890e9fc2ee314788919eababf Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Sep 13 10:37:12 2013 +0200 qemu-iotests: Fix test 038 Test 038 uses asynchronous I/O, resulting (potentially) in a different output for every run (regarding the order of the I/O accesses). This can be fixed by simply sorting the I/O access messages, since their order is irrelevant anyway (for this asynchonous I/O). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit bff93281a75def2e3197005d72ad5cdc4719383f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Jul 15 18:21:40 2013 +0100 target-i386: Only provide CMOV and friends if feature bit set The instructions CMOVcc, FCMOVcc and F[U]COMI[P] should only be present if the CMOV feature bit is set. Add missing feature bit checks so we correctly fault if emulating a 486 or 586. This fixes bug LP:1201446. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f2f8560c7a5303065a2a3207ec475dfb3a622a0e Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Aug 30 11:58:45 2013 +0200 target-i386: fix disassembly with PAE=1, PG=0 CR4.PAE=1 will not enable paging if CR0.PG=0, but the "if" chain in x86_cpu_get_phys_page_debug says otherwise. Check CR0.PG before everything else. Fixes "-d in_asm" for a code section at the beginning of OVMF. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Reviewed-by: Max Filippov <jcmvbkbc@xxxxxxxxx> commit 7f87af39dc786a979e7ebba338d0781e366060ed Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:12 2013 +0200 pc_sysfw: Fix ISA BIOS init for ridiculously big flash pc_isa_bios_init() suffers integer overflow for flash larger than INT_MAX. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Message-id: 1375276272-15988-9-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 39228250ce6cf67eb1c3799791d271f53c5c6347 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:11 2013 +0200 exec: Don't abort when we can't allocate guest memory We abort() on memory allocation failure. abort() is appropriate for programming errors. Maybe most memory allocation failures are programming errors, maybe not. But guest memory allocation failure isn't, and aborting when the user asks for more memory than we can provide is not nice. exit(1) instead, and do it in just one place, so the error message is consistent. Tested-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Message-id: 1375276272-15988-8-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit e1e84ba050538bae24393e40b737078ecad99747 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:10 2013 +0200 exec: Clean up unnecessary S390 ifdeffery Another issue missed in commit fdec991 is -mem-path: it needs to be rejected only for old S390 KVM, not for any S390. Not that I personally care, but the ifdeffery in qemu_ram_alloc_from_ptr() annoys me. Note that this doesn't actually make -mem-path work, as the kernel doesn't (yet?) support large pages in the host for KVM guests. Clean it up anyway. Thanks to Christian Borntraeger for pointing out the S390 kernel limitations. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Message-id: 1375276272-15988-7-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 2eb9fbaab56c6350c7d137428f4bd0bc79168214 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:09 2013 +0200 exec: Drop incorrect & dead S390 code in qemu_ram_remap() Old S390 KVM wants guest RAM mapped in a peculiar way. Commit 6b02494 implemented that. When qemu_ram_remap() got added in commit cd19cfa, its code carefully mimicked the allocation code: peculiar way if defined(TARGET_S390X) && defined(CONFIG_KVM), else normal way. For new S390 KVM, we actually want the normal way. Commit fdec991 changed qemu_ram_alloc_from_ptr() accordingly, but forgot to update qemu_ram_remap(). If qemu_ram_alloc_from_ptr() maps RAM the normal way, but qemu_ram_remap() remaps it the peculiar way, remapping changes protection and flags, which it shouldn't. Fortunately, this can't happen, as we never remap on S390. Replace the incorrect code with an assertion. Thanks to Christian Borntraeger for help with assessing the bug's (non-)impact. Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Message-id: 1375276272-15988-6-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 91138037cb341a04a66e4c43b6cb31d5d8a43a73 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:08 2013 +0200 exec: Simplify the guest physical memory allocation hook Make it a generic hook rather than a KVM hook. Less code and ifdeffery. Since the only user of the hook is old S390 KVM, there's hope we can get rid of it some day. Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Message-id: 1375276272-15988-5-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 3435f39513a104294b5e3bbf3612047028d25cfc Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:07 2013 +0200 exec: Reduce ifdeffery around -mem-path Instead of spreading its ifdeffery everywhere, confine it to qemu_ram_alloc_from_ptr(). Everywhere else, simply test block->fd, which is non-negative exactly when block uses -mem-path. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Message-id: 1375276272-15988-4-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 0628c18267bbe8d44f0faf3e71acf0ae31bea7fd Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:06 2013 +0200 exec: Clean up fall back when -mem-path allocation fails With -mem-path, qemu_ram_alloc_from_ptr() first tries to allocate accordingly, but when it fails, it falls back to normal allocation. The fall back allocation code used to be effectively identical to the "-mem-path not given" code, until it started to diverge in commit 432d268. I believe the code still works, but clean it up anyway: drop the special fall back allocation code, and fall back to the ordinary "-mem-path not given" code instead. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Message-id: 1375276272-15988-3-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit dfeaf2abc73429171ecc5b0b26ac4e5a24c047fc Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Jul 31 15:11:05 2013 +0200 exec: Fix Xen RAM allocation with unusual options Issues: * We try to obey -mem-path even though it can't work with Xen. * To implement -machine mem-merge, we call memory_try_enable_merging(new_block->host, size). But with Xen, new_block->host remains null. Oops. Fix by separating Xen allocation from normal allocation. Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> Message-id: 1375276272-15988-2-git-send-email-armbru@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit aa3fe714f70654da47d9c2659b2d9ee295a9d930 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Sep 12 14:57:27 2013 +0200 block: Assert validity of BdrvActionOps In qmp_transaction, assert that the BdrvActionOps to be used is actually valid. This assertion failing is very improbable, however, it might happen, if a new TransactionActionKind is introduced "out of order" and the actions[] array is not updated. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4aa846f25e7cf14c77f699d8c1dfdfeddb091161 Author: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Date: Thu Sep 12 14:07:59 2013 +0530 qemu-iotests: Cleanup test image in test number 007 qemu-iotests number 007 doesn't do test image cleanup. This will affect those protocols that expect a clean state before every test. Hence ensure that test image is cleaned up in this test. Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c745bfb4300206280ce6156b4bafe765f610057c Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 11 18:47:52 2013 +0200 qemu-img: fix invalid JSON Single quotes for JSON are a QMP-ism, use real JSON in qemu-img output. Reported-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f4ff3b7ba1bcb77d5b5cdbd6e695df793761170b Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Aug 29 18:13:25 2013 +1000 spapr-vscsi: Report error on unsupported MAD requests The existing driver just dropped unsupported requests. This adds error responses to those unhandled requests. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 26573a0c1f0427be168a537abccbcc942e07aa72 Author: Nikunj A. Dadhania <nikunj@xxxxxxxxxxxxxxxxxx> Date: Mon Sep 2 10:33:38 2013 +0530 spapr-vscsi: Adding VSCSI capabilities This implements capabilities exchange between vscsi host and client. As at the moment no capability is supported, put zero flags everywhere and return. Signed-off-by: Nikunj A Dadhania <nikunj@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Nikunj A. Dadhania <nikunj@xxxxxxxxxxxxxxxxxx> commit 65f3e33964bc4bb634d61463814a4ccca794e3c0 Author: Peter Lieven <pl@xxxxxxx> Date: Fri Jul 19 09:19:41 2013 +0200 iscsi: split discard requests in multiple parts Replace .bdrv_aio_discard with .bdrv_co_discard so that discard requests can be split in multiple parts, each for a small amount of sectors. This is useful because we expose a generic API with no limit on the amount of sectors that can be unmapped in one request. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 70c60c089fdc6bf8a79324e492c13e8c08d55942 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Sep 11 16:42:35 2013 +0200 coroutine: add ./configure --disable-coroutine-pool The 'gthread' coroutine backend was written before the freelist (aka pool) existed in qemu-coroutine.c. This means that every thread is expected to exit when its coroutine terminates. It is not possible to reuse threads from a pool. This patch automatically disables the pool when 'gthread' is used. This allows the 'gthread' backend to work again (for example, tests/test-coroutine completes successfully instead of hanging). I considered implementing thread reuse but I don't want quirks like CPU affinity differences due to coroutine threads being recycled. The 'gthread' backend is a reference backend and it's therefore okay to skip the pool optimization. Note this patch also makes it easy to toggle the pool for benchmarking purposes: ./configure --with-coroutine-backend=ucontext \ --disable-coroutine-pool Reported-by: Gabriel Kerneis <gabriel@xxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Gabriel Kerneis <gabriel@xxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2c78857bf6a9b5d06e17533b8f40fee14e087987 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 10 13:59:43 2013 +0200 qemu-iotests: Adjustments due to error propagation When opening/creating images, propagating errors instead of immediately emitting them on occurrence results in errors generally being printed on a single line rather than being split up into multiple ones. This in turn requires adjustments to some test results. Also, test 060 used a sed to filter out the test image directory and format by removing everything from the affected line after a certain keyword; this now also removes the error message itself, which can be fixed by using _filter_testdir and _filter_imgfmt. Finally, _make_test_img in common.rc did not filter out the test image directory etc. from stderr. This has been fixed through a redirection of stderr to stdout (which is already done in _check_test_img and _img_info). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> commit 3ef6c40ad0b350e18c78135ffbdbe209cb479c1f Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Sep 5 09:40:43 2013 +0200 qcow2: Use Error parameter Employ usage of the new Error ** parameter in qcow2_open, qcow2_create and associated functions. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> commit b70d8c237a0e5e829474c3a12c8783893c4e470e Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Sep 6 16:51:03 2013 +0200 qemu-img create: Emit filename on error bdrv_img_create generally does not emit the target filename, although this is pretty important information. Therefore, prepend its error message with the output filename (if an error occurs). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> commit cc84d90ff54c025190dbe49ec5fea1268217c5f2 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Sep 6 17:14:26 2013 +0200 block: Error parameter for create functions Add an Error ** parameter to bdrv_create and its associated functions to allow more specific error messages. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> commit 34b5d2c68eb4082c288e70fb99c61af8f7b96fde Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Sep 5 14:45:29 2013 +0200 block: Error parameter for open functions Add an Error ** parameter to bdrv_open, bdrv_file_open and associated functions to allow more specific error messages. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> commit d5124c00d80b4d948509f2c7f6b54228d9981f75 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Sep 5 14:26:05 2013 +0200 bdrv: Use "Error" for creating images Add an Error ** parameter to BlockDriver.bdrv_create to allow more specific error messages. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> commit 015a1036a74ad29bb6916754911ce25587ff4db3 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Sep 5 14:22:29 2013 +0200 bdrv: Use "Error" for opening images Add an Error ** parameter to BlockDriver.bdrv_open and BlockDriver.bdrv_file_open to allow more specific error messages. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> commit 8023090be592514dea4975428543edd598c65fc3 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:39 2013 +0800 qemu-iotests: add 057 internal snapshot for block device test case Create in transaction and deletion in single command will be tested. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7a4ed2ee4215eee80d2ae02097bbf63a33748fda Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:38 2013 +0800 hmp: add interface hmp_snapshot_delete_blkdev_internal It is hard to make both id and name optional in hmp console as qmp interface, so this interface require user to specify name. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 775ca88e8205248929a3f141925eafe2ec1e3275 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:37 2013 +0800 hmp: add interface hmp_snapshot_blkdev_internal Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 44e3e053af56c1faec79ac9fdd78ef3f0ecd467e Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:36 2013 +0800 qmp: add interface blockdev-snapshot-delete-internal-sync This interface use id and name as optional parameters, to handle the case that one image contain multiple snapshots with same name which may be '', but with different id. Adding parameter id is for historical compatiability reason, and that case is not possible in qemu's new interface for internal snapshot at block device level, but still possible in qemu-img. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f323bc9e8b3b46ad28402995a9dcaaeff3eb5e03 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:35 2013 +0800 qmp: add interface blockdev-snapshot-internal-sync Snapshot ID can't be specified in this interface. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit bbe860104f0544d7863296606e042cc62bf7ab4b Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:34 2013 +0800 qmp: add internal snapshot support in qmp_transaction Unlike savevm, the qmp_transaction interface will not generate snapshot name automatically, saving trouble to return information of the new created snapshot. Although qcow2 support storing multiple snapshots with same name but different ID, here it will fail when an snapshot with that name already exist before the operation. Format such as rbd do not support ID at all, and in most case, it means trouble to user when he faces multiple snapshots with same name, so ban that case. Request with empty name will be rejected. Snapshot ID can't be specified in this interface. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a89d89d3e65800fa4a8e00de7af0ea8272bef779 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:33 2013 +0800 snapshot: distinguish id and name in snapshot delete Snapshot creation actually already distinguish id and name since it take a structured parameter *sn, but delete can't. Later an accurate delete is needed in qmp_transaction abort and blockdev-snapshot-delete-sync, so change its prototype. Also *errp is added to tip error, but return value is kepted to let caller check what kind of error happens. Existing caller for it are savevm, delvm and qemu-img, they are not impacted by introducing a new function bdrv_snapshot_delete_by_id_or_name(), which check the return value and do the operation again. Before this patch: For qcow2, it search id first then name to find the one to delete. For rbd, it search name. For sheepdog, it does nothing. After this patch: For qcow2, logic is the same by call it twice in caller. For rbd, it always fails in delete with id, but still search for name in second try, no change to user. Some code for *errp is based on Pavel's patch. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 2ea1dd758c45f8ff12c67ed7934c3ce021eeaf12 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Wed Sep 11 14:04:32 2013 +0800 snapshot: new function bdrv_snapshot_find_by_id_and_name() To make it clear about id and name in searching, add this API to distinguish them. Caller can choose to search by id or name, *errp will be set only for exception. Some code are modified based on Pavel's patch. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d982919d3897f36d79e215c46e3bc27fd6e27bf8 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Sep 5 10:55:54 2013 +0200 qemu-iotests: New test case in 061 Add one test case for zero cluster expansion on qcow2 version downgrade in shared L2 tables (i.e., L2 tables with a refcount > 1) and one for zero expansion on backed clusters in shared L2 tables. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit fd9c577b24818e0051e93c4f1e3db7262869f162 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Fri Sep 6 11:24:34 2013 +0800 qemu-iotests: add tests for runtime fd passing via SCM rights This case will test whether the monitor can receive fd at runtime. To verify better, additional monitor is created to see if qemu can handler two monitor instances correctly. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 30b005d9d75af6388899fad2f462efb8af2b25b3 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Fri Sep 6 11:24:33 2013 +0800 qemu-iotests: add infrastructure of fd passing via SCM This patch make use of the compiled scm helper program to transfer fd via unix socket at runtime. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit f93296eaffcb3753f680f2dcffea2637f14f2092 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Fri Sep 6 11:24:32 2013 +0800 qemu-iotests: add unix socket help program This program can do a sendmsg call to transfer fd with unix socket, which is not supported in python2. The built binary will not be deleted in clean, but it is a existing issue in ./tests, which should be solved in another patch. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a8110c3d327cabff8dc258c5c8705903b56c1513 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 3 10:09:55 2013 +0200 qemu-iotest: qcow2 image option amendment Add tests for qemu-img amend on qcow2 image files. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9296b3ed7050cc6e0645fbc3b0aea74406d7eeb2 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 3 10:09:54 2013 +0200 qcow2: Implement bdrv_amend_options Implement bdrv_amend_options for compat, size, backing_file, backing_fmt and lazy_refcounts. Downgrading images from compat=1.1 to compat=0.10 is achieved through handling all incompatible flags accordingly, clearing all compatible and autoclear flags and expanding all zero clusters. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit b6481f376bc65894910dd98db3f299d698817106 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 3 10:09:53 2013 +0200 qcow2: Save refcount order in BDRVQcowState Save the image refcount order in BDRVQcowState. This will be relevant for future code supporting different refcount orders than four and also for code that needs to verify a certain refcount order for an opened image. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 32b6444d23d0ff618d73e5b766600cd258066169 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 3 10:09:52 2013 +0200 qcow2-cluster: Expand zero clusters Add functionality for expanding zero clusters. This is necessary for downgrading the image version to one without zero cluster support. For non-backed images, this function may also just discard zero clusters instead of truly expanding them. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e7108feaace8e02b3a4bf010448fc2744f753381 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 3 10:09:51 2013 +0200 qcow2-cache: Empty cache Add a function for emptying a cache, i.e., flushing it and marking all elements invalid. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 6f176b48f9f98820ed192a1355cc1c7c08ddf46b Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 3 10:09:50 2013 +0200 block: Image file option amendment This patch adds the "amend" option to qemu-img which allows changing image options on existing image files. It also adds the generic bdrv implementation which is basically just a wrapper for the image format specific function. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 56e023af805215260c71d44f5b5a98087f4920d2 Author: Tal Kain <tal.kain@xxxxxxxxxxxxxxxxxx> Date: Mon Sep 9 11:14:55 2013 +0200 raw-win32.c: Fix incorrect handling behaviour of small block files It is a valid case that the read data's size is smaller than the requested size since there could be files that are smaller than the minimum block size (For ex. when a VMDK disk descriptor file) Signed-off-by: Tal Kain <tal.kain@xxxxxxxxxxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1ebf561c11302f4fbe4afdd82758fe053cf1d5fc Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Sep 6 12:20:08 2013 +0200 qcow2: Discard VM state in active L1 after creating snapshot During savevm, the VM state is written to the active L1 of the image and then a snapshot is taken. After that, the VM state isn't needed any more in the active L1 and should be discarded. This is implemented by this patch. The impact of not discarding the VM state is that a snapshot can never become smaller than any previous snapshot (because it would be padded with old VM state), and more importantly that future savevm operations cause unnecessary COWs (with associated flushes), which makes subsequent snapshots much slower. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit 670df5e3b4b5ef830a7c3c970170dbfa11cbb8d2 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Fri Sep 6 12:18:47 2013 +0200 qcow2: Pass discard type to qcow2_discard_clusters() The function will be used internally instead of only being called for guest discard requests. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Max Reitz <mreitz@xxxxxxxxxx> commit b0d768c35e08d2057b63e8e77e7a513c447199fa Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Aug 22 11:43:58 2013 +0200 chardev: fix pty_chr_timer pty_chr_timer first calls pty_chr_update_read_handler(), then clears timer_tag (because it is a one-shot timer). This is the wrong order though. pty_chr_update_read_handler might re-arm time timer, and the new timer_tag gets overwitten in that case. This leads to crashes when unplugging a pty chardev: pty_chr_close thinks no timer is running -> timer isn't canceled -> pty_chr_timer gets called with stale CharDevState -> BOOM. This patch fixes the ordering. Kill the pointless goto while being at it. https://bugzilla.redhat.com/show_bug.cgi?id=994414 Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 54a5c1d5db47b4146490937ed73e3f56022aaba6 Author: Peter Lieven <pl@xxxxxxx> Date: Fri Jul 19 09:19:40 2013 +0200 iscsi: add .bdrv_get_block_status this patch adds a coroutine for .bdrv_co_block_status as well as a generic framework that can be used to build coroutines in block/iscsi. Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit f18a7cbb0992a02225d26afd336aaf47de75e11c Author: Peter Lieven <pl@xxxxxxx> Date: Fri Jul 19 09:19:39 2013 +0200 iscsi: add logical block provisioning information to iscsilun Signed-off-by: Peter Lieven <pl@xxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 57ffcc4c83331cb4b2639a866b6ecc11b3e7092c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Aug 23 17:16:33 2013 +0100 hw/scsi/lsi53c895a: Use deposit32 rather than handcoded shift/mask Use deposit32() rather than handcoded shifts/masks to update the scratch registers. This is cleaner and incidentally avoids a clang sanitizer complaint ("runtime error: left shift of 255 by 24 places cannot be represented in type 'int'"). Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 927941059b95c3cc6264241115a23b1d14f1beb0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Aug 23 17:16:32 2013 +0100 hw/scsi/lsi53c895a: Use sextract32 for sign-extension Use sextract32() for doing sign-extension rather than rolling our own implementation. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit c24e7517ee4a98e90eee5f0f07708a1fa12326b3 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 23 18:01:58 2013 +0200 scsi: Fix scsi_bus_legacy_add_drive() scsi-generic with serial scsi_bus_legacy_add_drive() creates either a scsi-disk or a scsi-generic device. It sets property "serial" to argument serial unless null. Crashes with scsi-generic, because it doesn't have such the property. Only usb_msd_initfn_storage() passes non-null serial. Reproducer: $ qemu-system-x86_64 -nodefaults -display none -S -usb \ -drive if=none,file=/dev/sg1,id=usb-drv0 \ -device usb-storage,id=usb-msd0,drive=usb-drv0,serial=123 qemu-system-x86_64: -device usb-storage,id=usb-msd0,drive=usb-drv0,serial=123: Property '.serial' not found Aborted (core dumped) Fix by handling exactly like "removable": set the property only when it exists. Cc: qemu-stable@xxxxxxxxxx Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit a27292b5d7545509bfa171922516d2033c570205 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Mon Aug 19 17:53:15 2013 +0200 virtio-scsi: Make type virtio-scsi-common abstract It's the abstract base of virtio-scsi-device and vhost-scsi. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit eb37f14658df23c51f172bddb0c45eecf408927c Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Jul 29 14:49:29 2013 +1000 spapr-vscsi: add task management At the moment the guest kernel issues two types of task management requests to the hypervisor - task about and lun reset. This adds handling for these tasks. As spapr-vscsi starts calling scsi_req_cancel(), free_request callback was implemented. As virtio-vscsi, spapr-vscsi does not handle CLEAR_ACA either as CDB control byte does not seem to be used at all so NACA bit is not set to the guest so the guest has no good reason to call CLEAR_ACA task. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> [Fix choice of UCSOLCNT vs. SCSOLCNT. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 5accc8408f2dac1e00d888e4fe75e6174ba2a940 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Fri Aug 2 17:02:01 2013 +0200 scsi: prefer UUID to VM name for the initiator name The UUID is unique even across multiple hosts, thus it is better than a VM name even if it is less user-friendly. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 2d1fe1873a984d1c2c89ffa3d12949cafc718551 Merge: 6f52e51 6a49fa9 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:46:52 2013 -0500 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20130910' into staging ARM queue: * aarch64 preparation patchset (excluding the defconfigs, so this doesn't actually enable the new targets yet) * minor bugfixes and cleanups * disable "-cpu any" in system emulation mode * fix ARMv7M stack alignment on reset # gpg: Signature made Tue 10 Sep 2013 01:46:11 PM CDT using RSA key ID 14360CDE # gpg: Can't check signature: public key not found # By Alexander Graf (13) and others # Via Peter Maydell * pmaydell/tags/pull-target-arm-20130910: (28 commits) configure: Add handling code for AArch64 targets linux-user: Add AArch64 support linux-user: Allow targets to specify a minimum uname release linux-user: Add AArch64 termbits.h definitions linux-user: Implement cpu_set_tls() and cpu_clone_regs() for AArch64 linux-user: Make sure NWFPE code is 32 bit ARM only linux-user: Add signal handling for AArch64 linux-user: Fix up AArch64 syscall handlers linux-user: Add syscall number definitions for AArch64 linux-user: Add cpu loop for AArch64 linux-user: Don't treat AArch64 cpu names specially target-arm: Add AArch64 gdbstub support target-arm: Add AArch64 translation stub target-arm: Prepare translation for AArch64 code target-arm: Disable 32 bit CPUs in 64 bit linux-user builds target-arm: Add new AArch64CPUInfo base class and subclasses target-arm: Pass DisasContext* to gen_set_pc_im() target-arm: Fix target_ulong/uint32_t confusions target-arm: Export cpu_env target-arm: Extract the disas struct to a header file ... Message-id: 1378839142-7726-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 6f52e51bb7706562634e5dd2755a1e9b8a5037cc Merge: d985bd4 02dc4bf Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:46:44 2013 -0500 Merge remote-tracking branch 'luiz/queue/qmp' into staging # By Cole Robinson # Via Luiz Capitulino * luiz/queue/qmp: qapi-types.py: Fix enum struct sizes on i686 Message-id: 1378822364-13887-1-git-send-email-lcapitulino@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit d985bd4d55555a06c4239eadba4e367880e938ba Merge: a640f07 c58c7b9 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:46:26 2013 -0500 Merge remote-tracking branch 'spice/spice.v73' into staging # By Gerd Hoffmann (2) and Christophe Fergeau (1) # Via Gerd Hoffmann * spice/spice.v73: qxl: fix local renderer qxl: trace io port name spice-core: Use g_strdup_printf instead of snprintf Message-id: 1378807572-27902-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit a640f07c0d03bfa3031af1fc0a32b0d779917d17 Merge: f69f0bc adbecc8 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:46:21 2013 -0500 Merge remote-tracking branch 'kraxel/usb.89' into staging # By Gerd Hoffmann (2) and Miroslav Rezanina (2) # Via Gerd Hoffmann * kraxel/usb.89: ehci: save device pointer in EHCIState Remove dev-bluetooth.c dependency from vl.c Preparation for usb-bt-dongle conditional build usb: sanity check setup_index+setup_len in post_load Message-id: 1378806073-25197-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit f69f0bcac951f3c3089246695874b84ea8967936 Merge: 97fdb94 e2682db Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:46:08 2013 -0500 Merge remote-tracking branch 'mdroth/qga-pull-2013-9-9' into staging # By Tomoki Sekiyama (10) and Paul Burton (1) # Via Michael Roth * mdroth/qga-pull-2013-9-9: QMP/qemu-ga-client: Make timeout longer for guest-fsfreeze-freeze command qemu-ga: Install Windows VSS provider on `qemu-ga -s install' qemu-ga: Call Windows VSS requester in fsfreeze command handler qemu-ga: Add Windows VSS provider and requester as DLL error: Add error_set_win32 and error_setg_win32 qemu-ga: Add configure options to specify path to Windows/VSS SDK Add a script to extract VSS SDK headers on POSIX system checkpatch.pl: Check .cpp files Add c++ keywords to QAPI helper script configure: Support configuring C++ compiler mips_malta: support up to 2GiB RAM Message-id: 1378755701-2051-1-git-send-email-mdroth@xxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 97fdb9410bb5398fd33f51a37e637d697ace9f73 Merge: 964737e 254c128 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:45:57 2013 -0500 Merge remote-tracking branch 'sstabellini/xen-2013-09-09' into staging # By Anthony PERARD # Via Stefano Stabellini * sstabellini/xen-2013-09-09: pc_q35: Initialize Xen. pc: Initializing ram_memory under Xen. Message-id: alpine.DEB.2.02.1309091718030.6397@xxxxxxxxxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 964737ea195de1560f3bcf55b8b6d4f7d0d4a619 Merge: ce2b694 8f94b07 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:45:37 2013 -0500 Merge remote-tracking branch 'stefanha/block' into staging # By Paolo Bonzini (21) and others # Via Stefan Hajnoczi * stefanha/block: (42 commits) qemu-iotests: Fixed test case 026 qemu-iotests: Whitespace cleanup dataplane: Fix startup race. block: look for zero blocks in bs->file block: add default get_block_status implementation for protocols raw-posix: report unwritten extents as zero raw-posix: return get_block_status data and flags docs, qapi: document qemu-img map qemu-img: add a "map" subcommand block: return BDRV_BLOCK_ZERO past end of backing file block: use bdrv_has_zero_init to return BDRV_BLOCK_ZERO block: return get_block_status data and flags for formats block: define get_block_status return value block: introduce bdrv_get_block_status API block: make bdrv_has_zero_init return false for copy-on-write-images qemu-img: always probe the input image for allocated sectors block: expect errors from bdrv_co_is_allocated block: remove bdrv_is_allocated_above/bdrv_co_is_allocated_above distinction block: do not use ->total_sectors in bdrv_co_is_allocated block: make bdrv_co_is_allocated static ... Message-id: 1378481953-23099-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit ce2b69417caae3731fb50f67854afa006f624a2d Merge: df71316 45d883d Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Wed Sep 11 14:45:18 2013 -0500 Merge remote-tracking branch 'stefanha/net' into staging # By Brad Smith (2) and others # Via Stefan Hajnoczi * stefanha/net: ne2000: mark I/O as LITTLE_ENDIAN vmxnet3: Eliminate __packed redefined warning e1000: add interrupt mitigation support net: Rename send_queue to incoming_queue tap: Use numbered tap/tun devices on all *BSD OS's Message-id: 1378481624-20964-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 6a49fa95c98cd155f7aaf48e5c6fa6bb6adea862 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:22 2013 +0100 configure: Add handling code for AArch64 targets Add the necessary code to configure to handle AArch64 as a target CPU (we already have some code for supporting it as host). Note that this doesn't enable the AArch64 targets yet. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-23-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-12-git-send-email-john.rigby@xxxxxxxxxx [PMM: * don't need to set TARGET_ABI_DIR to aarch64 as that is the default * don't build nwfpe -- this is 32 bit legacy only * rewrite commit message * add aarch64 to the list of "fdt required" targets ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 99033caee6e9b339c89a368b5ed1f73ef17924a9 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:21 2013 +0100 linux-user: Add AArch64 support This patch adds support for AArch64 in all the small corners of linux-user (primarily in image loading and startup code). Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-22-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-11-git-send-email-john.rigby@xxxxxxxxxx [PMM: * removed some unnecessary #defines from syscall.h * catch attempts to use a 32 bit only cpu with aarch64-linux-user * termios stuff moved into its own patch * we specify our minimum uname version here now ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 4a24a758101ff726c9bd3b867e12d5580c793af0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 3 20:12:20 2013 +0100 linux-user: Allow targets to specify a minimum uname release For newer target architectures, glibc can be picky about the kernel version: for example, it will not run on an aarch64 system unless the kernel reports itself as at least 3.8.0. Accommodate this by enhancing the existing support for faking the kernel version so that each target can optionally specify a minimum version: if the user doesn't force a specific fake version then we will override with the minimum required version only if the real host kernel version is insufficient. Use this facility to let aarch64 report a minimum of 3.8.0. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-21-git-send-email-peter.maydell@xxxxxxxxxx commit af89c7dba52c509bdb72714139aadbe21a133f6e Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:19 2013 +0100 linux-user: Add AArch64 termbits.h definitions Add the AArch64 termbits.h with all the target's termios related constants and structures. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-20-git-send-email-peter.maydell@xxxxxxxxxx [PMM: split out from another patch] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit e2cea499cc2e8da5b2d5753625d2c57685193783 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:18 2013 +0100 linux-user: Implement cpu_set_tls() and cpu_clone_regs() for AArch64 Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-19-git-send-email-peter.maydell@xxxxxxxxxx [PMM: pulled out from another patch; don't use is_a64() here; moved to linux-user from target-arm] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 848d72cdd894e3a883118fd0f1ede14ff66bfa21 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 3 20:12:17 2013 +0100 linux-user: Make sure NWFPE code is 32 bit ARM only On ARM, linux-user emulation includes NWFPE support for emulating the ancient FPA floating point coprocessor. This has long since been superseded by VFP and is only required for legacy binaries. The AArch64 linux-user target doesn't compile in NWFPE support, so make sure the relevant code is protected by suitable ifdefs. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-18-git-send-email-peter.maydell@xxxxxxxxxx commit 1744aea182d0fe20e190d037ccf225cbe05e96ae Author: Andreas Schwab <schwab@xxxxxxx> Date: Tue Sep 3 20:12:16 2013 +0100 linux-user: Add signal handling for AArch64 This patch adds signal handling for AArch64. The code is based on the respective source in the Linux kernel. Signed-off-by: Andreas Schwab <schwab@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-17-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-10-git-send-email-john.rigby@xxxxxxxxxx [PMM: fixed style nits: tabs, long lines; pulled target_signal.h in from a later patch; it fits better here] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 09701199f6d87ebfe609776156108c6dec812cde Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:15 2013 +0100 linux-user: Fix up AArch64 syscall handlers Some syscall handlers have special code for ARM enabled that we don't need on AArch64. Exclude AArch64 in those cases. In other places we can share struct definitions with other targets or have to provide our own. With this patch applied, most syscall definitions in linux-user should be sound for AArch64. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-16-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-9-git-send-email-john.rigby@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit c7907301e7df9623bc5216934e30125ce66cfaea Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:14 2013 +0100 linux-user: Add syscall number definitions for AArch64 The AArch64 syscall definitions are all publicly available in the Linux kernel. Let's add them to our linux-user emulation target, so that we can easily handle AArch64 syscalls. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-15-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-8-git-send-email-john.rigby@xxxxxxxxxx [PMM: changes relating to cpu_loop() removed as they are superseded by an earlier patch] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 1861c4543ffa6224d0661036afaa7ec1cf30e8bb Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 3 20:12:13 2013 +0100 linux-user: Add cpu loop for AArch64 Add the main linux-user cpu loop for AArch64. Since AArch64 has a different system call interface, doesn't need to worry about FPA emulation and may in the future keep the prefetch/data abort information in different system registers, it's simplest just to use a completely separate loop from the 32 bit ARM target, rather than peppering it with ifdefs. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-14-git-send-email-peter.maydell@xxxxxxxxxx commit 067d983127da5c05a365230b12f2f557ec721c97 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:12 2013 +0100 linux-user: Don't treat AArch64 cpu names specially 32-bit ARM has a lot of different names for different types of CPUs it supports. On AArch64, we don't have this, so we really don't want to execute the 32-bit logic. Stub it out for AArch64 linux-user guests. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-13-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-7-git-send-email-john.rigby@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 96c04212ba80d4f9630a5e82681285eeb41af9cc Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:11 2013 +0100 target-arm: Add AArch64 gdbstub support We want to be able to debug AArch64 guests. So let's add the respective gdb stub functions and xml descriptions that allow us to do so. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-12-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-6-git-send-email-john.rigby@xxxxxxxxxx [PMM: dropped unused fp regs XML for now; moved 64 bit only functions to new gdbstub64.c; these are hooked up in AArch64CPU, not via ifdefs in ARMCPU] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 14ade10f840deec02d32530e5a64bd5ec275adbd Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:10 2013 +0100 target-arm: Add AArch64 translation stub We should translate AArch64 mode separately from AArch32 mode. In AArch64 mode, registers look vastly different, instruction encoding is completely different, basically the system turns into a different machine. So let's do a simple if() in translate.c to decide whether we can handle the current code in the legacy AArch32 code or in the new AArch64 code. So far, the translation always complains about unallocated instructions. There is no emulator functionality in this patch! Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-11-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-5-git-send-email-john.rigby@xxxxxxxxxx [PMM: * provide no-op versions of a64 functions ifndef TARGET_AARCH64; this lets us avoid #ifdefs in translate.c * insert the missing call to disas_a64_insn() * stash the insn in the DisasContext rather than reloading it in real_unallocated_encoding() ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3926cc8433542e8c9b7cdc438355fb7660838fd0 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:09 2013 +0100 target-arm: Prepare translation for AArch64 code This patch adds all the prerequisites for AArch64 support that didn't fit into split up patches. It extends important bits in the core cpu headers to also take AArch64 mode into account. Add new ARM_TBFLAG_AARCH64_STATE translation buffer flag indicate an ARMv8 cpu running in aarch64 mode vs aarch32 mode. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-10-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-4-git-send-email-john.rigby@xxxxxxxxxx [PMM: * rearranged tbflags so AArch64? is bit 31 and if it is set then 30..0 are freely available for whatever makes most sense for that mode * added version bump since we change VFP migration state * added a comment about how VFP/Neon register state works * physical address space is 48 bits, not 64 * added ARM_FEATURE_AARCH64 flag to identify 64-bit capable CPUs ] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 15ee776bf2001883781cc83d456249a60532bb01 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 3 20:12:08 2013 +0100 target-arm: Disable 32 bit CPUs in 64 bit linux-user builds If we're building aarch64-linux-user then the 32 bit CPUs are all unwanted, because they can't possibly execute the 64 bit binaries we will be running; disable them. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-9-git-send-email-peter.maydell@xxxxxxxxxx commit d14d42f19bf3dcef5c81ec2324843121f552a6fc Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 3 20:12:07 2013 +0100 target-arm: Add new AArch64CPUInfo base class and subclasses Create a new AArch64CPU class; all 64-bit capable ARM CPUs are subclasses of this. (Currently we only support one, the "any" CPU used by linux-user.) Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-8-git-send-email-peter.maydell@xxxxxxxxxx commit eaed129deaea393640cf6bff006cd5cec3b38d8f Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 3 20:12:06 2013 +0100 target-arm: Pass DisasContext* to gen_set_pc_im() We want gen_set_pc_im() to work for both AArch64 and AArch32, but to do this we'll need the DisasContext* so we can tell which mode we're in, so pass it in as a parameter. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-7-git-send-email-peter.maydell@xxxxxxxxxx commit 0a2461fa49e4d2aeb846390e1eb1bdb9e8196ca4 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:05 2013 +0100 target-arm: Fix target_ulong/uint32_t confusions Correct a few places that were using uint32_t or a 32 bit only format string to handle something that should be a target_ulong. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-6-git-send-email-peter.maydell@xxxxxxxxxx [PMM: split out to separate patch; added gen_goto_tb() and gen_set_pc_im() dest params to list of things to change.] Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 3407ad0e7a6f04905fc6a8ea72be03553e777988 Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:04 2013 +0100 target-arm: Export cpu_env The cpu_env tcg variable will be used by both the AArch32 and AArch64 handling code. Unstaticify it, so that both sides can make use of it. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-5-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-3-git-send-email-john.rigby@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f570c61e694d78fc2f6717f4fbb7e820bf72d8dc Author: Alexander Graf <agraf@xxxxxxx> Date: Tue Sep 3 20:12:03 2013 +0100 target-arm: Extract the disas struct to a header file We will need to share the disassembly status struct between AArch32 and AArch64 modes. So put it into a header file that both sides can use. Signed-off-by: Alexander Graf <agraf@xxxxxxx> Signed-off-by: John Rigby <john.rigby@xxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-4-git-send-email-peter.maydell@xxxxxxxxxx Message-id: 1368505980-17151-2-git-send-email-john.rigby@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 08307563ff6cf8cb8d2a7927804dfc5c7dbe86d6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 3 20:12:02 2013 +0100 target-arm: Abstract out load/store from a vaddr in AArch32 AArch32 code (ie traditional 32 bit world) expects to be able to pass a vaddr in a TCGv_i32. However when QEMU is compiled with TARGET_LONG_BITS=32 the TCG load/store functions take a TCGv_i64. Abstract out load/store with a 32 bit vaddr so we have a place to put the zero extension of the vaddr and the extension/truncation of the data value. Apart from the function definitions most of this patch is a simple s/tcg_gen_qemu_/gen_aa32_/. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378235544-22290-3-git-send-email-peter.maydell@xxxxxxxxxx commit 4d017979aa1672b40ccc083daf455f8740eead82 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 10 19:09:33 2013 +0100 abitypes.h: Remove incorrect ARM ABI_LLONG_ALIGNMENT The ARM EABI specifies that 64 bit integers should be 8 aligned; remove our incorrect setting of 4 alignment. This has no actual effect since it only set the alignment for the 'abi_ullong' and 'abi_llong' types, which are used only inside code which is MIPS-specific, but it will avoid problems later if we use the types elsewhere. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 031c44e4deedbd7829703654e381ca0b18e78a12 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 10 19:09:33 2013 +0100 pl110: Clarify comment about PL110 ID on VersatilePB Clarify a comment about the ID register value presented by the PL110 variant present on the VersatilePB board (based on testing what the actual hardware does), to indicate that this is not an error in our emulation, and to remove an #if-0. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 78027bb6d9111c8ccd515930cfa05d7f532ecb2a Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Tue Sep 10 19:09:33 2013 +0100 target-arm: Implement qmp query-cpu-definitions Libvirt uses this to introspect available CPU models. Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Message-id: c0bdcd6c7ea6a085a6902ccaa73180fd771c8267.1378303555.git.crobinso@xxxxxxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit f62cafd4c87fad7bb9b9544b4cf4991d34764b11 Author: Sebastian Ottlik <ottlik@xxxxxx> Date: Tue Sep 10 19:09:32 2013 +0100 target-arm: fix ARMv7M stack alignment on reset When the initial SP is loaded from the vector table on ARMv7M systems the two least significant bits are ignored as the stack is always aligned at a four byte boundary (see ARM DDI 0403C, B1.4.1 and B1.5.5). So far QEMU did not ignore these bits leading to a stack alignment inconsitent with real hardware for binaries that rely on this behaviour. This patch fixes this issue by masking the two least significant bits when loading the SP. Signed-off-by: Sebastian Ottlik <ottlik@xxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1378286595-27072-1-git-send-email-ottlik@xxxxxx Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 78dbbbe4dff95369c63bf77ee0df23371e1d6602 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 10 19:09:32 2013 +0100 target-arm: Avoid "1 << 31" undefined behaviour Avoid the undefined behaviour of "1 << 31" by using 1U to make the shift be of an unsigned value rather than shifting into the sign bit of a signed integer. For consistency, we make all the CPSR_* constants unsigned, though the only one which triggers undefined behaviour is CPSR_N. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1378391908-22137-3-git-send-email-peter.maydell@xxxxxxxxxx commit 534df156090539854c2ac819dcdb096d01dab5c1 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 10 19:09:32 2013 +0100 target-arm: Use sextract32() in branch decode In the decode of ARM B and BL insns, swap the order of the "append 2 implicit zeros to imm24" and the sign extend, and use the new sextract32() utility function to do the latter. This avoids a direct dependency on the undefined C behaviour of shifting into the sign bit of an integer. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1378391908-22137-2-git-send-email-peter.maydell@xxxxxxxxxx commit f5f6d38b7458b8a1a46a750ac131ca8a2d45d946 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Sep 10 19:09:32 2013 +0100 target-arm: Make '-cpu any' available in linux-user mode only Make the 'any' CPU for target-arm available only in linux-user mode. The ARM target provides a CPU named "any", which turns on support for all user-level instruction set extensions we know about. This is intended for linux-user emulation mode, where it is the default CPU type. It makes no sense to try to use this for system emulation, since we don't initialize it with any system-level information like feature register values or implementation specific cp15 registers. (Unsurprisingly, some boards won't boot at all, though you might get lucky in some cases where the guest doesn't happen to prod things that aren't there.) Prevent users from making this command line error by removing the CPU definition from the softmmu build. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Message-id: 1378213995-12945-1-git-send-email-peter.maydell@xxxxxxxxxx commit 02dc4bf5684d3fb46786fab2ecff98214b1df9fe Author: Cole Robinson <crobinso@xxxxxxxxxx> Date: Sat Aug 31 18:36:17 2013 -0400 qapi-types.py: Fix enum struct sizes on i686 Unlike other list types, enum wasn't adding any padding, which caused a mismatch between the generated struct size and GenericList struct size. More details in a678e26cbe89f7a27cbce794c2c2784571ee9d21 This crashed qemu if calling qmp query-tpm-types for example, which upsets libvirt capabilities probing. Reproducer on i686: (sleep 5; printf '{"execute":"qmp_capabilities"}\n{"execute":"query-tpm-types"}\n') | ./i386-softmmu/qemu-system-i386 -S -nodefaults -nographic -M none -qmp stdio https://bugs.launchpad.net/qemu/+bug/1219207 Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Tested-by: Richard W.M. Jones <rjones@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit adbecc89731cf3e0ae656d50ea9fa58c589c4bdc Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Mon Sep 9 10:18:17 2013 +0200 ehci: save device pointer in EHCIState We'll need a pointer to the actual pci/sysbus device, stick a pointer to it into the EHCIState struct. https://bugzilla.redhat.com/show_bug.cgi?id=1005495 Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 615fe4de4b3c26619611078960d3103550bde7d0 Author: Miroslav Rezanina <mrezanin@xxxxxxxxxx> Date: Tue Sep 3 11:23:09 2013 +0200 Remove dev-bluetooth.c dependency from vl.c Use usb_legacy_register handling to create bt-dongle device and remove code dependency from vl.c so CONFIG_USB_BLUETOOTH can be disabled. Signed-off-by: Miroslav Rezanina <mrezanin@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 644e1a8a34d2f799bfeefae94b71593a2aa662ae Author: Miroslav Rezanina <mrezanin@xxxxxxxxxx> Date: Tue Sep 3 11:23:08 2013 +0200 Preparation for usb-bt-dongle conditional build To allow disable usb-bt-dongle device using CONFIG_BLUETOOTH option, some of functions in vl.c file has to be made accessible in dev-bluetooth.c. This is pure code moving. Signed-off-by: Miroslav Rezanina <mrezanin@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit c60174e847082ab9f70720f86509a3353f816fad Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Aug 28 17:09:30 2013 +0200 usb: sanity check setup_index+setup_len in post_load Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit c58c7b959b93b864a27fd6b3646ee1465ab8832b Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Sep 5 21:57:19 2013 +0200 qxl: fix local renderer The local spice renderer assumes the primary surface is located at the start of the "ram" bar. This used to be a requirement in qxl hardware revision 1. In revision 2+ this is relaxed. Nevertheless guest drivers continued to use the traditional location, for historical and backward compatibility reasons. The qxl kms driver doesn't though as it depends on qxl revision 4+ anyway. Result is that local rendering is hosed for recent linux guests, you'll get pixel garbage with non-spice ui (gtk, sdl, vnc) and when doing screendumps. Fix that by doing a proper mapping of the guest-specified memory location. https://bugzilla.redhat.com/show_bug.cgi?id=948717 Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 18b203850a859f1d4688baa8a0ddb8e7af55962f Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Thu Sep 5 17:30:05 2013 +0200 qxl: trace io port name Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 6735aa99a43c70c09b53af190b24600a61178b95 Author: Christophe Fergeau <cfergeau@xxxxxxxxxx> Date: Mon Sep 2 15:41:32 2013 +0200 spice-core: Use g_strdup_printf instead of snprintf Several places in spice-core.c were using either g_malloc+snprintf or snprintf+g_strdup to achieve the same result as g_strdup_printf. Signed-off-by: Christophe Fergeau <cfergeau@xxxxxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit e2682db06a6c218f149ff990959c31f3b3d82003 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:40:39 2013 -0400 QMP/qemu-ga-client: Make timeout longer for guest-fsfreeze-freeze command guest-fsfreeze-freeze command can take longer than 3 seconds when heavy disk I/O is running. To avoid unexpected timeout, this changes the timeout to 60 seconds (timeout of pre-commit phase of VSS). Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit f311f2c20a1e33c1e5fdb50ee21e69a5bf26c950 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:40:32 2013 -0400 qemu-ga: Install Windows VSS provider on `qemu-ga -s install' Register QGA VSS provider library into Windows when qemu-ga is installed as Windows service ('-s install' option). It is deregistered when the service is uninstalled ('-s uninstall' option). Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 64c003174039d0c63ea2bef48d600363ce80a58b Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:40:25 2013 -0400 qemu-ga: Call Windows VSS requester in fsfreeze command handler Support guest-fsfreeze-freeze and guest-fsfreeze-thaw commands for Windows guests. When fsfreeze command is issued, it calls the VSS requester to freeze filesystems and applications. On thaw command, it again tells the VSS requester to thaw them. This also adds calling of initialize functions for the VSS requester. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit b39297aedfabe9b2c426cd540413be991500da25 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:40:18 2013 -0400 qemu-ga: Add Windows VSS provider and requester as DLL Adds VSS provider and requester as a qga-vss.dll, which is loaded by Windows VSS service as well as by qemu-ga. "provider.cpp" implements a basic stub of a software VSS provider. Currently, this module only relays a frozen event from VSS service to the agent, and thaw event from the agent to VSS service, to block VSS process to keep the system frozen while snapshots are taken at the host. To register the provider to the guest system as COM+ application, the type library (.tlb) for qga-vss.dll is required. To build it from COM IDL (.idl), VisualC++, MIDL and stdole2.tlb in Windows SDK are required. This patch also adds pre-compiled .tlb file in the repository in order to enable cross-compile qemu-ga.exe for Windows with VSS support. "requester.cpp" provides the VSS requester to kick the VSS snapshot process. Qemu-ga.exe works without the DLL, although fsfreeze features are disabled. These functions are only supported in Windows 2003 or later. In older systems, fsfreeze features are disabled. In several versions of Windows which don't support attribute VSS_VOLSNAP_ATTR_NO_AUTORECOVERY, DoSnapshotSet fails with error VSS_E_OBJECT_NOT_FOUND. In this patch, we just ignore this error. To solve this fundamentally, we need a framework to handle mount writable snapshot on guests, which is required by VSS auto-recovery feature (cleanup phase after a snapshot is taken). Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 20840d4cfe5198cde313ac953279e76f16c5b76d Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:40:11 2013 -0400 error: Add error_set_win32 and error_setg_win32 These functions help maintaining homogeneous formatting of error messages with Windows error code and description (generated by g_win32_error_message()). Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit d9840e2592493c816ad50f4211a9a4ec35371def Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:40:03 2013 -0400 qemu-ga: Add configure options to specify path to Windows/VSS SDK To enable VSS support in qemu-ga for Windows, header files included in VSS SDK are required. The VSS support is enabled by the configure option like below: ./configure --with-vss-sdk="/path/to/VSS SDK" If the path is omitted, it tries to search the headers from default paths and VSS support is enabled only if the SDK is found. VSS support is disabled if --without-vss-sdk or --with-vss-sdk=no is specified. VSS SDK is available from: http://www.microsoft.com/en-us/download/details.aspx?id=23490 To cross-compile using mingw, you need to setup the SDK on Windows environments to extract headers. You can also extract the SDK headers on POSIX environments using scripts/extract-vss-headers and msitools. In addition, --with-win-sdk="/path/to/Windows SDK" option is also added to specify path to Windows SDK, which may be used for native-compile of .tlb file of qemu-ga VSS provider. However, this is usually unnecessary because pre-compiled .tlb file is included. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 24482749c7d6d7bc0106a43ebac124526fb5b376 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:39:57 2013 -0400 Add a script to extract VSS SDK headers on POSIX system VSS SDK(*) setup.exe is only runnable on Windows. This adds a script to extract VSS SDK headers on POSIX-systems using msitools. * http://www.microsoft.com/en-us/download/details.aspx?id=23490 From: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 69d5d21f90516a8b988a88915865b38e543fc994 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:39:50 2013 -0400 checkpatch.pl: Check .cpp files Enable checkpatch.pl to apply the same checks as C source files for C++ files with .cpp extensions. It also adds some exceptions for C++ sources to suppress errors for: - <> used in C++ template arguments (e.g. template <class T>) - :: used to represent namespaces (e.g. SomeClass::method()) - : used in class declaration (e.g. class T : public Super) - ~ used in destructor method name (e.g. T::~T()) - spacing around 'catch' (e.g. catch (...)) Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 6f88009ee505e1e9fbf6b74b2e2fb3e24cd3411b Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:39:43 2013 -0400 Add c++ keywords to QAPI helper script Add c++ keywords to avoid errors in compiling with c++ compiler. This also renames class member of PciDeviceInfo to q_class. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 83f73fce4cf18cf36e99f0e78e8e87dfb6b12a71 Author: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Date: Wed Aug 7 11:39:36 2013 -0400 configure: Support configuring C++ compiler Add configuration for C++ compiler in configure and Makefiles. The C++ compiler is choosed as following: - ${CXX}, if it is specified. - ${cross_prefix}g++, if ${cross_prefix} is specified. - Otherwise, c++ is used. Currently, usage of C++ language is only for access to Windows VSS using COM+ services in qemu-guest-agent for Windows. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Micael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 94c2b6aff43cdfcfdfb552773a6b6b973a72ef0b Author: Paul Burton <paul.burton@xxxxxxxxxx> Date: Fri Sep 6 13:57:44 2013 +0100 mips_malta: support up to 2GiB RAM A Malta board can support up to 2GiB of RAM. Since the unmapped kseg0/1 regions are only 512MiB large & the latter 256MiB of those are taken up by the IO region, access to RAM beyond 256MiB must be done through a mapped region. In the case of a Linux guest this means we need to use highmem. The mainline Linux kernel does not support highmem for Malta at this time, however this can be tested using the linux-mti-3.8 kernel branch available from: git://git.linux-mips.org/pub/scm/linux-mti.git You should be able to boot a Linux kernel built from the linux-mti-3.8 branch, with CONFIG_HIGHMEM enabled, using 2GiB RAM by passing "-m 2G" to QEMU and appending the following kernel parameters: mem=256m@0x0 mem=256m@0x90000000 mem=1536m@0x20000000 Note that the upper half of the physical address space of a Malta mirrors the lower half (hence the 2GiB limit) except that the IO region (0x10000000-0x1fffffff in the lower half) is not mirrored in the upper half. That is, physical addresses 0x90000000-0x9fffffff access RAM rather than the IO region, resulting in a physical address space resembling the following: 0x00000000 -> 0x0fffffff RAM 0x10000000 -> 0x1fffffff I/O 0x20000000 -> 0x7fffffff RAM 0x80000000 -> 0x8fffffff RAM (mirror of 0x00000000 -> 0x0fffffff) 0x90000000 -> 0x9fffffff RAM 0xa0000000 -> 0xffffffff RAM (mirror of 0x20000000 -> 0x7fffffff) The second mem parameter provided to the kernel above accesses the second 256MiB of RAM through the upper half of the physical address space, making use of the aliasing described above in order to avoid the IO region and use the whole 2GiB RAM. The memory setup may be seen as 'backwards' in this commit since the 'real' memory is mapped in the upper half of the physical address space and the lower half contains the aliases. On real hardware it would be typical to see the upper half of the physical address space as the alias since the bus addresses generated match the lower half of the physical address space. However since the memory accessible in the upper half of the physical address space is uninterrupted by the IO region it is easiest to map the RAM as a whole there, and functionally it makes no difference to the target code. Due to the requirements of accessing the second 256MiB of RAM through a mapping to the upper half of the physical address space it is usual for the bootloader to indicate a maximum of 256MiB memory to a kernel. This allows kernels which do not support such access to boot on systems with more than 256MiB of RAM. It is also the behaviour assumed by Linux. QEMUs small generated bootloader is modified to provide this behaviour. Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx> Signed-off-by: Yongbok Kim <yongbok.kim@xxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 254c12825f93f405658ca3366cd34f8a8ad23511 Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> Date: Mon Sep 9 16:15:53 2013 +0000 pc_q35: Initialize Xen. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 04d7bad8a4fb23e6d9af9d06ce3ddc28a251d94d Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> Date: Mon Sep 9 16:15:52 2013 +0000 pc: Initializing ram_memory under Xen. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> CC: qemu-stable@xxxxxxxxxx commit 45d883dcf208160e2db308d1b368beb74f37dc7e Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Mon Sep 2 13:10:34 2013 +0200 ne2000: mark I/O as LITTLE_ENDIAN Now that the memory subsystem is propagating the endianness correctly, the ne2000 device should have its I/O ports marked as LITTLE_ENDIAN, as PCI devices are little endian. This makes the ne2000 NIC to work again on PowerPC. Cc: qemu-stable@xxxxxxxxxx Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3dbb9786e9f5fa8429824818b6f799d8f65d1199 Author: Brad Smith <brad@xxxxxxxxxxxx> Date: Fri Aug 23 12:28:25 2013 -0400 vmxnet3: Eliminate __packed redefined warning This eliminates a warning about __packed being redefined as exposed by the vmxnet3 code. __packed is not used anywhere in the vmxnet3 code. CC hw/net/vmxnet3.o In file included from hw/net/vmxnet3.c:29: hw/net/vmxnet3.h:37:1: warning: "__packed" redefined In file included from /usr/include/stdlib.h:38, from /buildbot-qemu/default_openbsd_current/build/include/qemu-common.h:26, from /buildbot-qemu/default_openbsd_current/build/include/hw/hw.h:5, from hw/net/vmxnet3.c:18: /usr/include/sys/cdefs.h:209:1: warning: this is the location of the previous definition Signed-off-by: Brad Smith <brad@xxxxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e9845f0985f088dd01790f4821026df0afba5795 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Fri Aug 2 18:30:52 2013 +0200 e1000: add interrupt mitigation support This patch partially implements the e1000 interrupt mitigation mechanisms. Using a single QEMUTimer, it emulates the ITR register (which is the newer mitigation register, recommended by Intel) and approximately emulates RADV and TADV registers. TIDV and RDTR register functionalities are not emulated (RDTR is only used to validate RADV, according to the e1000 specs). RADV, TADV, TIDV and RDTR registers make up the older e1000 mitigation mechanism and would need a timer each to be completely emulated. However, a single timer has been used in order to reach a good compromise between emulation accuracy and simplicity/efficiency. The implemented mechanism can be enabled/disabled specifying the command line e1000-specific boolean parameter "mitigation", e.g. qemu-system-x86_64 -device e1000,mitigation=on,... ... For more information, see the Software developer's manual at http://download.intel.com/design/network/manuals/8254x_GBe_SDM.pdf. Interrupt mitigation boosts performance when the guest suffers from an high interrupt rate (i.e. receiving short UDP packets at high packet rate). For some numerical results see the following link http://info.iet.unipi.it/~luigi/papers/20130520-rizzo-vm.pdf Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> (for pc-* machines) Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 067404be626d03656788adb7deff8072ca84299f Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Fri Aug 2 21:47:08 2013 +0200 net: Rename send_queue to incoming_queue Each networking client has a queue for packets that could not yet be delivered to that client. Calling this queue "send_queue" is highly confusing as it has nothing to to with packets send from this client but to it. Avoid this confusing by renaming it to "incoming_queue". Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit aa4f082f7526d39dac8e2ca64d192d858014ee10 Author: Brad Smith <brad@xxxxxxxxxxxx> Date: Sat Aug 3 22:20:41 2013 -0400 tap: Use numbered tap/tun devices on all *BSD OS's The following patch simplifies the *BSD tap/tun code and makes use of numbered tap/tun interfaces on all *BSD OS's. NetBSD has a patch in their pkgsrc tree to make use of this feature and DragonFly also supports this as well. Signed-off-by: Brad Smith <brad@xxxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8f94b077877151de93a63c73f796897309568ddb Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Sep 4 13:16:05 2013 +0200 qemu-iotests: Fixed test case 026 The reference output for test case 026 hasn't been updated in a long time and it's one of the "known failing" cases. This patch updates the reference output so that unintentional changes can be reliably detected again. The problem with this test case is that it produces different output depending on whether -nocache is used or not. The solution of this patch is to actually have two different reference outputs. If nnn.out.nocache exists, it is used as the reference output for -nocache; otherwise, nnn.out stays valid for both cases. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 79e40ab10e1f4450c11ab8430cb2547146ded639 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Sep 4 13:16:04 2013 +0200 qemu-iotests: Whitespace cleanup These scripts used to have a four characters indentation, with eight consecutive spaces converted into a tab. Convert everything into spaces. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8caf907f07688972e5e7cd11526079b1665d6dba Author: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Date: Wed Sep 4 14:16:15 2013 +0200 dataplane: Fix startup race. Avoid trying to setup dataplane again if dataplane setup is already in progress. This may happen if an eventfd is triggered during setup. I saw this occasionally with an experimental s390 irqfd implementation: virtio_blk_handle_output -> virtio_blk_data_plane_start -> virtio_ccw_set_host_notifier ... -> virtio_queue_set_host_notifier_fd_handler -> virtio_queue_host_notifier_read -> virtio_queue_notify_vq -> virtio_blk_handle_output -> virtio_blk_data_plane_start -> vring_setup -> hostmem_init -> memory_listener_register -> BOOM As virtio-ccw tries to follow what virtio-pci does, it might be triggerable for other platforms as well. Signed-off-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5daa74a6ebce7543aaad178c4061dc087bb4c705 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:38 2013 +0200 block: look for zero blocks in bs->file Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 918e92d71b38306a6bf4fedfd1109367f1425587 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:37 2013 +0200 block: add default get_block_status implementation for protocols Protocols return raw data, so you can assume the offsets to pass through unchanged. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f5f7abcfd50bca38ae278a9c7a3ed60fba3d76dc Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:36 2013 +0200 raw-posix: report unwritten extents as zero These are created for example with XFS_IOC_ZERO_RANGE. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 63390a8d14c9006f42bdaab22291c9c97676322d Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:35 2013 +0200 raw-posix: return get_block_status data and flags Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit facd6e2b5c0217f9d9eeb2ee497dda28009518bd Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:34 2013 +0200 docs, qapi: document qemu-img map Eric Blake also requested including the output in qapi-schema.json, so that it is published through the introspection mechanism. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4c93a13b5daf9bd5fca1a547661b0fb9a2f0ca52 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:33 2013 +0200 qemu-img: add a "map" subcommand This command dumps the metadata of an entire chain, in either tabular or JSON format. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f0ad5712d5d15ff272b9e107910be4aae468fb3d Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:32 2013 +0200 block: return BDRV_BLOCK_ZERO past end of backing file If the sectors are unallocated and we are past the end of the backing file, they will read as zero. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 415b5b013ce74126e71459b922a92377918ae2ef Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:31 2013 +0200 block: use bdrv_has_zero_init to return BDRV_BLOCK_ZERO Alternatively, this could use a "discard zeroes data" flag returned by bdrv_get_info. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4bc74be997a72922170f4f272fd5e8074a3ecc27 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:30 2013 +0200 block: return get_block_status data and flags for formats Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4333bb71405f58a8dc8d3255feb3ca5960b0daf8 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:29 2013 +0200 block: define get_block_status return value Define the return value of get_block_status. Bits 0, 1, 2 and 9-62 are valid; bit 63 (the sign bit) is reserved for errors. Bits 3-8 are left for future extensions. The return code is compatible with the old is_allocated API: if a driver only returns 0 or 1 (aka BDRV_BLOCK_DATA) like is_allocated used to, clients of is_allocated will not have any change in behavior. Still, we will return more precise information in the next patches and the new definition of bdrv_is_allocated is already prepared for this. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b6b8a33354a448ee421f57676c1a93a536a63269 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:28 2013 +0200 block: introduce bdrv_get_block_status API For now, bdrv_get_block_status is just another name for bdrv_is_allocated. The next patches will add more flags. This also touches all block drivers with a mostly mechanical rename. The sole exception is cow; because it calls cow_co_is_allocated from the read code, we keep that function and make cow_co_get_block_status a wrapper. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 11212d8fa08a4e5bd56bb4f6877f9a4c0439a02b Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:27 2013 +0200 block: make bdrv_has_zero_init return false for copy-on-write-images This helps implementing is_allocated on top of get_block_status. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e4a86f88cc6b214c37b4abe9160e41f0338ce4cd Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:26 2013 +0200 qemu-img: always probe the input image for allocated sectors qemu-img convert can assume "that sectors which are unallocated in the input image are present in both the output's and input's base images". However it is only doing this if the output image returns true for bdrv_has_zero_init(). Testing bdrv_has_zero_init() does not make much sense if the output image is copy-on-write, because a copy-on-write image is never initialized to zero (it is initialized to the content of the backing file). There is nothing here that makes has_zero_init images special. The input and output must be equal for the operation to make sense, and that's it. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d663640c04f2aab810915c556390211d75457704 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:25 2013 +0200 block: expect errors from bdrv_co_is_allocated Some bdrv_is_allocated callers do not expect errors, but the fallback in qcow2.c might make other callers trip on assertion failures or infinite loops. Fix the callers to always look for errors. Cc: qemu-stable@xxxxxxxxxx Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4f5786376e41980e78af45a123c56ebdc5295099 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:24 2013 +0200 block: remove bdrv_is_allocated_above/bdrv_co_is_allocated_above distinction Now that bdrv_is_allocated detects coroutine context, the two can use the same code. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 617ccb466e1937a5c99332ce77a47ebd29861ae4 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:23 2013 +0200 block: do not use ->total_sectors in bdrv_co_is_allocated This is more robust when the device has removable media. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bdad13b9deec47d5d9eaf7f43867d19a79471244 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:22 2013 +0200 block: make bdrv_co_is_allocated static bdrv_is_allocated can detect coroutine context and go through a fast path, similar to other block layer functions. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit df2a6f29a5019707d69f6eeb30cf792841cae5aa Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:21 2013 +0200 block: keep bs->total_sectors up to date even for growable block devices If a BlockDriverState is growable, after every write we need to check if bs->total_sectors might have changed. With this change, bdrv_getlength does not need anymore a system call. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e641c1e81e54fc14908ff6785ef7d51e42c2e1bb Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:20 2013 +0200 cow: do not call bdrv_co_is_allocated As we change bdrv_is_allocated to gather more information from bs and bs->file, it will become a bit slower. It is still appropriate for online jobs, but not for reads/writes. Call the internal function instead. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 26ae980492920e417bc91761cc85950f18e41f85 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:19 2013 +0200 cow: make writes go at a less indecent speed Only sync once per write, rather than once per sector. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 276cbc7f2fc1bd3810887995dbc9cbb739c975bf Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Sep 4 19:00:18 2013 +0200 cow: make reads go at a decent speed Do not do two reads for each sector; load each sector of the bitmap and use bitmap operations to process it. Writes are still dog slow! Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0ca0b0d5f8a87dbc6daa5095771d036d0e6dc5b4 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Tue Sep 3 15:49:39 2013 +0200 qmp: Documentation for BLOCK_IMAGE_CORRUPTED Add an appropriate entry describing this event and its parameters into qmp-events.txt. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit fa510ebffa1fd509323e2e0888e369e23adbb508 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:51 2013 +0800 block: use BDS ref for block jobs Block jobs used drive_get_ref(drive_get_by_blockdev(bs)) to avoid BDS being deleted. Now we have BDS reference count, and block jobs don't care about dinfo, so replace them to get cleaner code. It is also the safe way when BDS has no drive info. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 38b54b6dc18ae7e2a32e5ae38b312fb13f0584c8 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:50 2013 +0800 nbd: use BlockDriverState refcnt Previously, nbd calls drive_get_ref() on the drive of bs. A BDS doesn't always have associated dinfo, which nbd doesn't care either. We already have BDS ref count, so use it to make it safe for a BDS w/o blockdev. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit c0777fe18b08c3a6de0c53325d6b9b75ebb9de9a Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:49 2013 +0800 xen_disk: simplify blk_disconnect with refcnt We call bdrv_attach_dev when initializing whether or not bs is created locally, so call bdrv_detach_dev and let the refcnt handle the lifecycle. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8442cfd0346de849264494c5adedbac12553867e Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:48 2013 +0800 migration: omit drive ref as we have bdrv_ref now block-migration.c does not actually use DriveInfo anywhere. Hence it's safe to drive ref code, we really only care about referencing BDS. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4f6fd3491cf0f768b135ed2e242bd1d1d2a2efec Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:47 2013 +0800 block: make bdrv_delete() static Manage BlockDriverState lifecycle with refcnt, so bdrv_delete() is no longer public and should be called by bdrv_unref() if refcnt is decreased to 0. This is an identical change because effectively, there's no multiple reference of BDS now: no caller of bdrv_ref() yet, only bdrv_new() sets bs->refcnt to 1, so all bdrv_unref() now actually delete the BDS. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 9fcb025146676ab376e6159b58f5a5ddb67bf03c Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:46 2013 +0800 block: implement reference count for BlockDriverState Introduce bdrv_ref/bdrv_unref to manage the lifecycle of BlockDriverState. They are unused for now but will used to replace bdrv_delete() later. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 13c91cb7e28b47f5c4227f7e88a1378570117704 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:45 2013 +0800 iscsi: use bdrv_new() instead of stack structure BlockDriverState structure needs bdrv_new() to initialize refcnt, don't allocate a local structure variable and memset to 0, becasue with coming refcnt implementation, bdrv_unref will crash if bs->refcnt not initialized to 1. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3d34c6cd99f434126365150c2535bbf93b94f891 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Fri Aug 23 09:14:44 2013 +0800 vvfat: use bdrv_new() to allocate BlockDriverState we need bdrv_new() to properly initialize BDS, don't allocate memory manually. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a94a3fac19c37c093203e9e01c3a54e92e1dc701 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Thu Aug 29 17:48:16 2013 +0100 aio / timers: fix build of test/test-aio.c on non-linux platforms tests/test-aio.c used pipe2 which is Linux only. Use qemu_pipe and qemu_set_nonblock for portabillity. Addition of O_CLOEXEC is a harmless bonus. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 68dc036488dfea170627a55e6ee3dfd7f2c2063e Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Sep 1 22:59:25 2013 +0200 w32: Fix access to host devices (regression) QEMU failed to open host devices like \\.\PhysicalDrive0 (first hard disk) since some time (commit 8a79380b8ef1b02d2abd705dd026a18863b09020?). Those devices use hdev_open which did not use the latest API for options. This resulted in a fatal runtime error: Block protocol 'host_device' doesn't support the option 'filename' Duplicate code from raw_open to fix this. Cc: qemu-stable@xxxxxxxxxx Reported-by: David Brenner <david.brenner3@xxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Kevin Wolf <kwolf@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b2e10493c71160d88bb823cae9a92e806a79b9d6 Author: Alexandre Derumier <aderumier@xxxxxxxxx> Date: Mon Sep 2 19:07:24 2013 +0100 add qemu-img convert -n option (skip target volume creation) Add a -n option to skip volume creation on qemu-img convert. This is useful for targets such as rbd / ceph, where the target volume may already exist; we cannot always rely on qemu-img convert to create the image, as dependent on the output format, there may be parameters which are not possible to specify through the qemu-img convert command line. Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Alexandre Derumier <aderumier@xxxxxxxxx> Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b3f3a30f387f34308b3e4d910a2824e69c34182f Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Sep 2 16:36:15 2013 +0200 qemu-iotests: Adjust test result 039 The moved OFLAG_COPIED check in qcow2_check_refcounts results in a different output from test 039 (mismatches are now found after the general refcount check (as far as any remain)). This patch adjusts the expected test result accordingly. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 2024c1df43eae0d2e35663da0c6e8c51290a386e Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Mon Sep 2 14:14:41 2013 +0200 block: Add iops_size to do the iops accounting for a given io size. This feature can be used in case where users are avoiding the iops limit by doing jumbo I/Os hammering the storage backend. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 3e9fab690d59ac15956c3733fe0794ce1ae4c4af Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Mon Sep 2 14:14:40 2013 +0200 block: Add support for throttling burst max in QMP and the command line. The max parameter of the leaky bucket throttling algorithm can be used to allow the guest to do bursts. The max value is a pool of I/O that the guest can use without being throttled at all. Throttling is triggered once this pool is empty. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit cc0681c45430a1f1a4c2d06e9499b7775afc9a18 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Mon Sep 2 14:14:39 2013 +0200 block: Enable the new throttling code in the block layer. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f17cfe813c40792cc1622ba447581c906beb091e Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Mon Sep 2 14:14:38 2013 +0200 throttle: Add units tests Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5ddfffbdc5e024014b77816dab88d372ad95a5b0 Author: Benoît Canet <benoit@xxxxxxxxxxx> Date: Mon Sep 2 14:14:37 2013 +0200 throttle: Add a new throttling API implementing continuous leaky bucket. Implement the continuous leaky bucket algorithm devised on IRC as a separate module. Signed-off-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit df7131623daf4823e087eb1128f6c1c351519774 Merge: 863a834 2641689 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Sep 5 13:38:53 2013 -0500 Merge remote-tracking branch 'bonzini/iommu-for-anthony' into staging # By Jan Kiszka (2) and others # Via Paolo Bonzini * bonzini/iommu-for-anthony: exec: do tcg_commit only when tcg_enabled Revert "memory: Return -1 again on reads from unsigned regions" memory: Provide separate handling of unassigned io ports accesses exec: check offset_within_address_space for register subpage exec: fix writing to MMIO area with non-power-of-two length Message-id: 1378401455-583-1-git-send-email-pbonzini@xxxxxxxxxx commit 2641689a37144b201814f39046e36eb285498cbe Author: liguang <lig.fnst@xxxxxxxxxxxxxx> Date: Wed Sep 4 14:37:33 2013 +0800 exec: do tcg_commit only when tcg_enabled Signed-off-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 68a7439a150d6b4da99082ab454b9328b151bc25 Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Mon Sep 2 18:43:31 2013 +0200 Revert "memory: Return -1 again on reads from unsigned regions" This reverts commit 9b8c69243585a32d14b9bb9fcd52c37b0b5a1b71. The commit was wrong: We only return -1 on invalid accesses, not on valid but unbacked ones. This broke various corner cases. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 3bb28b7208b349e7a1b326e3c6ef9efac1d462bf Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Mon Sep 2 18:43:30 2013 +0200 memory: Provide separate handling of unassigned io ports accesses Accesses to unassigned io ports shall return -1 on read and be ignored on write. Ensure these properties via dedicated ops, decoupling us from the memory core's handling of unassigned accesses. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 88266249701032211c1d7449460d063fbc01bf12 Author: Hu Tao <hutao@xxxxxxxxxxxxxx> Date: Thu Aug 29 18:21:16 2013 +0800 exec: check offset_within_address_space for register subpage If offset_within_address_space falls in a page, then we register a subpage. So check offset_within_address_space rather than offset_within_region. Cc: qemu-stable@xxxxxxxxxx Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> Cc: Richard Henderson <rth@xxxxxxxxxxx> Cc: "Andreas Färber" <afaerber@xxxxxxx> Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> Cc: Blue Swirl <blauwirbel@xxxxxxxxx> Signed-off-by: Hu Tao <hutao@xxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 098178f2749a63fbbb1a626dcc7d939d5cb2bde7 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Jul 29 14:27:39 2013 +0200 exec: fix writing to MMIO area with non-power-of-two length The problem is introduced by commit 2332616 (exec: Support 64-bit operations in address_space_rw, 2013-07-08). Before that commit, memory_access_size would only return 1/2/4. Since alignment is already handled above, reduce l to the largest power of two that is smaller than l. Cc: qemu-stable@xxxxxxxxxx Reported-by: Oleksii Shevchuk <alxchk@xxxxxxxxx> Tested-by: Oleksii Shevchuk <alxchk@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 863a83415750a2ee75ac1fb31405c11e71bf990b Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Sep 5 09:40:02 2013 -0500 Update mailmap This makes get_maintainers.pl behave a little better. Reported-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 386a5a1e0057e220f79c48fe3689e3dfb17f1b09 Author: Amit Shah <amit.shah@xxxxxxxxxx> Date: Wed Aug 28 15:24:05 2013 +0530 char: remove watch callback on chardev detach from frontend If a frontend device releases the chardev (via unplug), the chr handlers are set to NULL via qdev's exit callbacks invoking qemu_chr_add_handlers(). If the chardev had a pending operation, a callback will be invoked, which will try to access data in the just-released frontend, causing a segfault. Ensure the callbacks are disabled when frontends release chardevs. This was seen when a virtio-serial port was unplugged when heavy guest->host IO was in progress (causing a callback to be registered). In the window in which the throttling was active, unplugging ports caused a qemu segfault. https://bugzilla.redhat.com/show_bug.cgi?id=985205 CC: <qemu-stable@xxxxxxxxxx> Reported-by: Sibiao Luo <sluo@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Amit Shah <amit.shah@xxxxxxxxxx> commit 26da70c72524eb22c946ab19ec98a217b8252f7e Author: Amit Shah <amit.shah@xxxxxxxxxx> Date: Wed Aug 28 15:23:37 2013 +0530 char: use common function to disable callbacks on chardev close This deduplicates code used a lot of times. CC: <qemu-stable@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Amit Shah <amit.shah@xxxxxxxxxx> commit 7ba9addc165b37b764baa08c02518b15b2361707 Author: Amit Shah <amit.shah@xxxxxxxxxx> Date: Wed Aug 28 15:18:29 2013 +0530 char: move backends' io watch tag to CharDriverState All the backends implement an io watcher tag for callbacks. Move it to CharDriverState from each backend's struct to make accessing the tag from backend-neutral functions easier. This will be used later to cancel a callback on chardev detach from a frontend. CC: <qemu-stable@xxxxxxxxxx> Reviewed-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> Signed-off-by: Amit Shah <amit.shah@xxxxxxxxxx> commit aaa6a40194e9f204cb853f64ef3c1e170bb014e8 Merge: bb7d4d8 5e891bf Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 3 12:33:32 2013 -0500 Merge remote-tracking branch 'afaerber/tags/qom-cpu-for-anthony' into staging QOM CPUState refactorings / X86CPU * Conversion of global CPU list to QTAILQ - preparing for CPU hot-unplug * Document X86CPU magic numbers for CPUID cache info # gpg: Signature made Tue 03 Sep 2013 10:59:22 AM CDT using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Andreas Färber (3) and Eduardo Habkost (1) # Via Andreas Färber * afaerber/tags/qom-cpu-for-anthony: target-i386: Use #defines instead of magic numbers for CPUID cache info cpu: Replace qemu_for_each_cpu() cpu: Use QTAILQ for CPU list a15mpcore: Use qemu_get_cpu() for generic timers commit bb7d4d82b63bbde06c5584f94bfd9ba3b3e5ff3f Merge: 5a93d5c ca0eca9 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 3 12:32:45 2013 -0500 Merge remote-tracking branch 'kwolf/for-anthony' into staging # By Max Reitz (11) and others # Via Kevin Wolf * kwolf/for-anthony: (26 commits) qemu-iotests: Overlapping cluster allocations qcow2_check: Mark image consistent qcow2-refcount: Repair shared refcount blocks qcow2-refcount: Repair OFLAG_COPIED errors qcow2-refcount: Move OFLAG_COPIED checks qcow2: Employ metadata overlap checks qcow2: Metadata overlap checks qcow2: Add corrupt bit qemu-iotests: Snapshotting zero clusters qcow2-refcount: Snapshot update for zero clusters option: Add assigned flag to QEMUOptionParameter gluster: Abort on AIO completion failure block: Remove old raw driver switch raw block driver from "raw.o" to "raw_bsd.o" raw_bsd: register bdrv_raw raw_bsd: add raw_create_options raw_bsd: introduce "special members" raw_bsd: add raw_create() raw_bsd: emit debug events in bdrv_co_readv() and bdrv_co_writev() add skeleton for BSD licensed "raw" BlockDriver ... Message-id: 1378111792-20436-1-git-send-email-kwolf@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 5a93d5c2abc719bd44f6c9fbeed88d3cae712606 Merge: 9ea0f58 fcdda21 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 3 12:31:43 2013 -0500 Merge remote-tracking branch 'mjt/trivial-patches' into staging # By Stefan Weil (6) and others # Via Michael Tokarev * mjt/trivial-patches: aio / timers: use g_usleep() not sleep() adlib: sort offsets in portio registration qmp: fix integer usage in examples tci: Remove function tcg_out64 (fix broken build) target-arm: Report unimplemented opcodes (LOG_UNIMP) pflash_cfi02.c: fix debug macro configure: Remove unneeded redirections of stderr (pkg-config --exists) configure: Remove unneeded redirections of stderr (pkg-config --cflags, --libs) configure: Don't write .pyc files by default (python -B) curl: qemu_bh_new() can never return NULL slirp/arp_table.c: Avoid shifting into sign bit of signed integers configure: disable clang -Wstring-plus-int warning rdma: silly ipv6 bugfix misc: Fix some typos in names and comments slirp: Port redirection option behave differently on Linux and Windows Message-id: 1378119695-14568-1-git-send-email-mjt@xxxxxxxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 9ea0f58fc723daeb9e1dba9a762269e8cbbd1b73 Merge: 9889e04 31efd2e Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 3 12:31:30 2013 -0500 Merge remote-tracking branch 'kraxel/usb.88' into staging # By Gerd Hoffmann (10) and Marcel Apfelbaum (1) # Via Gerd Hoffmann * kraxel/usb.88: usb/dev-hid: Modified usb-tablet category from Misc to Input Revert "usb-hub: report status changes only once" usb-hub: add tracepoint for status reports usb: parallelize usb3 streams uas: add property for request logging xhci: reset port when disabling slot xhci: emulate intr endpoint intervals correctly xhci: fix endpoint interval calculation xhci: add port to slot_address tracepoint xhci: add tracepoint for endpoint state changes xhci: remove leftover debug printf Message-id: 1378117055-29620-1-git-send-email-kraxel@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 9889e04ac193cad7fa0526573ce0cc752dcabb99 Merge: 5cff81f 23fe2b3 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 3 12:31:07 2013 -0500 Merge remote-tracking branch 'mst/tags/for_anthony' into staging pc,pci,virtio fixes and cleanups This includes pc and pci cleanups and enhancements, and a virtio bugfix for level interrupts. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Sun 01 Sep 2013 03:15:36 AM CDT using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Michael S. Tsirkin (3) and others # Via Michael S. Tsirkin * mst/tags/for_anthony: virtio_pci: fix level interrupts with irqfd pc: reduce duplication, fix PIIX descriptions hw: Clean up bogus default boot order pci: add config space access traces pc: fix regression for 64 bit PCI memory pci: Introduce helper to retrieve a PCI device's DMA address space Message-id: 1378023590-11109-1-git-send-email-mst@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 5cff81f098a57762ab937bfbedb298e658af2c7f Merge: 545825d 520902a Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Sep 3 12:30:51 2013 -0500 Merge remote-tracking branch 'afaerber/tags/qom-devices-for-anthony' into staging QOM device refactorings * Fix QOM and ISA documentation errors * Extend object_initialize() et al. to check the instance size # gpg: Signature made Fri 30 Aug 2013 02:19:48 PM CDT using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Andreas Färber (14) and others # Via Andreas Färber * afaerber/tags/qom-devices-for-anthony: isa: Fix documentation of isa_register_portio_list() qom: Assert instance size in object_initialize_with_type() qom: Pass available size to object_initialize() qdev: Pass size to qbus_create_inplace() virtio-mmio: Pass size to virtio_mmio_bus_new() virtio-ccw: Pass size to virtio_ccw_bus_new() s390-virtio-bus: Pass size to virtio_s390_bus_new() virtio-pci: Pass size to virtio_pci_bus_new() usb: Pass size to usb_bus_new() scsi: Pass size to scsi_bus_new() pci: Pass size to pci_bus_new_inplace() ide: Pass size to ide_bus_new() ipack: Pass size to ipack_bus_new_inplace() intel-hda: Pass size to hda_codec_bus_init() qom: Fix object_initialize_with_type() argument name in documentation virtio: Remove unnecessary OBJECT() casts object: Fix typo in qom/object.h commit 5e891bf8fd509c4d83cb95d352d88effb20720b1 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Tue Aug 27 12:24:37 2013 -0300 target-i386: Use #defines instead of magic numbers for CPUID cache info This is an attempt to make the CPUID cache topology code clearer, by replacing the magic numbers in the code with #defines, and moving all the cache information to the same place in the file. I took care of comparing the assembly output of compiling target-i386/cpu.c before and after applying this change, to make sure not a single bit was changed on cpu_x86_cpuid() before and after applying this patch (unfortunately I had to manually check existing differences, because of __LINE__ expansions on object_class_dynamic_cast_assert() calls). This even keeps the code bug-compatible with the previous version: today the cache information returned on AMD cache information leaves (CPUID 0x80000005 & 0x80000006) do not match the information returned on CPUID leaves 2 and 4. The L2 cache information on CPUID leaf 2 also doesn't match the information on CPUID leaf 2. The new constants should make it easier to eventually fix those inconsistencies. All inconsistencies I have found are documented in code comments. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: liguang <lig.fnst@xxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 38fcbd3f08375eb2986b9b63ccd4f593e71aa99d Author: Andreas Färber <afaerber@xxxxxxx> Date: Sun Jul 7 19:50:23 2013 +0200 cpu: Replace qemu_for_each_cpu() It was introduced to loop over CPUs from target-independent code, but since commit 182735efaf956ccab50b6d74a4fed163e0f35660 target-independent CPUState is used. A loop can be considered more efficient than function calls in a loop, and CPU_FOREACH() hides implementation details just as well, so use that instead. Suggested-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit bdc44640cb33c90809376a262df871a1144d339a Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Jun 24 23:50:24 2013 +0200 cpu: Use QTAILQ for CPU list Introduce CPU_FOREACH(), CPU_FOREACH_SAFE() and CPU_NEXT() shorthand macros. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 27013bf20d5d93ac75d398aa3608604e8ad91b5a Author: Andreas Färber <afaerber@xxxxxxx> Date: Wed Aug 21 18:36:35 2013 +0200 a15mpcore: Use qemu_get_cpu() for generic timers This simplifies the loop and aids with refactoring of CPU list. Requested-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 545825d4cda03ea292b7788b3401b99860efe8bc Merge: 32f3bd6 6fb5874 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Tue Sep 3 01:35:43 2013 +0200 Merge branch 'tcg-next' of git://github.com/rth7680/qemu * 'tcg-next' of git://github.com/rth7680/qemu: (29 commits) tcg-i386: Make use of zero-extended memory helper routines tcg: Introduce zero and sign-extended versions of load helpers exec: Split softmmu_defs.h target: Include softmmu_exec.h where forgotten exec: Rename USUFFIX to LSUFFIX tcg-i386: Don't perform GETPC adjustment in TCG code exec: Reorganize the GETRA/GETPC macros configure: Allow x32 as a host tcg-i386: Adjust tcg_out_tlb_load for x32 tcg-i386: Use intptr_t appropriately tcg: Fix jit debug for x32 tcg: Use appropriate types in tcg_reg_alloc_call tcg: Change tcg_out_ld/st offset to intptr_t tcg: Change tcg_gen_exit_tb argument to uintptr_t tcg: Use uintptr_t in TCGHelperInfo tcg: Change relocation offsets to intptr_t tcg: Change memory offsets to intptr_t tcg: Change frame pointer offsets to intptr_t tcg: Define TCG_ptr properly tcg: Define TCG_TYPE_PTR properly ... commit 32f3bd6d4d6d6f835cbc2b9241fe8c32d2898d73 Merge: 3207bf2 7e47226 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Tue Sep 3 01:35:25 2013 +0200 Merge branch 'ppc-for-upstream' of git://github.com/agraf/qemu * 'ppc-for-upstream' of git://github.com/agraf/qemu: PPC: spapr: iommu: rework traces spapr: add "stop-self" RTAS call required to support hot CPU unplug PPC: KVM: Compile fix for qemu_notify_event pseries: Add H_SET_MODE hcall to change guest exception endianness xics: move registration of global state to realize() spapr-pci: rework MSI/MSIX target-ppc: Use #define instead of opencoding SLB valid bit spapr-pci: fix config space access to support bridges target-ppc: fix bit extraction for FPBF and FPL ppc405_boards: Don't enforce presence of firmware for qtest ppc405_uc: Disable debug output ppc405_boards: Disable debug output ppc: virtex_ml507: QEMU_OPTION_dtb support for this machine. disas/ppc.c: Fix little endian disassembly target-ppc: POWER7 supports the MSR_LE bit target-ppc: USE LPCR_ILE to control exception endian on POWER7 pseries: Fix stalls on hypervisor virtual console PPC: E500: Generate device tree on reset commit 3207bf2549a1a84c577d2f6a481192566a059163 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Thu Aug 15 17:57:59 2013 +0200 tcg/mips: only enable ext8s/ext16s ops on MIPS32R2 On MIPS ext8s and ext16s ops are implemented with a dedicated instruction only on MIPS32R2, otherwise the same kind of implementation than at TCG level (shift left followed by shift right) is used. Change that by only implementing the ext8s and ext16s ops on MIPS32R2 so that optimizations can be done by the optimizer. Use an inline version to avoid having to test again for MIPS32R2 instructions. Keep the shift implementation for the ld/st routines. Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit df81ff51d50b22c52e609e13d5292d09e4634659 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Wed Aug 28 13:51:40 2013 +0200 tcg/mips: inline bswap16/bswap32 ops Use an inline version for the bswap16 and bswap32 ops to avoid testing for MIPS32R2 instructions availability, as these ops are only available in that case. Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 988902fc3bc599f7431461b790f3d63d3a2357f9 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Thu Aug 15 17:57:59 2013 +0200 tcg/mips: detect available host instructions at runtime Now that TCG supports enabling and disabling ops at runtime, it's possible to detect the available host instructions at runtime, and enable the corresponding ops accordingly. Unfortunately it's not easy to probe for available instructions on MIPS, the information is partially available in /proc/cpuinfo, and not available in AUXV. This patch therefore probes for the instructions by trying to execute them and by catching a possible SIGILL signal. Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 6fb5874590589585cdcad4ca2431d9d8d4d491b1 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Aug 29 15:00:16 2013 -0700 tcg-i386: Make use of zero-extended memory helper routines For 8 and 16-bit unsigned loads, rely on the zero-extension from the helper and use a smaller 32-bit move insn. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c8f94df5934afd9b2011773aaee0fdef714ff573 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 27 14:09:14 2013 -0700 tcg: Introduce zero and sign-extended versions of load helpers Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e58eb534133f8ccaa957a33a06ccdb9129f2c842 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 27 13:13:44 2013 -0700 exec: Split softmmu_defs.h The _cmmu helpers can be moved to exec-all.h. The helpers that are used from TCG will shortly need access to tcg_target_long so move their declarations into tcg.h. This requires minor include adjustments to all TCG backends. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b1669e5e321a0a96a07ec1f7a82ce8f4b25ddfd5 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 27 13:03:27 2013 -0700 target: Include softmmu_exec.h where forgotten Several targets forgot to include softmmu_exec.h, which would break them with a header cleanup to follow. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 701e3a5cc02fd52ba59894781e78d433ec043772 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 27 11:31:48 2013 -0700 exec: Rename USUFFIX to LSUFFIX In a following patch, there will be confusion between multiple "unsigned" suffixes; rename this one so as to imply "load". Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 5bcebc253c1637d3a5b957abc7460c49a670c4de Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 27 10:47:49 2013 -0700 tcg-i386: Don't perform GETPC adjustment in TCG code Since we now perform it inside the helper, no need to do it here. This also lets us perform a tail-call from the store slow path to the helper. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 0f842f8a246f2b5b51a11c13f933bf7a90ae8e96 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 27 10:22:54 2013 -0700 exec: Reorganize the GETRA/GETPC macros Always define GETRA; use __builtin_extract_return_addr, rather than having a special case for s390. Split GETPC_ADJ out of GETPC; use 2 universally, rather than having a special case for arm. Rename GETPC_LDST to GETRA_LDST to indicate that it does not contain the GETPC_ADJ value. Likewise with GETPC_EXT to GETRA_EXT. Perform the GETPC_ADJ adjustment inside helper_ret_ld/st. This will allow backends to pass along the "true" return address rather than the massaged GETPC value. In the meantime, double application of GETPC_ADJ does not hurt, since the call insn in all ISAs is at least 4 bytes long. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c72b26ec92eb93a92852ab1d23acb5a945de5062 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 12:20:05 2013 -0700 configure: Allow x32 as a host Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d5dad3be314dfec80ebb1c69266ae62edfea1850 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 16:50:38 2013 -0700 tcg-i386: Adjust tcg_out_tlb_load for x32 Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 357e3d8a297003f9d79f08e45a79a73eb2d12f5b Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 15:37:16 2013 -0700 tcg-i386: Use intptr_t appropriately Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit edee2579ae3722d28756ce04ec665ea9522d8600 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 17:20:30 2013 -0700 tcg: Fix jit debug for x32 Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d3452f1f40956e50142d32afbc021c53026a1770 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 17:12:38 2013 -0700 tcg: Use appropriate types in tcg_reg_alloc_call Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a05b5b9be0fec96c89e00abaa964be7ce9e661ac Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 17:07:26 2013 -0700 tcg: Change tcg_out_ld/st offset to intptr_t Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8cfd04959a023f87e1e6727e608a20f168441370 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 15:53:10 2013 -0700 tcg: Change tcg_gen_exit_tb argument to uintptr_t And update all users. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 48bc6bab479e5abb542119f3974603afd882c246 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 15:38:41 2013 -0700 tcg: Use uintptr_t in TCGHelperInfo Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2ba7fae29ec63acf2ce77d20d4146fa224bf2338 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 15:30:10 2013 -0700 tcg: Change relocation offsets to intptr_t Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2f2f244d02a2cb28db7ce790576ade08fc3a54bf Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 15:17:25 2013 -0700 tcg: Change memory offsets to intptr_t Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e2c6d1b42d34539120c3cee159dcd9e32cba7d3b Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 15:12:31 2013 -0700 tcg: Change frame pointer offsets to intptr_t Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8b73d49f53e1a1d1571ac783ec028ff27befd93e Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 15:07:08 2013 -0700 tcg: Define TCG_ptr properly Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit d289837eef3550ac156082d812231ec5dfe79501 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 14:48:46 2013 -0700 tcg: Define TCG_TYPE_PTR properly Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 78cd7b835e13bee4416782b6ed41e9bef76e3cfc Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 14:41:29 2013 -0700 tcg: Allow TCG_TARGET_REG_BITS to be specified independantly There are several hosts for which it would be useful to use the available 64-bit registers in a 32-bit pointer environment. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3e9bd63acf145bb2d3da277ee85167878ade53bd Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 14:40:25 2013 -0700 tcg: Fix next_tb type in cpu_exec Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 04d5a1da70dfe1a3a5ac5b5a8e7a7b8136d3a985 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 14:35:34 2013 -0700 tcg: Change tcg_qemu_tb_exec return to uintptr_t Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b93949ef6a5dea2b22987f2aa3028068e751a7e4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 14:22:50 2013 -0700 tcg: Change flush_icache_range arguments to uintptr_t Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 35aa3fb38753bd1557af8370994ce6c5b599e65c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Tue Aug 20 13:53:25 2013 -0700 qtest: Fix FMT_timeval vs time_t Since FMT_timeval unconditionally uses %ld for both tv_sec and tv_usec, and already casts tv_usec to long, also cast tv_sec to long. Cc: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 01547f7f9283e416578323e5d5df3327ed4df3ee Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 15:22:46 2013 -0700 tcg: Constant fold div, rem Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 32f5717f07e5f801e482052311d21a4223fc78f1 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 14:46:08 2013 -0700 tcg-ppc64: Implement muluh, mulsh Using these instead of mulu2 and muls2 lets us avoid having to argument overlap analysis in the backend. Normal register allocation will DTRT. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 3c9a8f17560794ad23889318cc42894c6e592cc3 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 14:41:43 2013 -0700 tcg-mips: Implement mulsh, muluh With the optimization in tcg_liveness_analysis, we can avoid the MFLO when it is unused. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 03271524b66dfc979cc0412bdb5d8d617426b644 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 14:35:56 2013 -0700 tcg: Add muluh and mulsh opcodes Use them in places where mulu2 and muls2 are used. Optimize mulx2 with dead low part to mulxh. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 31efd2e883018b4c079ad082105bc161fbb3fef8 Author: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Date: Thu Aug 22 20:11:36 2013 +0300 usb/dev-hid: Modified usb-tablet category from Misc to Input usb-tablet device was wrongly assigned to Misc category Reported-by: Markus Armbruster <armbru@xxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Marcel Apfelbaum <marcel.a@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit bdebd6ee81f4d849aa8541c289203e3992450db0 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Aug 27 17:00:04 2013 +0200 Revert "usb-hub: report status changes only once" This reverts commit a309ee6e0a256f690760abfba44fceaa52a7c2f3. This isn't in line with the usb specification and adds regressions, win7 fails to drive the usb hub for example. Was added because it "solved" the issue of hubs interacting badly with the xhci host controller. Now with the root cause being fixed in xhci (commit <FIXME>) we can revert this one. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit b8cbc1374acdc1d8081f1dc57ef1249d263cf389 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Aug 27 16:59:37 2013 +0200 usb-hub: add tracepoint for status reports Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit c96c41ed0d38d68a6c8b6f84751afebafeae31be Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Aug 27 15:25:24 2013 +0200 usb: parallelize usb3 streams usb3 bulk endpoints with streams are implicitly pipelined now, so the requests will actually be processed in parallel. Also allow them to complete out-of-order. Fixes stalls in the uas driver. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 1556a8fc38dbf4e950c50427192a3a37cdea3cba Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Aug 27 14:54:44 2013 +0200 uas: add property for request logging Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5c67dd7b4884979a2613a4702ac1ab68b0e6a16e Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Aug 28 11:47:09 2013 +0200 xhci: reset port when disabling slot Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 4d7a81c06f5f17e019a2d3a18300500bd64f6f40 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Aug 28 11:38:44 2013 +0200 xhci: emulate intr endpoint intervals correctly Respect the interval for interrupt endpoints, so we don't finish transfers as fast as possible but at the rate configured by the guest. Fixes guest deadlocks triggered by interrupt storms. Cc: Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit ca7162782a293f525633e5816470498dd86a51cf Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Aug 28 11:39:02 2013 +0200 xhci: fix endpoint interval calculation Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 65d81ed402d3b78b6ffbade36a09ea53e41614d2 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Aug 28 11:46:45 2013 +0200 xhci: add port to slot_address tracepoint Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 1c82392a158471355aa6d1922df2d1545bb16b95 Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Wed Apr 24 15:01:25 2013 +0200 xhci: add tracepoint for endpoint state changes Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit 5219042274fa2f993c25202680eeaea42193389d Author: Gerd Hoffmann <kraxel@xxxxxxxxxx> Date: Tue Aug 27 14:47:15 2013 +0200 xhci: remove leftover debug printf Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> commit ca0eca91b65c34d6e5f5c77d5c18ed3de5b26139 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 14:34:31 2013 +0200 qemu-iotests: Overlapping cluster allocations A new test on corrupted images with overlapping cluster allocations. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 24530f3e060c71b6c57c7a70336f08a13a8b0a3d Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 14:34:30 2013 +0200 qcow2_check: Mark image consistent If no corruptions remain after an image repair (and no errors have been encountered), clear the corrupt flag in qcow2_check. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit afa50193cde574528a130a25544fd6f3aa8da069 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Mon Sep 2 09:25:10 2013 +0200 qcow2-refcount: Repair shared refcount blocks If the refcount of a refcount block is greater than one, we can at least try to repair that problem by duplicating the affected block. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7e472264e9e2727bc7d08fe6f012db76e1c1a193 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Thu Aug 29 18:05:00 2013 +1000 PPC: spapr: iommu: rework traces This converts old style fprintf to traces. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> [agraf: change patch subject] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 59760f2dba6b5729bbbef113c0dc142bf9ec94d3 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Aug 30 16:11:56 2013 +1000 spapr: add "stop-self" RTAS call required to support hot CPU unplug PAPR+ requires two RTAS calls to be supported by the hypervisor in order to allow hotplugging VCPUs from the guest. The "start-cpu" RTAS call was already there but "stop-self" was not. This adds the "stop-self" RTAS call. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 7bb438b6a102766ac58e1a2981f8749e4515aa01 Author: Alexander Graf <agraf@xxxxxxx> Date: Thu Aug 29 02:00:16 2013 +0200 PPC: KVM: Compile fix for qemu_notify_event The function qemu_notify_event is defined by a header that we don't include in the PPC KVM code. Include it to get the code building again. target-ppc/kvm_ppc.c: In function 'kvmppc_timer_hack': target-ppc/kvm_ppc.c:26:5: error: implicit declaration of function 'qemu_notify_event' [-Werror=implicit-function-declaration] target-ppc/kvm_ppc.c:26:5: error: nested extern declaration of 'qemu_notify_event' [-Werror=nested-externs] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 42561bf2e464a2d682707af1640fc2db1e937c42 Author: Anton Blanchard <anton@xxxxxxxxx> Date: Mon Aug 19 21:04:20 2013 +1000 pseries: Add H_SET_MODE hcall to change guest exception endianness H_SET_MODE is used for controlling various partition settings. One of these settings is the endianness a guest takes its exceptions in. Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> [agraf: fix whitespace] Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 33a0e5d8c555091eef6944595d8787cb9274e451 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Mon Aug 19 15:55:21 2013 +1000 xics: move registration of global state to realize() Registration of global state belongs into realize so move it there. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit f1c2dc7c866a939c39c14729290a21309a1c8a38 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Fri Jul 12 17:38:24 2013 +1000 spapr-pci: rework MSI/MSIX On the sPAPR platform a guest allocates MSI/MSIX vectors via RTAS hypercalls which return global IRQ numbers to a guest so it only operates with those and never touches MSIMessage. Therefore MSIMessage handling is completely hidden in QEMU. Previously every sPAPR PCI host bridge implemented its own MSI window to catch msi_notify()/msix_notify() calls from QEMU devices (virtio-pci or vfio) and route them to the guest via qemu_pulse_irq(). MSIMessage used to be encoded as: .addr - address within the PHB MSI window; .data - the device index on PHB plus vector number. The MSI MR write function translated this MSIMessage to a global IRQ number and called qemu_pulse_irq(). However the total number of IRQs is not really big (at the moment it is 1024 IRQs starting from 4096) and even 16bit data field of MSIMessage seems to be enough to store an IRQ number there. This simplifies MSI handling in sPAPR PHB. Specifically, this does: 1. remove a MSI window from a PHB; 2. add a single memory region for all MSIs to sPAPREnvironment and spapr_pci_msi_init() to initialize it; 3. encode MSIMessage as: * .addr - a fixed address of SPAPR_PCI_MSI_WINDOW==0x40000000000ULL; * .data as an IRQ number. 4. change IRQ allocator to align first IRQ number in a block for MSI. MSI uses lower bits to specify the vector number so the first IRQ has to be aligned. MSIX does not need any special allocator though. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: Anthony Liguori <aliguori@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit a3cedb541ca3ecc82040f597a4054419fdb22fa5 Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 20 16:19:24 2013 +0530 target-ppc: Use #define instead of opencoding SLB valid bit Use SLB_ESID_V instead of (1 << 27) in the code Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 5dac82ce0d8716b54f73f96bf50811644a76e5c2 Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Wed Aug 21 16:02:15 2013 +1000 spapr-pci: fix config space access to support bridges spapr-pci config space accessors use find_dev() to find a PCI device. However find_dev() only searched on a primary bus and did not do recursive search through secondary buses so config space access was not possible for devices other that on a primary bus. This fixed find_dev() by using the PCI API pci_find_device() function. This effectively enabled pci bridges on spapr. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 779f659021d1754117bce1aab9370dc22f37ae07 Author: Aurelien Jarno <aurelien@xxxxxxxxxxx> Date: Thu Aug 15 13:32:38 2013 +0200 target-ppc: fix bit extraction for FPBF and FPL Bit extraction for the FP BF and L field of the MTFSFI and MTFSF instructions is wrong and doesn't match the reference manual (which explain the bit number in big endian format). It has been broken in commit 7d08d85645def18eac2a9d672c1868a35e0bcf79. This patch fixes this, which in turn fixes the problem reported by Khem Raj about the floor() function of libm. Reported-by: Khem Raj <raj.khem@xxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> CC: qemu-stable@xxxxxxxxxx (1.6) Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit ad9990acc5ac29ce505fbb2b955928ce335eddfd Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 5 15:27:23 2013 +0200 ppc405_boards: Don't enforce presence of firmware for qtest Adopt error_report() while at it. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 0d84382ed96cb2cfc3bc5be34d3a045eeb69c9dc Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 5 15:27:22 2013 +0200 ppc405_uc: Disable debug output Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit bf2ed917d77489189e7bcfea629ca030c8e2639d Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 5 15:27:21 2013 +0200 ppc405_boards: Disable debug output Also move one stray debug output into an #ifdef. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit daf285b6063f20c328f03d6185bbfe9b81ce5fe2 Author: Efimov Vasily <real@xxxxxxxxx> Date: Wed Aug 14 17:26:08 2013 +0400 ppc: virtex_ml507: QEMU_OPTION_dtb support for this machine. QEMU has 'dtb' option for specifing the device tree file for the kernel. The patch adds support for this option to the 'virtex_ml507' machine implementation. Signed-off-by: Efimov Vasily <real@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 95f5b6e3af28a24f97b25649e12f586e19e8a4a1 Author: Anton Blanchard <anton@xxxxxxxxx> Date: Wed Aug 7 10:47:03 2013 +1000 disas/ppc.c: Fix little endian disassembly Use info->endian to select the endian of the instruction to be disassembled. Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Reviewed-by: Anthony Liguori <aliguori@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit bb429d224733c263456c105eab93cd2b5e55add2 Author: Anton Blanchard <anton@xxxxxxxxx> Date: Wed Aug 7 10:47:00 2013 +1000 target-ppc: POWER7 supports the MSR_LE bit Add MSR_LE to the msr_mask for POWER7. Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Reviewed-by: Anthony Liguori <aliguori@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 1e0c7e554e449abb7bf759339ca2cf8cda232532 Author: Anton Blanchard <anton@xxxxxxxxx> Date: Wed Aug 7 10:47:01 2013 +1000 target-ppc: USE LPCR_ILE to control exception endian on POWER7 On POWER7, LPCR_ILE is used to control what endian guests take their exceptions in so use it instead of MSR_ILE. Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Reviewed-by: Anthony Liguori <aliguori@xxxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 7770b6f78a2d655e03852a5de238f5926c92be6a Author: Anton Blanchard <anton@xxxxxxxxx> Date: Tue Aug 13 14:10:04 2013 +1000 pseries: Fix stalls on hypervisor virtual console A number of users are reporting stalls when using the pseries hypervisor virtual console. A simple test case is to paste 15 or 17 characters at a time into the console. Pasting 15 characters at a time works fine but pasting 17 characters hangs for a random amount of time. Other activity (network, qemu monitor etc) unblocks it. If qemu-char tries to send more than 16 characters at once, vty_can_receive returns false. At this point we have to wait for the guest to consume that output. Everything is good so far. The problem occurs when the the guest does consume the output. We need to signal back to the qemu-char layer that we are ready for more input. Without this we block until something else kicks us (eg network activity). Signed-off-by: Anton Blanchard <anton@xxxxxxxxx> Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit 28290f37e20cda27574f15be9e9499493e3d0fe8 Author: Alexander Graf <agraf@xxxxxxx> Date: Fri Jul 19 12:56:24 2013 +0200 PPC: E500: Generate device tree on reset Today we generate the device tree once on machine initialization and then store the finalized blob in memory to reload it on reset. This is bad for 2 reasons. First we potentially waste a bunch of RAM for no good reason, as we have all information required to regenerate the device tree available anyways. The second reason is even more important. On machine init when we generate the device tree for the first time, we don't have all of the devices fully initialized yet. But the device tree needs to potentially walk devices to put information about them into the device tree. Move the generation into a reset function. That way we just generate it new every time we reset, solving both of the above issues. Signed-off-by: Alexander Graf <agraf@xxxxxxx> commit fcdda211f9239f4218f96cdc336a482f7103d90b Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Thu Aug 29 23:32:14 2013 +0100 aio / timers: use g_usleep() not sleep() sleep() apparently doesn't exist under mingw. Use g_usleep for portability. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 2b21fb57af305f17841d79e7e2e02ad1aec3f5ca Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Wed Aug 14 11:49:04 2013 +0200 adlib: sort offsets in portio registration This fixes the following assert when -device adlib is used: ioport.c:240: portio_list_add: Assertion `pio->offset >= off_last' failed. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 586b546657da7a762106abb5056d90a140d1a2f5 Author: Eric Blake <eblake@xxxxxxxxxx> Date: Fri Aug 30 14:44:11 2013 -0600 qmp: fix integer usage in examples Per the qapi schema, block_set_io_throttle takes most arguments as ints, not strings. * qmp-commands.hx (block_set_io_throttle): Use correct type. Fix whitespace and a copy-paste bug in the process. Signed-off-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Benoit Canet <benoit@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit a32b12741bf45bf3f46bffe5a79cb2548a060cd8 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Aug 28 19:28:06 2013 +0200 tci: Remove function tcg_out64 (fix broken build) Commit ac26eb69a311396668809eadbf7ff4e623447d4c added tcg_out64 to tcg/tcg.c. tcg/tci/tcg-target.c already had a nearly identical implementation which is now removed to fix a compiler error. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit e0c270d946dc8efd723129b6a9d956b3084b55b1 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Wed Aug 28 06:39:56 2013 +0200 target-arm: Report unimplemented opcodes (LOG_UNIMP) These unimplemented opcodes are handled like illegal opcodes, but they are used in existing code. We should at least report when they are executed. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Reviewed-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 56f99ea19b5ae71cfdc0bd147cba372da3b63c44 Author: Antony Pavlov <antonynpavlov@xxxxxxxxx> Date: Wed Aug 28 07:59:37 2013 +0400 pflash_cfi02.c: fix debug macro If PFLASH_DEBUG is enabled then we have some build errors: hw/block/pflash_cfi02.c: In function â??pflash_timerâ??: hw/block/pflash_cfi02.c:128:5: error: expected â??)â?? before string constant hw/block/pflash_cfi02.c:128:5: error: too few arguments to function â??fprintfâ?? This patch fixes the problem. Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 65d5d3f92246f056a45e4ddc6f13487de39cd47c Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Aug 27 21:09:13 2013 +0200 configure: Remove unneeded redirections of stderr (pkg-config --exists) Predicate options (--exists, --atleast-version, ...) of pkg-config dont't print error messages to stderr, so redirecting stderr is not necessary. Combining a predicate option with --modversion is not necessary for tests. Instead of testing with --modversion, --exists can be used. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ca871ec8612cc0e95a02de83a3bdd01514e5733b Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Aug 27 21:09:12 2013 +0200 configure: Remove unneeded redirections of stderr (pkg-config --cflags, --libs) For existing libraries, pkg-config --cflags and pkg-config --libs won't print error messages to stderr, so redirecting stderr is not necessary. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 1d984a67a95d88f3e708b077dab8adeb47c38c93 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Tue Aug 27 15:12:41 2013 +0200 configure: Don't write .pyc files by default (python -B) When a Python script is run, Python normally writes bytecode into a .pyc file. QEMU's build process uses several Python scripts which are called from configure or make. The generated .pyc files take disk space without being of much use, because those scripts are short, not time critical and only called a few times. Python's option -B disables writing of .pyc files. QEMU now uses "python -B" as default, but it is still possible to choose a different call by passing --python=PYTHON to configure. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 5b21a2ae4dea72d9aa68e0385fc0548971e929f4 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Mon Aug 26 13:38:50 2013 +0200 curl: qemu_bh_new() can never return NULL Drop error code path which cannot be taken since qemu_bh_new() does not return NULL. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit ed6bc28e8a448b9005af50eed12893c5f7711c6e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Aug 23 17:36:48 2013 +0100 slirp/arp_table.c: Avoid shifting into sign bit of signed integers "0xf << 28" shifts right into the sign bit, since 0xf is a signed integer. Use the 'U' suffix to force an unsigned shift to avoid this undefined behaviour and a clang sanitizer warning. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Acked-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 714290979abf551d5116346e4fbd3d54eb24bd12 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Mon Aug 5 20:16:40 2013 +0100 configure: disable clang -Wstring-plus-int warning Some versions of clang will warn about adding integers to strings: disas/i386.c:4753:23: error: adding 'char' to a string does not append to the string [-Werror,-Wstring-plus-int] oappend ("%es:" + intel_syntax); ~~~~~~~^~~~~~~~~~~~~~ disas/i386.c:4753:23: note: use array indexing to silence this warning oappend ("%es:" + intel_syntax); ^ & [ ] disas/i386.c uses this idiom to to skip a "%" prefix if using intel rather than AT&T syntax. This seems like a reasonable thing to do, and I don't think anybody contributing to QEMU is likely to believe that '+' is a string concatenation operator in C, so just disable -Wstring-plus-int. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit c89aa2f1851b08c3efa8a1070c0a6b9a36e1227f Author: Michael R. Hines <mrhines@xxxxxxxxxx> Date: Sun Aug 18 22:27:08 2013 -0400 rdma: silly ipv6 bugfix My bad - but it's very important for us to warn the user that IPv6 is broken on RoCE in linux right now, until linux releases a fixed version. Signed-off-by: Michael R. Hines <mrhines@xxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 4c293dc6e4cf0421e13870962e1e8ccbb810b2a6 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Aug 18 19:40:06 2013 +0200 misc: Fix some typos in names and comments Most typos were found using a modified version of codespell: accross -> across issueing -> issuing TICNT_THRESHHOLD -> TICNT_THRESHOLD bandwith -> bandwidth VCARD_7816_PROPIETARY -> VCARD_7816_PROPRIETARY occured -> occurred gaurantee -> guarantee sofware -> software Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit efcb7e45290ecc8633f7c5bdf02ac86f6289fa7d Author: Taimoor Mirza <tmirza@xxxxxxxxxxxxxxxx> Date: Thu Aug 15 23:13:28 2013 +0500 slirp: Port redirection option behave differently on Linux and Windows port redirection code uses SO_REUSEADDR socket option before binding to host port. Behavior of SO_REUSEADDR is different on Windows and Linux. Relaunching QEMU with same host and guest port redirection values on Linux throws error but on Windows it does not throw any error. Problem is discussed in http://lists.gnu.org/archive/html/qemu-devel/2013-04/msg03089.html Signed-off-by: Taimoor Mirza <tmirza@xxxxxxxxxxxxxxxx> Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx> commit 23fe2b3f9e7df8da53ac1bc32c6875254911d7f4 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Sep 1 11:03:45 2013 +0300 virtio_pci: fix level interrupts with irqfd commit 62c96360ae7f2c7a8b029277fbb7cb082fdef7fd virtio-pci: fix level interrupts only helps systems without irqfd: on systems with irqfd support we passed in flag requesting irqfd even when msix is disabled. As a result, for level interrupts we didn't install an fd handler so unmasking an fd had no effect. Fix this up. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit a0dba644c139907ccf6735c505fbd254010d6938 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Aug 27 09:48:06 2013 +0300 pc: reduce duplication, fix PIIX descriptions We have a lot of code duplication between machine types, this increases with each new machine type and each new field. This has already introduced a minor bug: description for pc-1.3 says "Standard PC" while description for pc-1.4 is "Standard PC (i440FX + PIIX, 1996)" which makes you think 1.3 is somehow more standard, or newer, while in fact it's a revision of the same PC. This patch addresses this issue by using macros, along the lines used by PC_COMPAT_X_X - only for non-property options. The approach can extend to non-PC machine types. Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 520902a656f21bdd4f212bfa55bc35c3e567affc Author: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Date: Tue Aug 13 12:38:34 2013 +0200 isa: Fix documentation of isa_register_portio_list() Commit b40acf9 (ioport: Switch dispatching to memory core layer, 2013-06-24) removed all instances of old_portio. Signed-off-by: Hervé Poussineau <hpoussin@xxxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5b9237f67c499fa4e20bb9bd29c7ce54afe79cb7 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 30 18:28:37 2013 +0200 qom: Assert instance size in object_initialize_with_type() This catches objects initializing beyond allocated memory, e.g., when subtypes get extended with instance state of their own. Suggested-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 213f0c4f619dda7a56612353009e6f30d3348206 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 19:37:12 2013 +0200 qom: Pass available size to object_initialize() To be passed on to object_initialize_with_type(). Acked-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> (virtio-ccw) Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit fb17dfe0575243a3f60dcefca37fa82ae682f146 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sat Aug 24 00:02:27 2013 +0200 qdev: Pass size to qbus_create_inplace() To be passed to object_initialize(). Since commit 39355c3826f5d9a2eb1ce3dc9b4cdd68893769d6 the argument is void*, so drop some superfluous (BusState *) casts or direct parent field usages. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit e5f720391e0628131cb6548b3d27be6aa56ae7d4 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:33:55 2013 +0200 virtio-mmio: Pass size to virtio_mmio_bus_new() To be passed to qbus_create_initialize(). Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 1bf4d7aad61f47b3da52c4aff239fd94be320727 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:27:30 2013 +0200 virtio-ccw: Pass size to virtio_ccw_bus_new() To be passed to qbus_create_inplace(). Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Acked-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5d6c0c49136e2615c0cd60cda523e8dc8cd65ed7 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:25:57 2013 +0200 s390-virtio-bus: Pass size to virtio_s390_bus_new() To be passed to qbus_create_inplace(). Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ac7af1120f589a5385e39b3decc3d2d944a4d656 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:35:18 2013 +0200 virtio-pci: Pass size to virtio_pci_bus_new() To be passed to qbus_create_inplace(). Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c889b3a55d5d1d18042693cbe2f8f05465914ff4 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:32:04 2013 +0200 usb: Pass size to usb_bus_new() To be passed to qbus_create_inplace(). Use DEVICE() cast to avoid a direct parent field access. Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit b1187b51ff5563135da0a9e5c855d7876ab1a926 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:30:03 2013 +0200 scsi: Pass size to scsi_bus_new() To be passed to qbus_create_inplace(). Use DEVICE() casts instead of direct parent field access. Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit dd301ca607feddab3b44f927cd36aee004c40e1a Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:23:55 2013 +0200 pci: Pass size to pci_bus_new_inplace() To be passed to qbus_create_inplace(). Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit c6baf942e084e0bc40ee37c8d8672ac9c5ea270b Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:18:50 2013 +0200 ide: Pass size to ide_bus_new() To be passed to qbus_create_inplace(). Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 77cbb28a5b90dbd183e1139734bcc2ac9ecbdd6a Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:07:28 2013 +0200 ipack: Pass size to ipack_bus_new_inplace() To be passed to qbus_create_inplace(). Simplify DEVICE() cast to avoid parent field access. Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit ab809e84a722f8fa1bcdeac5e3ebae10d90fb788 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Aug 23 20:05:16 2013 +0200 intel-hda: Pass size to hda_codec_bus_init() To be passed to qbus_create_inplace(). Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 53caad9a31bed10f59c70406001b9217bda2d111 Author: Andreas Färber <afaerber@xxxxxxx> Date: Sat Aug 24 01:12:33 2013 +0200 qom: Fix object_initialize_with_type() argument name in documentation @obj -> @data. Reviewed-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit e65177a87f22b98b3b82433d05a18a2c4a3714da Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Aug 23 14:38:55 2013 +0100 virtio: Remove unnecessary OBJECT() casts There's no need to cast the first argument of object_initialize() to Object. Remove these unnecessary casts. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 70392912eddf4e19801b2e96c0156fea634b4e59 Author: Peter Chubb <peter.chubb@xxxxxxxxxxxx> Date: Wed Aug 7 12:31:55 2013 +1000 object: Fix typo in qom/object.h There's been a cut-and-paste error, it looks like, in the documentation in qom/object.h. Signed-off-by: Peter Chubb <peter.chubb@xxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 4ff78e0dbcd5c795962567fdc1b31e9e03c55b07 Merge: b95fdc0 7ca0e06 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Fri Aug 30 12:26:04 2013 -0500 Merge remote-tracking branch 'luiz/queue/qmp' into staging # By Wenchao Xia (15) and Stefan Weil (1) # Via Luiz Capitulino * luiz/queue/qmp: monitor: improve auto complete of "help" for single command in sub group monitor: allow "help" show message for single command in sub group monitor: support sub command in auto completion monitor: refine monitor_find_completion() monitor: support sub command in help monitor: refine parse_cmdline() monitor: code move for parse_cmdline() monitor: avoid direct use of global variable *mon_cmds monitor: split off monitor_data_init() monitor: call sortcmdlist() only one time monitor: avoid use of global *cur_mon in readline_completion() monitor: avoid use of global *cur_mon in monitor_find_completion() monitor: avoid use of global *cur_mon in block_completion_it() monitor: avoid use of global *cur_mon in file_completion() monitor: avoid use of global *cur_mon in cmd_completion() monitor: Add missing attributes to local function Message-id: 1377865357-6742-1-git-send-email-lcapitulino@xxxxxxxxxx commit b95fdc0e99e9b5c98bb8e2aee9eaffe160f1031b Merge: b5d54bd 7f7f975 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Fri Aug 30 12:25:56 2013 -0500 Merge remote-tracking branch 'borntraeger/tags/kdump' into staging This is a set of patches dealing with kdump support for s390x/kvm. kdump on s390x uses subcode 1 of diagnose 0x308 to put the hardware in a defined state. This is different from a full reset, since it does not touch all CPU registers. These patches define the cpu resets, the subsystem reset a load function and also wires up the "nmi" command to issue a RESTART interrupt as defined in the z/Architecture principles of operation. This allows recent guest kernels with properly setup userspace to trigger kdump: - via guest crash - via nmi from the host # gpg: Signature made Fri 30 Aug 2013 07:19:18 AM CDT using RSA key ID B5A61C7C # gpg: Can't check signature: public key not found # By Christian Borntraeger (5) and Eugene (jno) Dvurechenski (2) # Via Christian Borntraeger * borntraeger/tags/kdump: s390: wire up nmi command to raise a RESTART interrupt on S390 s390: Implement load normal reset s390/cpu: split CPU reset into architectured functions s390: provide a cpu load normal function s390: provide I/O subsystem reset s390/kvm: basic implementation of diagnose 308 subcode 6 s390x/kvm: Fix switch/case indentation for handle_diag Message-id: 1377810649-47484-1-git-send-email-borntraeger@xxxxxxxxxx commit e23e400ec62a03dea58ddb38479b4f1ef86f556d Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 14:34:28 2013 +0200 qcow2-refcount: Repair OFLAG_COPIED errors Since the OFLAG_COPIED checks are now executed after the refcounts have been repaired (if repairing), it is safe to assume that they are correct but the OFLAG_COPIED flag may be not. Therefore, if its value differs from what it should be (considering the according refcount), that discrepancy can be repaired by correctly setting (or clearing that flag. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 4f6ed88c03c4026e31ce152ea760a0da839f0dda Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 14:34:27 2013 +0200 qcow2-refcount: Move OFLAG_COPIED checks Move the OFLAG_COPIED checks out of check_refcounts_l1 and check_refcounts_l2 and after the actual refcount checks/fixes (since the refcounts might actually change there). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit cf93980e775b709ec8f33f55846e6dcf1c7a612c Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 14:34:26 2013 +0200 qcow2: Employ metadata overlap checks The pre-write overlap check function is now called before most of the qcow2 writes (aborting it on collision or other error). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit a40f1c2add4d5f58d594f810fe36cabcf32bc4b0 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 14:34:25 2013 +0200 qcow2: Metadata overlap checks Two new functions are added; the first one checks a given range in the image file for overlaps with metadata (main header, L1 tables, L2 tables, refcount table and blocks). The second one should be used immediately before writing to the image file as it calls the first function and, upon collision, marks the image as corrupt and makes the BDS unusable, thereby preventing further access. Both functions take a bitmask argument specifying the structures which should be checked for overlaps, making it possible to also check metadata writes against colliding with other structures. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 69c98726537627e708abb8fcb33e3a2b10e40bf1 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 14:34:24 2013 +0200 qcow2: Add corrupt bit This adds an incompatible bit indicating corruption to qcow2. Any image with this bit set may not be written to unless for repairing (and subsequently clearing the bit if the repair has been successful). Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 449df7063815489a0b091bcb3afa9ae80ae3acbf Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 10:40:15 2013 +0200 qemu-iotests: Snapshotting zero clusters This test creates an image with unallocated zero clusters, then creates a snapshot. Afterwards, there should be neither any errors nor leaks. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 8b81a7b6ba8686f35f9cb0acdd54004d63206f03 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Fri Aug 30 10:40:14 2013 +0200 qcow2-refcount: Snapshot update for zero clusters Account for all cluster types in qcow2_update_snapshot_refcounts; this prevents this function from updating the refcount of unallocated zero clusters which effectively led to wrong adjustments of the refcount of cluster 0 (the main qcow2 header). This in turn resulted in images with (unallocated) zero clusters having a cluster 0 refcount greater than one after creating a snapshot. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit d4ca092a423f1f853a99357bab01a168bb57d625 Author: Max Reitz <mreitz@xxxxxxxxxx> Date: Thu Aug 29 11:15:44 2013 +0200 option: Add assigned flag to QEMUOptionParameter Adds an "assigned" flag to QEMUOptionParameter which is cleared at the beginning of parse_option_parameters and set on (successful) set_option_parameter and set_option_parameter_int. Signed-off-by: Max Reitz <mreitz@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9faa574f7d07109e2256c0b4b63e8711d650f2d8 Author: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 13:45:41 2013 +0530 gluster: Abort on AIO completion failure Currently if gluster AIO callback thread fails to notify the QEMU thread about AIO completion, we try graceful recovery by marking the disk drive as inaccessible. This error recovery code is race-prone as found by Asias and Stefan. However as found out by Paolo, this kind of error is impossible and hence simplify the code that handles this error recovery. Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e5b1d99f5528315dc77aab369ae060d7cbad1e2a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Aug 28 15:15:52 2013 +0200 block: Remove old raw driver This is unused code now. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 7a6d3fc594d1166ec78a6b74ba76753078de0de5 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Wed Aug 21 12:41:23 2013 +0200 switch raw block driver from "raw.o" to "raw_bsd.o" "Incoming" function prototypes and "outgoing" function calls must match reality. Implemented using the "struct BlockDriver" definition in "include/block/block_int.h", and gcc errors & warnings. v1->v2: On 08/20/13 09:51, Kevin Wolf wrote: > Am 18.08.2013 um 16:29 hat Paolo Bonzini geschrieben: >> Il 16/08/2013 16:15, Laszlo Ersek ha scritto: >>> +static int raw_reopen_prepare(BDRVReopenState *reopen_state, >>> + BlockReopenQueue *queue, Error **errp) >>> { >>> - return bdrv_reopen_prepare(bs->file); >>> + BDRVReopenState tmp = *reopen_state; >>> + >>> + tmp.bs = tmp.bs->file; >>> + return bdrv_reopen_prepare(&tmp, queue, errp); >>> } >> >> This should just return zero, my fault. > > Which is because bdrv_reopen_queue() already queues bs->file for reopen. > The simple return 0; implementation is shared by all other format drivers > that support reopening images. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 775d6afd5cd66f2154a81f5de9d3dd7297a35072 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Wed Aug 21 12:41:22 2013 +0200 raw_bsd: register bdrv_raw On 08/05/13 15:03, Paolo Bonzini wrote: > > [...] > > 5) Formats are registered with bdrv_register (takes a BlockDriver*). You > also need to pass the caller of bdrv_register to block_init. Fill in the BlockDriver structure with the raw_*() functions that have been added to "block/raw_bsd.c", in the order the fields are defined in "include/block/block_int.h". I needed more explanation / naming examples for registering the driver than what Paolo gave me, so I copied / adapted from "block/qcow2.c". The parts I took as basis for modification are blamed on commit 5efa9d5a8b18841c9c62208a494d7f519238979a Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Sat May 9 17:03:42 2009 -0500 Convert block infrastructure to use new module init functionality commit 20d97356c9df6d68fbd37d6334fdb7063f24eab6 Author: Blue Swirl <blauwirbel@xxxxxxxxx> Date: Fri Apr 23 20:19:47 2010 +0000 Fix OpenBSD build Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit ff369a483df89cc6ca510b0c3ab9afe9cf0bdfdc Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Wed Aug 21 12:41:21 2013 +0200 raw_bsd: add raw_create_options On 08/05/13 15:03, Paolo Bonzini wrote: > > [...] > > 4) There is another member, .create_options, which is an array of > QEMUOptionParameter structs, terminated by an all-zero item. The only > option you need is for the virtual disk size. You will find something > to copy from in other block drivers, for example block/qcow2.c. Code taken and adapted from "block/qcow2.c", as suggested. The code being copied/modified is blamed on commit 20d97356c9df6d68fbd37d6334fdb7063f24eab6 Author: Blue Swirl <blauwirbel@xxxxxxxxx> Date: Fri Apr 23 20:19:47 2010 +0000 Fix OpenBSD build and commit 7c80ab3f21f0b1342f23057d4345ae266c7348d9 Author: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx> Date: Fri Dec 17 16:02:39 2010 +0100 block/qcow2.c: rename qcow_ functions to qcow2_ Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 01dd96d8f4f253ee29b4e0362a73c5f43bdc0b18 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Wed Aug 21 12:41:20 2013 +0200 raw_bsd: introduce "special members" On 08/05/13 15:03, Paolo Bonzini wrote: > > [...] > > 3) These members are special > > .format_name is the string "raw" > .bdrv_open raw_open should set bs->sg to bs->file->sg and return 0 > .bdrv_close raw_close should do nothing > .bdrv_probe raw_probe should just return 1. v1->v2: On 08/20/13 10:11, Kevin Wolf wrote: > Am 16.08.2013 um 16:15 hat Laszlo Ersek geschrieben: >> +static int raw_probe(void) >> +{ >> + return 1; >> +} > > Maybe add a comment here like "smallest possible positive score so that > raw is used if and only if no other block driver works". Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 1565262c370195f1d7781d98f78fa002ab16b385 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Wed Aug 21 12:41:19 2013 +0200 raw_bsd: add raw_create() On 08/05/13 15:03, Paolo Bonzini wrote: > > [...] > > 2) This is also a simple forwarder function: > > .bdrv_create > > but there is no BlockDriverState argument so the forwarded-to function > does not have a bs->file argument either. The forwarded-to function is > bdrv_create_file. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9eaafd90d14b6049cc1d0e0b6c712459d447363c Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Wed Aug 21 12:41:18 2013 +0200 raw_bsd: emit debug events in bdrv_co_readv() and bdrv_co_writev() On 08/05/13 15:03, Paolo Bonzini wrote: > > [...] > > 1) BlockDriver is a struct in which these function members are > interesting: > > .bdrv_reopen_prepare > .bdrv_co_readv > .bdrv_co_writev > .bdrv_co_is_allocated > .bdrv_co_write_zeroes > .bdrv_co_discard > .bdrv_getlength > .bdrv_get_info > .bdrv_truncate > .bdrv_is_inserted > .bdrv_media_changed > .bdrv_eject > .bdrv_lock_medium > .bdrv_ioctl > .bdrv_aio_ioctl > .bdrv_has_zero_init > > They should be implemented as simple forwarders (see above). There are > 16 functions listed here, you can easily see how this already accounts > for 100+ SLOC roughly... > > The implementations of bdrv_co_readv and bdrv_co_writev should also call > BLKDBG_EVENT on bs->file too, before forwarding to bs->file. The events > to be generated are BLKDBG_READ_AIO and BLKDBG_WRITE_AIO. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit e1c66c6d82fe5988d66531febc27ef8480c44c8a Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Wed Aug 21 12:41:17 2013 +0200 add skeleton for BSD licensed "raw" BlockDriver On 08/05/13 15:03, Paolo Bonzini wrote: > > > ----- Original Message ----- >> From: "Laszlo Ersek" <lersek@xxxxxxxxxx> >> To: "Paolo Bonzini" <pbonzini@xxxxxxxxxx> >> Sent: Monday, August 5, 2013 2:43:46 PM >> Subject: Re: [PATCH 1/2] raw: add license header >> >> On 08/02/13 00:27, Paolo Bonzini wrote: >>> On 08/01/2013 10:13 AM, Christoph Hellwig wrote: >>>> On Wed, Jul 31, 2013 at 08:19:51AM +0200, Paolo Bonzini wrote: >>>>> Most of the block layer is under the BSD license, thus it is >>>>> reasonable to license block/raw.c the same way. CCed people should >>>>> ACK by replying with a Signed-off-by line. >>>> >>>> The coded was intended to be GPLv2. >>> >>> Laszlo, would you be willing to do clean-room reverse engineering? >>> >>> (No rants, please. :)) >> >> What's the scope exactly? > > It's quite small, it's a file full of forwarders like > > static void raw_foo(BlockDriverState *bs) > { > return bdrv_foo(bs->file); > } > > It's 170 lines of code, all as boring as this. I only picked you > because I'm quite certain you have never seen the file (and the answer > confirmed it). > > Basically: > > 1) BlockDriver is a struct in which these function members are > interesting: > > .bdrv_reopen_prepare > .bdrv_co_readv > .bdrv_co_writev > .bdrv_co_is_allocated > .bdrv_co_write_zeroes > .bdrv_co_discard > .bdrv_getlength > .bdrv_get_info > .bdrv_truncate > .bdrv_is_inserted > .bdrv_media_changed > .bdrv_eject > .bdrv_lock_medium > .bdrv_ioctl > .bdrv_aio_ioctl > .bdrv_has_zero_init > > They should be implemented as simple forwarders (see above). > There are 16 functions listed here, you can easily see how this > already accounts for 100+ SLOC roughly... > > The implementations of bdrv_co_readv and bdrv_co_writev should also > call BLKDBG_EVENT on bs->file too, before forwarding to bs->file. The > events to be generated are BLKDBG_READ_AIO and BLKDBG_WRITE_AIO. > > 2) This is also a simple forwarder function: > > .bdrv_create > > but there is no BlockDriverState argument so the forwarded-to function > does not have a bs->file argument either. The forwarded-to function > is bdrv_create_file. > > 3) These members are special > > .format_name is the string "raw" > .bdrv_open raw_open should set bs->sg to bs->file->sg and return 0 > .bdrv_close raw_close should do nothing > .bdrv_probe raw_probe should just return 1. > > 4) There is another member, .create_options, which is an array of > QEMUOptionParameter structs, terminated by an all-zero item. The only > option you need is for the virtual disk size. You will find something > to copy from in other block drivers, for example block/qcow2.c. > > 5) Formats are registered with bdrv_register (takes a BlockDriver*). > You also need to pass the caller of bdrv_register to block_init. > > 6) I'm not sure how to organize the patch series, so I'll leave this to > your creativity. I guess in this case move/copy detection of git should > be disabled. I would definitely include this spec in the commit > message as a proof of clean-room reverse engineering. > > 7) Remember a BSD header like the one in block.c. > > Paolo This patch implements the email up to the paragraph ending with "100+ SLOC roughly". The skeleton is generated from the list there, with a simple shell loop using "sed" and the raw_foo() template. The BSD license block is copied (and reflowed) from "util/qemu-progress.c". Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 127c84e1a52f11bf418cc2d3bf804da5091a190a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Aug 23 17:35:45 2013 +0100 block/qcow2.h: Avoid "1LL << 63" (shifts into sign bit) The expression "1LL << 63" tries to shift the 1 into the sign bit of a 'long long', which provokes a clang sanitizer warning: runtime error: left shift of 1 by 63 places cannot be represented in type 'long long' Use "1ULL << 63" as the definition of QCOW_OFLAG_COPIED instead to avoid this. For consistency, we also update the other QCOW_OFLAG definitions to use the ULL suffix rather than LL, though only the shift by 63 is undefined behaviour. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit cccc30b4ad5d9835f5525d94210c8de26f4f5f94 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Aug 28 16:12:20 2013 +0200 qemu-iotests: Update reference output for 051 Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit c0447d870b25cd95af2630ab3d376321bd6e820a Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Wed Aug 28 09:50:40 2013 +0200 Revert "block: Disable driver-specific options for 1.6" This reverts commit 8afaefb8919dc8746a57c450a758717c516c7b0a. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 015370301fd90ea5d17522eba00ae2797569ce8b Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Tue Jul 2 12:18:18 2013 +0200 qapi-types.py: Split off generate_struct_fields() Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 09da4a72926e2d0af0e5f0cb967ab0dd345311f4 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Apr 15 10:59:42 2013 +0200 block: Remove redundant assertion The failing condition is checked immediately before the assertion, so keeping the assertion is kind of redundant. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> commit 9117b47717ad208b12786ce88eacb013f9b3dd1c Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Aug 19 10:38:01 2013 +0200 qcow2: Change default for new images to compat=1.1 By the time that qemu 1.7 will be released, enough time will have passed since qemu 1.1, which is the first version to understand version 3 images, that changing the default shouldn't hurt many people any more and the benefits of using the new format outweigh the pain. qemu-iotests already runs with compat=1.1 by default. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> commit 7f7f975295bc19829b3bd26cadc7f1c9eadb7c6b Author: Eugene (jno) Dvurechenski <jno@xxxxxxxxxxxxxxxxxx> Date: Wed Dec 5 15:50:07 2012 +0100 s390: wire up nmi command to raise a RESTART interrupt on S390 There is the 'nmi' command that is used to trigger a guest dump via kdump feature on x86. s390 uses RESTART interrupt to trigger kdump. So, this patch provides a mean to use 'nmi' command on s390 to raise RESTART interrupt. The CPU to receive the RESTART interrupt is the "default" one. There is an infrastructure to select the "default" CPU using 'cpu' command. The 'info cpus' command can be used to see which one is the "default". In order to wire up the RESTART to 'nmi' command we had to: 1. implement the kvm_s390_cpu_restart function by exporting the existing code 2. implement s390_cpu_restart function as kvm-aware wrapper 3. modify the qmp_inject_nmi function to enable (for s390) the scan for "default" CPU and call s390_cpu_restart for it; 3. fix some messages. Signed-off-by: Eugene (jno) Dvurechenski <jno@xxxxxxxxxxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> commit f077847572708bbb3dd22bbc91ac6a277046e827 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Thu Jul 25 16:57:45 2013 +0200 s390: Implement load normal reset kdump on s390 uses a load normal reset to bring the system in a defined state by doing a subsystem reset. The issuing CPUs will have an initial CPU reset, all other CPUs will have a CPU reset as defined in POP (no register content will change). Implement this as architectured. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit f5ae2a4fd8d573cfebaf24220e2920bb5074d9a6 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Fri Jun 28 10:51:09 2013 +0200 s390/cpu: split CPU reset into architectured functions s390 provides several CPU resets: - CPU reset, clears interrupts, stop processing, clears TLB, but does not touch registers - initial CPU reset, like CPU reset, but also clears PSW, prefix, FPC, timer and control registers. It does not touch gprs, fprs and acrs (!) - Power on reset: the full monty wire up CPUClass reset to the full monty, but provide the lesser resets as part of S390CPUClass. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit 7ca0e061044615e39eab2b22b8fc2791a4d77c34 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:27 2013 +0800 monitor: improve auto complete of "help" for single command in sub group Now special case "help *" in auto completion can work with sub commands, such as "help info u*". Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 129be006d63ba90b788de6b1610892e02ef5eaba Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:26 2013 +0800 monitor: allow "help" show message for single command in sub group A new parameter type 'S' is introduced to allow user input any string. "help info block" works normal now. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d903a779cf2f1fa5cd12076411a00b835f1b7b26 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:25 2013 +0800 monitor: support sub command in auto completion This patch allows auto completion work normal for sub command case, "info block [DEVICE]" can auto complete now, by re-enter the completion function. In original code "info" is treated as a special case, now it is treated as a sub command group, global variable info_cmds is not used any more. "help" command is still treated as a special case, since it is not a sub command group but want to auto complete command in root command table. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit c35b6400338897847bbab1b0f65d89552636579a Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:24 2013 +0800 monitor: refine monitor_find_completion() In order to support sub command in auto completion, a reentrant function is needed, so monitor_find_completion() is split into two parts. The first part does parsing of user input which need to be done only once, the second part does the auto completion job according to the parsing result, which contains the necessary code to support sub command and works as the reentrant function. The global "info_cmds" is still used in second part, which will be replaced by sub command code later. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 66855495fbcca9411a21e6eba6a3a0385007c96d Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:23 2013 +0800 monitor: support sub command in help The old code in help_cmd() uses global 'info_cmds' and treats it as a special case. Actually 'info_cmds' is a sub command group of 'mon_cmds', in order to avoid direct use of it, help_cmd() needs to change its work mechanism to support sub command and not treat it as a special case any more. To support sub command, help_cmd() will first parse the input and then call help_cmd_dump(), which works as a reentrant function. When it meets a sub command, it simply enters the function again. Since help dumping needs to know whole input to printf full help message include prefix, for example, "help info block" need to printf prefix "info", so help_cmd_dump() takes all args from input and extra parameter arg_index to identify the progress. Another function help_cmd_dump_one() is introduced to printf the prefix and command's help message. Now help supports sub command, so later if another sub command group is added in any depth, help will automatically work for it. Still "help info block" will show error since command parser reject additional parameter, which can be improved later. "log" is still treated as a special case. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit dcc70cdf0932172fc5cf27617a3b033ca58d0176 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:22 2013 +0800 monitor: refine parse_cmdline() Since this function will be used by help_cmd() later, so improve it to make it more generic and easier to use. free_cmdline_args() is added too as paired function to free the result. One change of this function is that, when the valid args in input exceed the limit of MAX_ARGS, it fails now, instead of return with MAX_ARGS of parsed args in old code. This should not impact much since it is rare that user input many args in monitor's "help" and auto complete scenario. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit f5438c0500bb22c97b30987d2e0eab953416c7c5 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:21 2013 +0800 monitor: code move for parse_cmdline() help_cmd() need this function later, so move it. get_str() is called by parse_cmdline() so it is moved also. Some code style error reported by check script, is also fixed. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 7717239dc1778e94a6210e62e1ec2ba720168eec Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:20 2013 +0800 monitor: avoid direct use of global variable *mon_cmds New member *cmd_table is added in structure Monitor to avoid direct usage of *mon_cmds. Now monitor have an associated command table, when global variable *info_cmds is also discarded, structure Monitor would gain full control about how to deal with user input. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit b01fe89e91268c6b02720735643020746610e6d8 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:19 2013 +0800 monitor: split off monitor_data_init() In qmp_human_monitor_command(), the monitor need to initialized for basic functionalities, and later more init code will be added, so split off this function. Note that it is different with QMP mode monitor which accept json string from monitor's input, qmp_human_monitor_command() retrieve the human style command from QMP input, then send the command to a normal mode monitor. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d038317c357efef9d8d362e526c5f5071f505a04 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:18 2013 +0800 monitor: call sortcmdlist() only one time It doesn't need to be done for every monitor, so change it. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d1a9756ab8c2c2578cbcb325efffe0b0af916944 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:17 2013 +0800 monitor: avoid use of global *cur_mon in readline_completion() Now all completion functions do not use *cur_mon any more, instead they use rs->mon. In short, structure ReadLineState decide where the complete action would be taken now. Tested with the case that qemu have two telnet monitors, auto completion function works normal. Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d2674b2cf7db7dce865f3c2b89f0e36d1657a3b5 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:16 2013 +0800 monitor: avoid use of global *cur_mon in monitor_find_completion() Parameter *mon is added, and local variable *mon added in previous patch is removed. The caller readline_completion(), pass rs->mon as value, which should be initialized in readline_init() called by monitor_init(). Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 599a926abcf581732d449163a96fd9a4cc80091a Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:15 2013 +0800 monitor: avoid use of global *cur_mon in block_completion_it() Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit cb8f68b104f8d14f0ad856012cac7bd27f183799 Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:14 2013 +0800 monitor: avoid use of global *cur_mon in file_completion() Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit cd5c6bba1b75d4faebb58345d2661d5e42600fab Author: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Date: Tue Aug 27 20:38:13 2013 +0800 monitor: avoid use of global *cur_mon in cmd_completion() A new local variable *mon is added in monitor_find_completion() to make compile pass, which will be removed later in conversion patch for monitor_find_completion(). Signed-off-by: Wenchao Xia <xiawenc@xxxxxxxxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 9c3175cc15fbe8d3528375d1389dad40b19b7665 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Thu Aug 22 21:30:09 2013 +0200 monitor: Add missing attributes to local function Function expr_error gets a format string and variable arguments like printf. It also never returns. Add the necessary attributes. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 29c6157ca7bfa036a8c59805c1a1d76ba9a2a851 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Thu Jul 25 16:45:51 2013 +0200 s390: provide a cpu load normal function Some code needs to perform an IPL-like bootup that mimics the ESA (31bit) restart. Provide a cpu class method that does so. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> commit 4e872a3fb024f0d742ef6b48be3afaab2c4453fc Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Thu Jul 25 16:37:37 2013 +0200 s390: provide I/O subsystem reset Provide a function that resets the I/O subsystem. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> commit 268846ba93de2529630d623b6ded72cee1221106 Author: Eugene (jno) Dvurechenski <jno@xxxxxxxxxxxxxxxxxx> Date: Wed Jun 19 17:27:15 2013 +0200 s390/kvm: basic implementation of diagnose 308 subcode 6 Linux uses a check for subcode 6 to decide if other subcodes are available. Provide a minimal implementation for subcode 6, as well as for subcode 5. Signed-off-by: Eugene (jno) Dvurechenski <jno@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> [Move code from kvm.c into misc_helper.c] commit 39fbc5c62ce83f34e7f5b62238305d83ce8b4489 Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> Date: Fri Aug 30 11:06:56 2013 +0200 s390x/kvm: Fix switch/case indentation for handle_diag This alignes case statements to switch statements in the handle_diag function as mandated by coding style. Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> commit b5d54bd42158b90b239bb6ce9c13072eb3a53fd2 Merge: e560992 821c808 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Aug 29 17:21:51 2013 -0500 Merge remote-tracking branch 'qemu-kvm/uq/master' into stable-1.5 * qemu-kvm/uq/master: kvm-stub: fix compilation kvm: shorten the parameter list for get_real_device() kvm: i386: fix LAPIC TSC deadline timer save/restore kvm-all.c: max_cpus should not exceed KVM vcpu limit kvm: Simplify kvm_handle_io kvm: x86: fix setting IA32_FEATURE_CONTROL with nested VMX disabled kvm: add KVM_IRQFD_FLAG_RESAMPLE support kvm: migrate vPMU state target-i386: remove tabs from target-i386/cpu.h Initialize IA32_FEATURE_CONTROL MSR in reset and migration Conflicts: target-i386/cpu.h target-i386/kvm.c aliguori: fixup trivial conflicts due to whitespace and added cpu argument Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit e560992f21437380857ae490c907810d99459df5 Merge: 3e998a7 92f1623 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Aug 29 17:20:17 2013 -0500 Merge remote-tracking branch 'sweil/mingw' into stable-1.5 # By Stefan Weil # Via Stefan Weil * sweil/mingw: gtk: Remove unused include statements which are not portable w32: Add an icon resource w32: Fix broken out-of-tree builds (missing version.o) Message-id: 1377607132-21336-1-git-send-email-sw@xxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 3e998a778846de4ea24188278f18e4191a56412e Merge: 584950f 1ae2757 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Aug 29 17:19:19 2013 -0500 Merge remote-tracking branch 'mst/tags/for_anthony' into stable-1.5 pc,pci,virtio fixes and cleanups This includes pc and pci cleanups, future-proofing of ROM files, and a virtio bugfix correcting splice on virtio console. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> # gpg: Signature made Mon 26 Aug 2013 01:34:20 AM CDT using RSA key ID D28D5469 # gpg: Can't check signature: public key not found # By Markus Armbruster (5) and others # Via Michael S. Tsirkin * mst/tags/for_anthony: virtio: virtqueue_get_avail_bytes: fix desc_pa when loop over the indirect descriptor table pc_piix: Kill pc_init1() memory region args pc: pc_compat_1_4() now can call pc_compat_1_5() pc: Create pc_compat_*() functions pc: Kill pc_init_pci_1_0() pc: Don't explode QEMUMachineInitArgs into local variables needlessly pc: Don't prematurely explode QEMUMachineInitArgs ppc: Don't duplicate QEMUMachineInitArgs in PPCE500Params ppc: Don't explode QEMUMachineInitArgs into local variables needlessly sun4: Don't prematurely explode QEMUMachineInitArgs q35: Add PCIe switch to example q35 configuration loader: store FW CFG ROM files in RAM arch_init: align MR size to target page size pc: cleanup 1.4 compat support Message-id: 1377535318-30491-1-git-send-email-mst@xxxxxxxxxx commit 584950fd4e4d6ca580800e46f1b41cf1b0b4236c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Aug 29 08:21:37 2013 -0700 tcg-i386: Remove abort from GETPC_LDST Indeed, remove it entirely and remove the is_tcg_gen_code check from GETPC_EXT. Fixes https://bugs.launchpad.net/qemu/+bug/1218098 wherein a call to a "normal" helper function performed a sequence of tail calls all the way into the memory helper functions, leading to a stack frame in which the memory helper function appeared to be called directly from tcg. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 951fab990db05d47ab9da5e72521e406c73a3eb9 Author: James Hogan <james.hogan@xxxxxxxxxx> Date: Tue Aug 27 17:48:36 2013 +0100 target-mips: fix get_physical_address() #if 0 build error In get_physical_address() is a qemu_log() call inside an #if 0 block. When enabled the following build error is hit: target-mips/helper.c In function â??get_physical_addressâ??: target-mips/helper.c:220:13: error: format â??%xâ?? expects argument of type â??unsigned intâ??, but argument 5 has type â??hwaddrâ?? [-Werror=format] Fix the *physical (hwaddr) formatting by using "%"HWADDR_PRIx instead of TARGET_FMT_lx. Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx> Cc: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Yongbok Kim <yongbok.kim@xxxxxxxxxx> Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> commit 821c808bd1863efc2c1e977800ae77db633a185c Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Aug 27 17:13:44 2013 +0200 kvm-stub: fix compilation Non-KVM targets fail compilation on the uq/master branch. Fix the prototype of kvm_irqchip_add_irqfd_notifier to match the one in kvm-all.c. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> commit c16547326988cc321c9bff43ed91cbe753e52892 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 13:13:50 2013 +0200 hw: Clean up bogus default boot order We set default boot order "cad" in every single machine definition except "pseries" and "moxiesim", even though very few boards actually care for boot order, and "cad" makes sense for even fewer. Machines that care: * pc and its variants Accept up to three letters 'a', 'b' (undocumented alias for 'a'), 'c', 'd' and 'n'. Reject all others (fatal with -boot). * nseries (n800, n810) Check whether order starts with 'n'. Silently ignored otherwise. * prep, g3beige, mac99 Extract the first character the machine understands (subset of 'a'..'f'). Silently ignored otherwise. * spapr Accept an arbitrary string (vl.c restricts it to contain only 'a'..'p', no duplicates). * sun4[mdc] Use the first character. Silently ignored otherwise. Strip characters these machines ignore from their default boot order. For all other machines, remove the unused default boot order alltogether. Note that my rename of QEMUMachine member boot_order to default_boot_order and QEMUMachineInitArgs member boot_device to boot_order has a welcome side effect: it makes every use of boot orders visible in this patch, for easy review. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 3bf4dfdd1110de84ca0cecff0679cf7da90bfbfe Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Wed Aug 21 14:42:06 2013 +1000 pci: add config space access traces This adds pci_cfg_read and pci_cfg_write traces for config spaces accesses. Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 92f1623663a8797e68a043ec401a740746439f29 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sun Aug 18 09:26:34 2013 +0200 gtk: Remove unused include statements which are not portable These include files don't exist for MinGW and are not needed for Linux (and hopefully for other hosts as well), so remove them. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 487cddb2bf3f429953dc5b3252d2a3b83d7200c5 Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Sat Aug 17 09:32:04 2013 +0200 w32: Add an icon resource The QEMU mascot which was already used for the NSIS installer is now used for all QEMU executables. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> commit 7e75e33e7886314490305f181065b8b4ec916a8a Author: Stefan Weil <sw@xxxxxxxxxxx> Date: Fri Aug 16 21:51:53 2013 +0200 w32: Fix broken out-of-tree builds (missing version.o) Commit 0b516ef0dfad9a7b34c675c98e8ec92ab4d38466 added version.o to all executables, but broke out-of-tree builds: for those builds the pattern rule %.o: %.rc from rules.mak does not match, so version.o was no longer built. Adding explicit build rules fixes this. Reported-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> Tested-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> commit 1466cef32dd5e7ef3c6477e96d85d92302ad02e3 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Tue Aug 27 08:37:26 2013 +0300 pc: fix regression for 64 bit PCI memory commit 398489018183d613306ab022653552247d93919f pc: limit 64 bit hole to 2G by default introduced a way for management to control the window allocated to the 64 bit PCI hole. This is useful, but existing management tools do not know how to set this property. As a result, e.g. specifying a large ivshmem device with size > 4G is broken by default. For example this configuration no longer works: -device ivshmem,size=4294967296,chardev=cfoo -chardev socket,path=/tmp/sock,id=cfoo,server,nowait Fix this by detecting that hole size was not specified and defaulting to the backwards-compatible value of 1 << 62. Cc: qemu-stable@xxxxxxxxxx Cc: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 9eda7d373e9c691c070eddcbe3467b991f67f6bd Author: Alexey Kardashevskiy <aik@xxxxxxxxx> Date: Sat Aug 10 01:09:08 2013 +1000 pci: Introduce helper to retrieve a PCI device's DMA address space A PCI device's DMA address space (possibly an IOMMU) is returned by a method on the PCIBus. At the moment that only has one caller, so the method is simply open coded. We'll need another caller for VFIO, so this patch introduces a helper/wrapper function. If IOMMU is not set, the pci_device_iommu_address_space() function returns the parent's IOMMU skipping the "bus master" address space as otherwise proper emulation would require more effort for no benefit. Signed-off-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> [aik: added inheritance from parent if iommu is not set for the current bus] Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 401c227b0a1134245ec61c6c5a9997cfc963c8e4 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Jul 25 07:16:52 2013 -1000 tcg-i386: Use new return-argument ld/st helpers Discontinue the jump-around-jump-to-jump scheme, trading it for a single immediate move instruction. The two extra jumps always consume 7 bytes, whereas the immediate move is either 5 or 7 bytes depending on where the code_gen_buffer gets located. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit aac1fb0576e5bea72681e91c38caffc17741eb80 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Jul 26 08:29:15 2013 -1000 tcg: Tidy softmmu_template.h Avoid a loop in the tlb_fill path; the fill will either succeed or generate an exception. Inline the slow_ld/st function; it was a complete copy of the main helper except for the actual cross-page unaligned code, and the compiler was inlining it anyway. Add unlikely markers optimizing for the most common case of simple tlb miss. Make sure the compiler can optimize away the unaligned paths for a 1 byte access. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit e25c3887e6ac50e7a0c42a2f597b088a27d5bb5d Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Jul 24 14:54:12 2013 -1000 tcg: Add mmu helpers that take a return address argument Allow the code that tcg generates to be less obtuse, passing in the return address directly instead of computing it in the helper. Maintain the old entrance point unchanged as an alternate entry point. Delete the helper_st*_cmmu prototypes; the implementations did not exist. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit c6f29ff096d9e956df94db20fe49275c35f601fb Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Jul 25 06:33:33 2013 -1000 tcg-i386: Tidy qemu_ld/st slow path Use existing stack space for arguments; don't push/pop. Use less ifdefs and more C ifs. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 8023ccda079624221e618efeb537b41c70407469 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Jul 25 10:00:41 2013 -1000 tcg-i386: Try pc-relative lea for constant formation Use a 7 byte lea before the ultimate 10 byte movq. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ac26eb69a311396668809eadbf7ff4e623447d4c Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Thu Jul 25 09:42:17 2013 -1000 tcg-i386: Add and use tcg_out64 No point in splitting the write into 32-bit pieces. Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 2bb8656dadcaa521a9699ab2a2632b68da36c998 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Wed Aug 14 09:46:38 2013 -0700 tcg: Tidy generated code for tcg_outN Aliasing was forcing s->code_ptr to be re-read after the store. Keep the pointer in a local variable to help the compiler. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit f7ad538e1ea130c8b6f3abb06ad6c856242c799e Merge: e3f024a b10577d Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Aug 26 09:19:50 2013 -0500 Merge remote-tracking branch 'stefanha/block' into staging # By Alex Bligh (32) and others # Via Stefan Hajnoczi * stefanha/block: (42 commits) win32-aio: drop win32_aio_flush_cb() aio-win32: replace incorrect AioHandler->opaque usage with ->e aio / timers: remove dummy_io_handler_flush from tests/test-aio.c aio / timers: Remove legacy interface aio / timers: Switch entire codebase to the new timer API aio / timers: Add scripts/switch-timer-api aio / timers: Add test harness for AioContext timers aio / timers: convert block_job_sleep_ns and co_sleep_ns to new API aio / timers: Convert rtc_clock to be a QEMUClockType aio / timers: Remove main_loop_timerlist aio / timers: Rearrange timer.h & make legacy functions call non-legacy aio / timers: Add qemu_clock_get_ms and qemu_clock_get_ms aio / timers: Remove legacy qemu_clock_deadline & qemu_timerlist_deadline aio / timers: Remove alarm timers aio / timers: Add documentation and new format calls aio / timers: Use all timerlists in icount warp calculations aio / timers: Introduce new API timer_new and friends aio / timers: On timer modification, qemu_notify or aio_notify aio / timers: Convert mainloop to use timeout aio / timers: Convert aio_poll to use AioContext timers' deadline ... Message-id: 1377202298-22896-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit e3f024aec29a2e3eff46138687e2ecba7631c645 Merge: 42eed42 73c30df Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Aug 26 09:19:36 2013 -0500 Merge remote-tracking branch 'afaerber/tags/0.15-maintainer-for-anthony' into staging MAINTAINERS update for stable-0.15 # gpg: Signature made Thu 22 Aug 2013 10:59:31 AM CDT using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Andreas Färber # Via Andreas Färber * afaerber/tags/0.15-maintainer-for-anthony: MAINTAINERS: Take over 0.15 maintenance commit 1ae2757c6c4525c9b42f408c86818f843bad7418 Author: yinyin <yin.yin@xxxxxxxxxxx> Date: Thu Aug 22 14:47:16 2013 +0800 virtio: virtqueue_get_avail_bytes: fix desc_pa when loop over the indirect descriptor table virtqueue_get_avail_bytes: when found a indirect desc, we need loop over it. /* loop over the indirect descriptor table */ indirect = 1; max = vring_desc_len(desc_pa, i) / sizeof(VRingDesc); num_bufs = i = 0; desc_pa = vring_desc_addr(desc_pa, i); But, It init i to 0, then use i to update desc_pa. so we will always get: desc_pa = vring_desc_addr(desc_pa, 0); the last two line should swap. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Yin Yin <yin.yin@xxxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 42eed424e1ea6469ce73cb2fdddb0d31bebb686a Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 16 23:29:47 2013 -0700 disas-objdump: Pass --adjust-vma to objdump This gives the dumped blob its correct address during disassembly, which makes pc-relative insns much easier to interpret. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 8dc6d24091edc34be1f989a2d92703130760401f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 16 23:29:46 2013 -0700 disas: Add disas-objdump.pl The script massages the output produced for architectures that are not supported internally by qemu though an external objdump program for disassembly. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit c46ffd57a3e2c36c241b4c676aa7d9c706eb2dc3 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Aug 16 23:29:45 2013 -0700 disas: Implement fallback to dump object code as hex The OBJD-[HT] tags will be used by a script to run the hex blob through objdump --disassemble. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> commit 867c47cbba5d5ff8f27cc22634f30da56d09c2c4 Author: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx> Date: Thu Aug 22 18:40:12 2013 +0200 kvm: shorten the parameter list for get_real_device() get_real_device() has 5 parameters with the last 4 is contained in the first structure. This patch removes the last 4 parameters and directly use them from the first parameter. Acked-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Signed-off-by: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit b10577df13fa4a1b38ea6c1ea7b66c6dfd90a07a Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Aug 22 15:28:36 2013 +0200 win32-aio: drop win32_aio_flush_cb() The io_flush argument to qemu_aio_set_event_notifier() has been removed since the block layer learnt to drain requests by itself. Fix the Windows build for win32-aio.o by updating the qemu_aio_set_event_notifier() call and dropping win32_aio_flush_cb(). Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 8b2d42d273ed0df2a34cfa29f47bc1f8cc3abb26 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Aug 22 15:28:35 2013 +0200 aio-win32: replace incorrect AioHandler->opaque usage with ->e The AioHandler->opaque field does not exist in aio-win32.c. The code that uses it was incorrectly copied from aio-posix.c. For Windows we can use AioHandler->e to match against AioContext->notifier. This patch fixes the Windows build for aio-win32.o. Reviewed-by: Stefan Weil <sw@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 91c68f143d6e707c5783b162292dce38ae358c19 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Thu Aug 22 19:59:16 2013 +0100 aio / timers: remove dummy_io_handler_flush from tests/test-aio.c Remove dummy_io_handler_flush from tests/test-aio.c as it does nothing now. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b4049b74b97f30fe944c63b5f158ec9e87bd2593 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:09 2013 +0100 aio / timers: Remove legacy interface Remove the legacy interface from include/qemu/timers.h. Ensure struct QEMUClock is not exposed at all. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bc72ad67543f5c5d39c005ff0ca72da37642a1fb Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:08 2013 +0100 aio / timers: Switch entire codebase to the new timer API This is an autogenerated patch using scripts/switch-timer-api. Switch the entire code base to using the new timer API. Note this patch may introduce some line length issues. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit fe10ab540bcc2c5e4ac15ae686008c4a17a95c69 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:07 2013 +0100 aio / timers: Add scripts/switch-timer-api Add scripts/switch-timer-api to programatically rewrite source files to use the new timer system. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b53edf971f060389179b2935ca09e2cd9f9a728b Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:06 2013 +0100 aio / timers: Add test harness for AioContext timers Add a test harness for AioContext timers. The g_source equivalent is unsatisfactory as it suffers from false wakeups. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7483d1e54700156e4c22e2e1b5d85de6eb92fdcf Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:05 2013 +0100 aio / timers: convert block_job_sleep_ns and co_sleep_ns to new API Convert block_job_sleep_ns and co_sleep_ns to use the new timer API. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 884f17c235095af99b92dd8cd10bb824a5b0f777 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:04 2013 +0100 aio / timers: Convert rtc_clock to be a QEMUClockType Convert rtc_clock to be a QEMUClockType Move rtc_clock users to use the new API Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7bf8fbde449600926370f744b2b3d9cc819ca74f Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:03 2013 +0100 aio / timers: Remove main_loop_timerlist Now we have timerlistgroups implemented and main_loop_tlg, we no longer need the concept of a default timer list associated with each clock. Remove it and simplify initialisation of clocks and timer lists. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 40daca54cd94678273c81dca8c0adefa297da5ea Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:02 2013 +0100 aio / timers: Rearrange timer.h & make legacy functions call non-legacy Rearrange timer.h so it is in order by function type. Make legacy functions call non-legacy functions rather than vice-versa. Convert cpus.c to use new API. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 55a197dab4d26e6dcd2b539320b7daf68cf8c967 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:01 2013 +0100 aio / timers: Add qemu_clock_get_ms and qemu_clock_get_ms Add utility functions qemu_clock_get_ms and qemu_clock_get_us Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 63111b69cce420886ba7bfb8e367bd6c6969c1b6 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:03:00 2013 +0100 aio / timers: Remove legacy qemu_clock_deadline & qemu_timerlist_deadline Remove qemu_clock_deadline and qemu_timerlist_deadline now we are using the ns functions throughout. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6d327171551a12b937c5718073b9848d0274c74d Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:59 2013 +0100 aio / timers: Remove alarm timers Remove alarm timers from qemu-timers.c now we use g_poll / ppoll instead. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 54904d2a9165bd34dee0f076826b308be2498fe0 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:58 2013 +0100 aio / timers: Add documentation and new format calls Add documentation for existing qemu timer calls. Add new format calls of the format timer_XXX rather than qemu_XXX_timer for consistency. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ac70aafc28bec4d1014082f0c6659a368c5a95bd Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:57 2013 +0100 aio / timers: Use all timerlists in icount warp calculations Notify all timerlists derived from vm_clock in icount warp calculations. When calculating timer delay based on vm_clock deadline, use all timerlists. For compatibility, maintain an apparent bug where when using icount, if no vm_clock timer was set, qemu_clock_deadline would return INT32_MAX and always set an icount clock expiry about 2 seconds ahead. NB: thread safety - when different timerlists sit on different threads, this will need some locking. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit a3a726ae09cdf6d277ac88cd725cf50d5849db2c Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:56 2013 +0100 aio / timers: Introduce new API timer_new and friends Introduce new API for creating timers - timer_new and _ns, _ms, _us derivatives. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b1bbfe72ec1ebf302d97f886cc646466c0abd679 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:55 2013 +0100 aio / timers: On timer modification, qemu_notify or aio_notify On qemu_mod_timer_ns, ensure qemu_notify or aio_notify is called to end the appropriate poll(), irrespective of use_icount value. On qemu_clock_enable, ensure qemu_notify or aio_notify is called for all QEMUTimerLists attached to the QEMUClock. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7b595f35d89d73bc69c35bf3980a89c420e8a44b Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:54 2013 +0100 aio / timers: Convert mainloop to use timeout Convert mainloop to use timeout from default timerlist group (i.e. the current 3 static timers) main-loop.c produces a (possibly spurious) warning about multiple iterations. Adapt the way this works for a signed timeout and make the warning a bit safer. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 438e1f47e7db042a10458f70aaa6197aff5d84df Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:53 2013 +0100 aio / timers: Convert aio_poll to use AioContext timers' deadline Convert aio_poll to use deadline based on AioContext's timers. aio_poll has been changed to return accurately whether progress has occurred. Prior to this commit, aio_poll always returned true if g_poll was entered, whether or not any progress was made. This required a change to tests/test-aio.c where an assert was backwards. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4e29e8311a53025a06433382768b82111c0bb80c Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:52 2013 +0100 aio / timers: Add aio_timer_init & aio_timer_new wrappers Add aio_timer_init and aio_timer_new wrapper functions. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 533a8cf3506172fe1966abc6875c65494378321e Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:51 2013 +0100 aio / timers: aio_ctx_prepare sets timeout from AioContext timers Calculate the timeout in aio_ctx_prepare taking into account the timers attached to the AioContext. Alter aio_ctx_check similarly. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d5541d86806acc2e1a3cf9e1402370ba884e9fe1 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:50 2013 +0100 aio / timers: Add a notify callback to QEMUTimerList Add a notify pointer to QEMUTimerList so it knows what to notify on a timer change. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit dae21b98b973e8d878a92b44f70a51aa8d4c739b Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:49 2013 +0100 aio / timers: Add QEMUTimerListGroup to AioContext Add a QEMUTimerListGroup each AioContext (meaning a QEMUTimerList associated with each clock is added) and delete it when the AioContext is freed. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 754d6a544d044bddeef87e9a63b4f511f59f3c4e Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:48 2013 +0100 aio / timers: Add QEMUTimerListGroup and helper functions Add QEMUTimerListGroup and helper functions, to represent a QEMUTimerList associated with each clock. Add a default QEMUTimerListGroup representing the default timer lists which are not associated with any other object (e.g. an AioContext as added by future patches). Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 6a1751b7aad6e38e9d1ae6bcea72fa28bf6cc5fb Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:47 2013 +0100 aio / timers: Untangle include files include/qemu/timer.h has no need to include main-loop.h and doing so causes an issue for the next patch. Unfortunately various files assume including timers.h will pull in main-loop.h. Untangle this mess. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ff83c66eccf5b5f6b6530d504e3be41559250dcb Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:46 2013 +0100 aio / timers: Split QEMUClock into QEMUClock and QEMUTimerList Split QEMUClock into QEMUClock and QEMUTimerList so that we can have more than one QEMUTimerList associated with the same clock. Introduce a main_loop_timerlist concept and make existing qemu_clock_* calls that actually should operate on a QEMUTimerList call the relevant QEMUTimerList implementations, using the clock's default timerlist. This vastly reduces the invasiveness of this change and means the API stays constant for existing users. Introduce a list of QEMUTimerLists associated with each clock so that reenabling the clock can cause all the notifiers to be called. Note the code to do the notifications is added in a later patch. Switch QEMUClockType to an enum. Remove global variables vm_clock, host_clock and rt_clock and add compatibility defines. Do not fix qemu_next_alarm_deadline as it's going to be deleted. Add qemu_clock_use_for_deadline to indicate whether a particular clock should be used for deadline calculations. When use_icount is true, vm_clock should not be used for deadline calculations as it does not contain a nanosecond count. Instead, icount timeouts come from the execution thread doing aio_notify or qemu_notify as appropriate. This function is used in the next patch. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f9a976b7408f061fc7fc48b14d16797ed6f8fd97 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:45 2013 +0100 aio / timers: Make qemu_run_timers and qemu_run_all_timers return progress Make qemu_run_timers and qemu_run_all_timers return progress so that aio_poll etc. can determine whether a timer has been run. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit cd758dd0acaaf1f76f9727d4409915f3293db07a Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:44 2013 +0100 aio / timers: Add prctl(PR_SET_TIMERSLACK, 1, ...) to reduce timer slack Where supported, called prctl(PR_SET_TIMERSLACK, 1, ...) to set one nanosecond timer slack to increase precision of timer calls. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4e0c6529fcb5ccbed5eb2c4f094264eb447d49ea Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:43 2013 +0100 aio / timers: add ppoll support with qemu_poll_ns Add qemu_poll_ns which works like g_poll but takes a nanosecond timeout. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 73c30df69ce1f6767a7dba29b2411329de102847 Author: Andreas Färber <afaerber@xxxxxxx> Date: Fri Apr 13 17:54:02 2012 +0200 MAINTAINERS: Take over 0.15 maintenance SUSE is shipping qemu-kvm 0.15.1 with SLES 11 SP2 so we will be actively tracking all KVM-related issues. Therefore upgrade to Supported. Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 5211333bf77d5199d5f27cd306b2798d90a4c8fc Merge: 9fe4806 21e0043 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Aug 22 09:29:25 2013 -0500 Merge remote-tracking branch 'luiz/queue/qmp' into staging # By Laszlo Ersek (8) and others # Via Luiz Capitulino * luiz/queue/qmp: scripts/qapi.py: Avoid syntax not supported by Python 2.4 monitor: print the invalid char in error message OptsVisitor: introduce unit tests, with test cases for range flattening add "test-int128" and "test-bitops" to .gitignore OptsVisitor: don't try to flatten overlong integer ranges OptsVisitor: opts_type_uint64(): recognize intervals when LM_IN_PROGRESS OptsVisitor: rebase opts_type_uint64() to parse_uint_full() OptsVisitor: opts_type_int(): recognize intervals when LM_IN_PROGRESS OptsVisitor: introduce list modes for interval flattening OptsVisitor: introduce basic list modes Convert stderr message calling error_get_pretty() to error_report() Message-id: 1377015041-6567-1-git-send-email-lcapitulino@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 9fe480695ad8c9126ac8f318a0241e10aad7a25b Merge: ecfe10c 7717f24 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Thu Aug 22 09:29:13 2013 -0500 Merge remote-tracking branch 'jliu/or32' into staging # By Jia Liu # Via Jia Liu * jliu/or32: hw/openrisc: Avoid undefined shift in openrisc_pic_cpu_handler() hw/openrisc: Fix masking in openrisc_pic_cpu_handler() hw/openrisc: Avoid using uninitialised variable 'entry' Message-id: 1377050811-11116-1-git-send-email-proljc@xxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 043a7e1f8f66f3089ef0158aea00203e4591ba8d Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:42 2013 +0100 aio / timers: Consistent treatment of disabled clocks for deadlines Make treatment of disabled clocks consistent in deadline calculation Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 02a03a9f12ec2fe68c9fed84fa8607a5326e2b65 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:41 2013 +0100 aio / timers: add qemu-timer.c utility functions Add utility functions to qemu-timer.c for nanosecond timing. Add qemu_clock_deadline_ns to calculate deadlines to nanosecond accuracy. Add utility function qemu_soonest_timeout to calculate soonest deadline. Add qemu_timeout_ns_to_ms to convert a timeout in nanoseconds back to milliseconds for when ppoll is not used. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 58ac56b9ad53b006396523639bb7d7043edc56bf Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:40 2013 +0100 aio / timers: Rename qemu_new_clock and expose clock types Rename qemu_new_clock to qemu_clock_new. Expose clock types. Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e93379b039030c68d85693a4bee2b76f814108d2 Author: Alex Bligh <alex@xxxxxxxxxxx> Date: Wed Aug 21 16:02:39 2013 +0100 aio / timers: Rename qemu_timer_* functions Rename four functions in preparation for new API. Rename qemu_timer_expired to timer_expired Rename qemu_timer_expire_time_ns to timer_expire_time_ns Rename qemu_timer_pending to timer_pending Rename qemu_timer_expired_ns to timer_expired_ns Signed-off-by: Alex Bligh <alex@xxxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 04d542c8b826a1196ca4f03f5a35d83035976bd1 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Mon Aug 19 18:54:28 2013 +0800 vmdk: support vmfs files VMware ESX hosts also use different create and extent types for flat files, respectively "vmfs" and "VMFS". This is not documented, but it can be found at http://kb.vmware.com/kb/10002511 (Recreating a missing virtual machine disk (VMDK) descriptor file). Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit daac8fdc68c5f0118ce24fcac5873ddaa0d0c9f9 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Aug 19 18:54:27 2013 +0800 vmdk: support vmfsSparse files VMware ESX hosts use a variant of the VMDK3 format, identified by the vmfsSparse create type ad the VMFSSPARSE extent type. It has 16 KB grain tables (L2) and a variable-size grain directory (L1). In addition, the grain size is always 512, but that is not a problem because it is included in the header. The format of the extents is documented in the VMDK spec. The format of the descriptor file is not documented precisely, but it can be found at http://kb.vmware.com/kb/10026353 (Recreating a missing virtual machine disk (VMDK) descriptor file for delta disks). With these patches, vmfsSparse files only work if opened through the descriptor file. Data files without descriptor files, as far as I could understand, are not supported by ESX. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> -- v2: Rebase to patch 01. Change le64_to_cpu to le32_to_cpu. Rename vmdk_open_vmdk3 to vmdk_open_vmfs_sparse, which represents the current usage of this format. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f6b61e54bdd5b9ef46837c15547e1819b3bb4f37 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Aug 19 18:54:26 2013 +0800 vmdk: fix L1 and L2 table size in vmdk3 open VMDK3 header has the field l1dir_size, but vmdk_open_vmdk3 hardcoded the value. This patch honors the header field. And the L2 table size is 4096 according to VMDK spec[1], instead of 1 << 9 (512). [1]: http://www.vmware.com/support/developer/vddk/vmdk_50_technote.pdf?src=vmdk Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b0651b8c246d0d9e6ad0831b3e34fd756016ad7e Author: Fam Zheng <famz@xxxxxxxxxx> Date: Mon Aug 19 18:54:25 2013 +0800 vmdk: Move l1_size check into vmdk_add_extent() This header check is common to VMDK3 and VMDK4, so move it into vmdk_add_extent(). Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 7780d47211bde838c7f7e9330608e5397219066e Author: Fam Zheng <famz@xxxxxxxxxx> Date: Thu Aug 22 15:36:59 2013 +0800 block: better error message for read only format name When user tries to use read-only whitelist format in the command line option, failure message was "'foo' invalid format". It might be invalid only for writable, but valid for read-only, so it is confusing. Give the user easier to understand information. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 893a8f6220368a9ebff9a74bd48359928545cf6a Author: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Date: Tue Aug 6 09:53:40 2013 +0800 block: Produce zeros when protocols reading beyond end of file While Asias is debugging an issue creating qcow2 images on top of non-file protocols. It boils down to this example using NBD: $ qemu-io -c 'open -g nbd+unix:///?socket=/tmp/nbd.sock' -c 'read -v 0 512' Notice the open -g option to set bs->growable. This means you can read/write beyond end of file. Reading beyond end of file is supposed to produce zeroes. We rely on this behavior in qcow2_create2() during qcow2 image creation. We create a new file and then write the qcow2 header structure using bdrv_pwrite(). Since QCowHeader is not a multiple of sector size, block.c first uses bdrv_read() on the empty file to fetch the first sector (should be all zeroes). Here is the output from the qemu-io NBD example above: $ qemu-io -c 'open -g nbd+unix:///?socket=/tmp/nbd.sock' -c 'read -v 0 512' 00000000: ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ................ 00000010: ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ................ 00000020: ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ................ ... We are not zeroing the buffer! As a result qcow2 image creation on top of protocols is not guaranteed to work even when file creation is supported by the protocol. [Adapted this patch to use bs->zero_beyond_eof. -- Stefan] Signed-off-by: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> Signed-off-by: Asias He <asias@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 0d51b4debee6fb322751a57097a1d675c7a7c38d Author: Asias He <asias@xxxxxxxxxx> Date: Thu Aug 22 15:24:14 2013 +0800 block: Introduce bs->zero_beyond_eof In 4146b46c42e0989cb5842e04d88ab6ccb1713a48 (block: Produce zeros when protocols reading beyond end of file), we break qemu-iotests ./check -qcow2 022. This happens because qcow2 temporarily sets ->growable = 1 for vmstate accesses (which are stored beyond the end of regular image data). We introduce the bs->zero_beyond_eof to allow qcow2_load_vmstate() to disable ->zero_beyond_eof temporarily in addition to enable ->growable. [Since the broken patch "block: Produce zeros when protocols reading beyond end of file" has not been merged yet, I have applied this fix *first* and will then apply the next patch to keep the tree bisectable. -- Stefan] Suggested-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Signed-off-by: Asias He <asias@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1e0995561959645e218bb5e4afb6ad3d47b33396 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Aug 21 15:14:45 2013 -0300 pc_piix: Kill pc_init1() memory region args All callers always use the same values (get_system_memory(), get_system_io()), so the parameters are pointless. If one day we decide to eliminate get_system_memory() and get_system_io(), we will be able to do that more easily by adding the values to struct QEMUMachineInitArgs. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 396f79f45ea75bd1c421522f29b4f91d490df7cc Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Aug 21 15:14:44 2013 -0300 pc: pc_compat_1_4() now can call pc_compat_1_5() It just needs to set has_pvpanic=false after calling it. This way, it won't be a special case anymore. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 89b439f3136644b07c2e25bb4ceeb9466ae23fe5 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Aug 21 15:14:43 2013 -0300 pc: Create pc_compat_*() functions Making the older compat functions call the newer compat functions at the beginning allows the older functions undo what's done by newer compat functions. e.g.: pc_compat_1_4() will be able to call pc_compat_1_5() and then set has_pvpanic=false. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 43a52ce65736adf9def7c2a9e5ba409814eb5dae Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Aug 21 15:14:42 2013 -0300 pc: Kill pc_init_pci_1_0() The pc_init_pci_1_2()/pc_init_pci_1_0() split was made on commit 6fd028f64f662c801fd5a54d0e3a1d2baeee93ea, in preparation for commit 9953f8822cc316eec9962f0a2858c3439a80adec. The latter was reverted, so there's no reason to keep two separate functions that do exactly the same, anymore. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Cc: Markus Armbruster <armbru@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 3b6fb9cab2e64804cdab5a61d1298ffd8b8dff85 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Aug 21 15:14:41 2013 -0300 pc: Don't explode QEMUMachineInitArgs into local variables needlessly Don't explode when the variable is used just a few times, and never changed. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 5650f5f48bfe2a684138505aae008dc4440202f1 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Wed Aug 21 15:14:40 2013 -0300 pc: Don't prematurely explode QEMUMachineInitArgs Don't explode QEMUMachineInitArgs before passing it to pc_init1(). Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 92238367450d26eced103736ae555997ea3162c2 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 13:13:49 2013 +0200 ppc: Don't duplicate QEMUMachineInitArgs in PPCE500Params Pass on the generic arguments unadulterated, and the machine-specific ones as separate argument. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit ee87e32f830b4e22c02038de963bb9f72b55896f Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 13:13:48 2013 +0200 ppc: Don't explode QEMUMachineInitArgs into local variables needlessly Don't explode when the variable is used just once, and never changed. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Acked-by: Alexander Graf <agraf@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 6b63ef4d0f225810b74281e6689a4d5695860c08 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Aug 16 13:13:47 2013 +0200 sun4: Don't prematurely explode QEMUMachineInitArgs Don't explode QEMUMachineInitArgs before passing it to sun4m_hw_init(), sun4uv_init(). Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 8ad1898cf1f5314731123afce057e5cf74fd2f01 Author: Kevin Wolf <kwolf@xxxxxxxxxx> Date: Mon Aug 19 10:38:01 2013 +0200 qcow2: Change default for new images to compat=1.1 By the time that qemu 1.7 will be released, enough time will have passed since qemu 1.1, which is the first version to understand version 3 images, that changing the default shouldn't hurt many people any more and the benefits of using the new format outweigh the pain. qemu-iotests already runs with compat=1.1 by default. Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 4b38e989b43e84c485f676f2039f21b15da439fe Author: Alex Williamson <alex.williamson@xxxxxxxxxx> Date: Tue Aug 20 12:21:57 2013 -0600 q35: Add PCIe switch to example q35 configuration Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> commit 7717f248eebdcfe6de400404d0cf65dcb3633308 Author: Jia Liu <proljc@xxxxxxxxx> Date: Wed Aug 21 09:31:36 2013 +0800 hw/openrisc: Avoid undefined shift in openrisc_pic_cpu_handler() In C99 signed shift (1 << 31) is undefined behavior, since the result exceeds INT_MAX. Use 1U instead and move the shift after the check. Signed-off-by: Xi Wang <xi.wang@xxxxxxxxx> Acked-by: Jia Liu <proljc@xxxxxxxxx> commit ed396e2b2d256c1628de7c11841b509455a76c03 Author: Jia Liu <proljc@xxxxxxxxx> Date: Wed Aug 21 09:23:10 2013 +0800 hw/openrisc: Fix masking in openrisc_pic_cpu_handler() Consider the masking of PICSR and PICMR: ((cpu->env.picsr && (1 << i)) && (cpu->env.picmr && (1 << i))) To correctly mask bits, we should use the bitwise AND "&" rather than the logical AND "&&". Also, the loop is not necessary for masking. Simply use (cpu->env.picsr & cpu->env.picmr). Signed-off-by: Xi Wang <xi.wang@xxxxxxxxx> Acked-by: Jia Liu <proljc@xxxxxxxxx> commit b6d9766ddf5453e79e0c66c9348728ba44ba115f Author: Jia Liu <proljc@xxxxxxxxx> Date: Wed Aug 21 08:54:29 2013 +0800 hw/openrisc: Avoid using uninitialised variable 'entry' clang warns that cpu_openrisc_load_kernel() can use 'entry' uninitialized: hw/openrisc/openrisc_sim.c:69:9: error: variable 'entry' is used uninitialized whenever '&&' condition is false [-Werror,-Wsometimes-uninitialized] if (kernel_filename && !qtest_enabled()) { ^~~~~~~~~~~~~~~ hw/openrisc/openrisc_sim.c:91:19: note: uninitialized use occurs here cpu->env.pc = entry; ^~~~~ Fix this by not attempting to change the CPU's starting PC unless we actually loaded a kernel. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Jia Liu <proljc@xxxxxxxxx> commit 04920fc0faa4760f9c4fc0e73b992b768099be70 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Aug 19 17:26:55 2013 +0300 loader: store FW CFG ROM files in RAM ROM files that are put in FW CFG are copied to guest ram, by BIOS, but they are not backed by RAM so they don't get migrated. Each time we change two bytes in such a ROM this breaks cross-version migration: since we can migrate after BIOS has read the first byte but before it has read the second one, getting an inconsistent state. Future-proof this by creating, for each such ROM, an MR serving as the backing store. This MR is never mapped into guest memory, but it's registered as RAM so it's migrated with the guest. Naturally, this only helps for -M 1.7 and up, older machine types will still have the cross-version migration bug. Luckily the race window for the problem to trigger is very small, which is also likely why we didn't notice the cross-version migration bug in testing yet. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit 0851c9f75ccb0baf28f5bf901b9ffe3c91fcf969 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Mon Aug 19 17:26:52 2013 +0300 arch_init: align MR size to target page size Migration code assumes that each MR is a multiple of TARGET_PAGE_SIZE: MR size is divided by TARGET_PAGE_SIZE, so if it isn't migration never completes. But this isn't really required for regions set up with memory_region_init_ram, since that calls qemu_ram_alloc which aligns size up using TARGET_PAGE_ALIGN. Align MR size up to full target page sizes, this way migration completes even if we create a RAM MR which is not a full target page size. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> commit c0b4cc1f9f4df9d7459dc778e64f00a4e781fd88 Author: Michael S. Tsirkin <mst@xxxxxxxxxx> Date: Sun Aug 18 16:50:02 2013 +0300 pc: cleanup 1.4 compat support Make 1.4 compat code call the 1.6 one, reducing code duplication. Add comment explaining why we can't make 1.4 call 1.5 as usual. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> Reviewed-by: Andreas Färber <afaerber@xxxxxxx> Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> commit 7477cd3897082d2650d520a4e9aa7f8affa3dd5d Author: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Date: Mon Aug 19 14:13:42 2013 -0300 kvm: i386: fix LAPIC TSC deadline timer save/restore The configuration of the timer represented by MSR_IA32_TSCDEADLINE depends on: - APIC LVT Timer register. - TSC value. Change the order to respect the dependency. Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 7dc52526850849e8e0fe56ced809d0798481a2f6 Author: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Date: Mon Aug 12 16:56:31 2013 -0300 kvm-all.c: max_cpus should not exceed KVM vcpu limit maxcpus, which specifies the maximum number of hotpluggable CPUs, should not exceed KVM's vcpu limit. Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> [Reword message. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 354678c5ce162649906e4e1be2859f3df372668f Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Date: Tue Aug 13 14:43:57 2013 +0200 kvm: Simplify kvm_handle_io Now that cpu_in/out is just a wrapper around address_space_rw, we can also call the latter directly. As host endianness == guest endianness, there is no need for the memory access helpers st*_p/ld*_p as well. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit df67696e97d3edd0cb1683bf2eb3b3236bd9a5ed Author: Liu Jinsong <jinsong.liu@xxxxxxxxx> Date: Mon Aug 19 09:33:30 2013 +0800 kvm: x86: fix setting IA32_FEATURE_CONTROL with nested VMX disabled This patch is to fix the bug https://bugs.launchpad.net/qemu-kvm/+bug/1207623 IA32_FEATURE_CONTROL is pointless if not expose VMX or SMX bits to cpuid.1.ecx of vcpu. Current qemu-kvm will error return when kvm_put_msrs or kvm_get_msrs. Signed-off-by: Liu Jinsong <jinsong.liu@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit ecfe10c9a6f9bc77d0e4b7eb5d0f5d61e8fbaed8 Merge: 9176e8f 2300581 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Aug 20 11:23:52 2013 -0500 Merge remote-tracking branch 'pmaydell/tags/pull-target-arm-20130820' into staging target-arm queue # gpg: Signature made Tue 20 Aug 2013 08:56:28 AM CDT using RSA key ID 14360CDE # gpg: Can't check signature: public key not found # By Peter Maydell (20) and Peter Chubb (1) # Via Peter Maydell * pmaydell/tags/pull-target-arm-20130820: (21 commits) hw/timer/imx_epit: Simplify and fix imx_epit implementation default-configs: Fix A9MP and A15MP config names hw/cpu/a15mpcore: Wire generic timer outputs to GIC inputs target-arm: Implement the generic timer target-arm: Support coprocessor registers which do I/O target-arm: Allow raw_read() and raw_write() to handle 64 bit regs hw/arm/pic_cpu: Remove the now-unneeded arm_pic_init_cpu() hw/arm/xilinx_zynq: Don't use arm_pic_init_cpu() hw/arm/vexpress: Don't use arm_pic_init_cpu() hw/arm/versatilepb: Don't use arm_pic_init_cpu() hw/arm/strongarm: Don't use arm_pic_init_cpu() hw/arm/realview: Don't use arm_pic_init_cpu() hw/arm/omap*: Don't use arm_pic_init_cpu() hw/arm/musicpal: Don't use arm_pic_init_cpu() hw/arm/kzm: Don't use arm_pic_init_cpu() hw/arm/integratorcp: Don't use arm_pic_init_cpu() hw/arm/highbank: Don't use arm_pic_init_cpu() hw/arm/exynos4210: Don't use arm_pic_init_cpu() hw/arm/armv7m: Don't use arm_pic_init_cpu() target-arm: Make IRQ and FIQ gpio lines on the CPU object ... Message-id: 1377007680-4934-1-git-send-email-peter.maydell@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 21e0043bada1a24ae2ba6cd0051e104c0cbf9634 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 15:50:15 2013 +0100 scripts/qapi.py: Avoid syntax not supported by Python 2.4 The Python "except Foo as x" syntax was only introduced in Python 2.6, but we aim to support Python 2.4 and later. Use the old-style "except Foo, x" syntax instead, thus fixing configure/compile on systems with older Python. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 277acfe8b38de35be8cb6e274678b5a7919c2d44 Author: Fam Zheng <famz@xxxxxxxxxx> Date: Tue Aug 20 10:58:21 2013 +0800 monitor: print the invalid char in error message It's more friendly to print which char is invalid to user, especially when user tries to input a float value and expect the monitor to round it to int. Since we don't round float number when we look for a integer, telling which char is invalid is less confusing. Signed-off-by: Fam Zheng <famz@xxxxxxxxxx> Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 3953e3a5d34fa7caffc3e32eae4270b2d810d966 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:40 2013 +0200 OptsVisitor: introduce unit tests, with test cases for range flattening According to commit 4f193e34 ("tests: Use qapi-schema-test.json as schema parser test") the "tests/qapi-schema/qapi-schema-test.out" file must be updated as well. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 99351c8472f76552c059a5dd382860229d647c4f Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:39 2013 +0200 add "test-int128" and "test-bitops" to .gitignore "test-int128" was probably missed in commit 6046c620 ("int128: optimize and add test cases"). "test-bitops" was probably missed in commit 3464700f ("tests: Add test-bitops.c with some sextract tests"). Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 15a849be100b54776bcf63193c3fea598666030f Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:38 2013 +0200 OptsVisitor: don't try to flatten overlong integer ranges Prevent mistyped command line options from incurring high memory and CPU usage at startup. 64K elements in a range should be enough for everyone (TM). The OPTS_VISITOR_RANGE_MAX macro is public so that unit tests can construct corner cases with it. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 581a8a800070500527f6c75e5d6b75134c2b5a9d Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:37 2013 +0200 OptsVisitor: opts_type_uint64(): recognize intervals when LM_IN_PROGRESS When a well-formed range value, bounded by unsigned integers, is encountered while processing a repeated option, enter LM_UNSIGNED_INTERVAL and return the low bound. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 62d090e23fc17e4e60725ead0dff8902f8e66b52 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:36 2013 +0200 OptsVisitor: rebase opts_type_uint64() to parse_uint_full() Simplify the code in preparation for the next patch. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 1e1c555a49175e2298eaa156e008a92d207bf812 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:35 2013 +0200 OptsVisitor: opts_type_int(): recognize intervals when LM_IN_PROGRESS When a well-formed range value, bounded by signed integers, is encountered while processing a repeated option, enter LM_SIGNED_INTERVAL and return the low bound. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d8754f40acb2d30e4735cdcd21a16e7ac29264a3 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:34 2013 +0200 OptsVisitor: introduce list modes for interval flattening The new modes are equal-rank, exclusive alternatives of LM_IN_PROGRESS. Teach opts_next_list(), opts_type_int() and opts_type_uint64() to handle them. Also enumerate explicitly what functions are valid to call in what modes: - opts_next_list() is valid to call while flattening a range, - opts_end_list(): ditto, - lookup_scalar() is invalid to call during flattening; generated qapi traversal code must continue asking for the same kind of signed/unsigned list element until the interval is fully flattened, - processed(): ditto. List mode restrictions are always formulated in positive / inclusive sense. The restrictions for lookup_scalar() and processed() are automatically satisfied by current qapi traversals if the schema to build is compatible with OptsVisitor. The new list modes are not entered yet. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit d95704341280fc521dc2b16bbbc5858f6647e2c3 Author: Laszlo Ersek <lersek@xxxxxxxxxx> Date: Tue Aug 20 00:35:33 2013 +0200 OptsVisitor: introduce basic list modes We're going to need more state while processing a list of repeated options. This change eliminates "repeated_opts_first" and adds a new state variable: list_mode repeated_opts repeated_opts_first -------------- ------------- ------------------- LM_NONE NULL false LM_STARTED non-NULL true LM_IN_PROGRESS non-NULL false Additionally, it is documented that lookup_scalar() and processed(), both called by opts_type_XXX(), are invalid in LM_STARTED -- generated qapi code calls opts_next_list() to allocate the very first link before trying to parse a scalar into it. List mode restrictions are expressed in positive / inclusive form. Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> Tested-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 4a44d85e28bd282f53ccf0fa933dd71b8744a229 Author: Seiji Aguchi <seiji.aguchi@xxxxxxx> Date: Mon Aug 5 15:40:44 2013 -0400 Convert stderr message calling error_get_pretty() to error_report() Convert stderr messages calling error_get_pretty() to error_report(). Timestamp is prepended by -msg timstamp option with it. Per Markus's comment below, A conversion from fprintf() to error_report() is always an improvement, regardless of error_get_pretty(). http://marc.info/?l=qemu-devel&m=137513283408601&w=2 But, it is not reasonable to convert them at one time because fprintf() is used everwhere in qemu. So, it should be done step by step with avoiding regression. Signed-off-by: Seiji Aguchi <seiji.aguchi@xxxxxxx> Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx> commit 9176e8fb8f78206bd4039f001aca0d931a47d663 Merge: 72420ce f2e5dca Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Aug 20 09:52:18 2013 -0500 Merge remote-tracking branch 'stefanha/block-next' into staging # By Stefan Hajnoczi # Via Stefan Hajnoczi * stefanha/block-next: aio: drop io_flush argument tests: drop event_active_cb() thread-pool: drop thread_pool_active() dataplane/virtio-blk: drop flush_true() and flush_io() block/ssh: drop return_true() block/sheepdog: drop have_co_req() and aio_flush_request() block/rbd: drop qemu_rbd_aio_flush_cb() block/nbd: drop nbd_have_request() block/linux-aio: drop qemu_laio_completion_cb() block/iscsi: drop iscsi_process_flush() block/gluster: drop qemu_gluster_aio_flush_cb() block/curl: drop curl_aio_flush() aio: stop using .io_flush() tests: adjust test-thread-pool to new aio_poll() semantics tests: adjust test-aio to new aio_poll() semantics dataplane/virtio-blk: check exit conditions before aio_poll() block: stop relying on io_flush() in bdrv_drain_all() block: ensure bdrv_drain_all() works during bdrv_delete() Message-id: 1376921877-9576-1-git-send-email-stefanha@xxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 72420ce9f0bafef7d55563a8bd14237a5fe88a87 Merge: 237e4f9 b83c4db Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Aug 20 09:52:07 2013 -0500 Merge remote-tracking branch 'rth/axp-next' into staging # By Richard Henderson # Via Richard Henderson * rth/axp-next: target-alpha: Implement the typhoon iommu target-alpha: Consider the superpage when threading and ending TBs target-alpha: Use goto_tb in call_pal target-alpha: Implement call_pal without an exception Message-id: 1376720412-2165-1-git-send-email-rth@xxxxxxxxxxx Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 237e4f92a81696e5359766a7f19a77a9ff1d02e5 Merge: bc02fb3 321bc0b Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Tue Aug 20 09:51:53 2013 -0500 Merge remote-tracking branch 'afaerber/tags/qom-cpu-for-anthony' into staging QOM CPUState refactorings / X86CPU * gdbstub coprocessor register count bugfix * QOM instance_post_init infrastructure to override dynamic properties * X86CPU HyperV preparations for CPU subclasses # gpg: Signature made Fri 16 Aug 2013 11:49:02 AM CDT using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Eduardo Habkost (3) and others # Via Andreas Färber * afaerber/tags/qom-cpu-for-anthony: cpus: Use cpu_is_stopped() efficiently target-i386: Move hyperv_* static globals to X86CPU qdev: Set globals in instance_post_init function qom: Introduce instance_post_init hook tests: Unit tests for qdev global properties handling gdbstub: Fix gdb_register_coprocessor() register counting commit 230058106ab26de9b876158dbe27d60719f01f51 Author: Peter Chubb <peter.chubb@xxxxxxxxxxxx> Date: Tue Aug 20 14:54:32 2013 +0100 hw/timer/imx_epit: Simplify and fix imx_epit implementation When imx_epit.c was last refactored, a common usecase (comparison register zero) broke. This patch fixes that, and simplifies the code yet more. It also fixes a major thinko in the reset path --- the wrong bits in the control register were being cleared. Signed-off-by: Peter Chubb <peter.chubb@xxxxxxxxxxxx> Reviewed-by: Jean-Christophe DUBOIS <jcd@xxxxxxxxxxxxxxx> Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> commit 66aae5e1ecc38e8658c5cc69a0b3ceeb4967619c Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:32 2013 +0100 default-configs: Fix A9MP and A15MP config names When individual CONFIG_ switches for the A9MPcore and A15MPcore devices were created, they were inadvertently given incorrect names (CONFIG_ARM9MPCORE and CONFIG_ARM15MPCORE). These CPUs are "Cortex-A9MP" and "Cortex-A15MP", and in particular the ARM9 is a different (rather older) CPU than the Cortex-A9. Rename the CONFIG_ switches to bring them into line with the source file names and CPU names. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1376056215-26391-1-git-send-email-peter.maydell@xxxxxxxxxx commit 6033e840c7b1db1055d02199fa3a28a4fd7b2386 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:32 2013 +0100 hw/cpu/a15mpcore: Wire generic timer outputs to GIC inputs Now our A15 CPU implements the generic timers, we can wire them up to the appropriate inputs on the GIC. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Tested-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Message-id: 1376065080-26661-5-git-send-email-peter.maydell@xxxxxxxxxx commit 55d284af8e31bbdf4d545cb2d6481cd0367680fb Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:31 2013 +0100 target-arm: Implement the generic timer The ARMv7 architecture specifies a 'generic timer' which is implemented via cp15 registers. Newer kernels will prefer to use this rather than a devboard-level timer. Implement the generic timer for TCG; for KVM we will already use the hardware's virtualized timer for this. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Tested-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Message-id: 1376065080-26661-4-git-send-email-peter.maydell@xxxxxxxxxx commit 2452731c883cb0acd4e47b23039c46cd880cf2c6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:31 2013 +0100 target-arm: Support coprocessor registers which do I/O Add an ARM_CP_IO flag which an ARMCPRegInfo definition can use to indicate that the register's implementation does I/O and thus its accesses need to be surrounded by gen_io_start()/gen_io_end() in order for icount to work. Most notably, cp registers which implement clocks or timers need this. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Tested-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Message-id: 1376065080-26661-3-git-send-email-peter.maydell@xxxxxxxxxx commit 22d9e1a986a671ebfacb21555b7533336f3e8259 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:31 2013 +0100 target-arm: Allow raw_read() and raw_write() to handle 64 bit regs Extend the raw_read() and raw_write() helper accessors so that they can be used for 64 bit registers as well as 32 bit registers. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Tested-by: Laurent Desnogues <laurent.desnogues@xxxxxxxxx> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> Message-id: 1376065080-26661-2-git-send-email-peter.maydell@xxxxxxxxxx commit b643e4b90bb0b70adde97a09349d8ca7067309d9 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:31 2013 +0100 hw/arm/pic_cpu: Remove the now-unneeded arm_pic_init_cpu() Now all the boards have been converted arm_pic_init_cpu() is unused and can just be deleted. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-15-git-send-email-peter.maydell@xxxxxxxxxx commit e4a6540dedc6ec109a9ece3f8d83a143b7bde4e6 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:30 2013 +0100 hw/arm/xilinx_zynq: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-14-git-send-email-peter.maydell@xxxxxxxxxx commit fe9120a5d1117523282b44e8aa0027ab2b8a4408 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:30 2013 +0100 hw/arm/vexpress: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-13-git-send-email-peter.maydell@xxxxxxxxxx commit bace999f8a03c226eecad3c170def644f0551c50 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:30 2013 +0100 hw/arm/versatilepb: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-12-git-send-email-peter.maydell@xxxxxxxxxx commit 4f071cf9b53a236469500f08033335cc726db9b0 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:30 2013 +0100 hw/arm/strongarm: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-11-git-send-email-peter.maydell@xxxxxxxxxx commit 033ee5a5ac5dd01bcea76a6427d95f5390af43ca Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:30 2013 +0100 hw/arm/realview: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-10-git-send-email-peter.maydell@xxxxxxxxxx commit 437f0f10a42dc2a0236a79e0bba39a32af4d73f8 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:29 2013 +0100 hw/arm/omap*: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-9-git-send-email-peter.maydell@xxxxxxxxxx commit fcef61ec6bfaf96eeee0fb3024dd7ec8437ffa65 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:29 2013 +0100 hw/arm/musicpal: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-8-git-send-email-peter.maydell@xxxxxxxxxx commit 2f69ba1736e9460aa04c46790c1d34edfbee563a Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:29 2013 +0100 hw/arm/kzm: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-7-git-send-email-peter.maydell@xxxxxxxxxx commit 99d228d6e9b08488d62029c438f8381b8c72d109 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:29 2013 +0100 hw/arm/integratorcp: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-6-git-send-email-peter.maydell@xxxxxxxxxx commit 9188dbf71accf9d97f2e434380ea210ba75705ca Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:29 2013 +0100 hw/arm/highbank: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-5-git-send-email-peter.maydell@xxxxxxxxxx commit ad666d91f43574fb200c738bc793023ae23d24a5 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:28 2013 +0100 hw/arm/exynos4210: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-4-git-send-email-peter.maydell@xxxxxxxxxx commit de3a658f5b1d4ea290cb4369c55e83fdead81933 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:28 2013 +0100 hw/arm/armv7m: Don't use arm_pic_init_cpu() Drop the now-deprecated arm_pic_init_cpu() in favour of directly getting the IRQ line from the ARMCPU object. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-3-git-send-email-peter.maydell@xxxxxxxxxx commit 7c1840b686e34ed138414ff0fe395a63f031387e Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:28 2013 +0100 target-arm: Make IRQ and FIQ gpio lines on the CPU object Now that ARMCPU is a subclass of DeviceState, we can make the CPU's inbound IRQ and FIQ lines be simply gpio lines, which means we can remove the odd arm_pic shim. We retain the arm_pic_init_cpu() function as a backwards compatibility shim layer so we can convert the board models to get the IRQ and FIQ lines directly from the ARMCPU object one at a time. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Message-id: 1375977856-25046-2-git-send-email-peter.maydell@xxxxxxxxxx commit 3f1beaca88bffa4828cc86beb89ff70474516d91 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Tue Aug 20 14:54:28 2013 +0100 target-arm: Implement 'int' loglevel The 'int' loglevel for recording interrupts and exceptions requires support in the target-specific code. Implement it for ARM. This improves debug logging in some situations that were otherwise pretty opaque, such as when we fault trying to execute at an exception vector address, which would otherwise cause an infinite loop of taking exceptions without any indication in the debug log of what was going on. Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> Message-id: 1375700771-21665-1-git-send-email-peter.maydell@xxxxxxxxxx commit f2e5dca46b5ba4588c0756c5f272123585cbbf23 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:26:25 2013 +0200 aio: drop io_flush argument The .io_flush() handler no longer exists and has no users. Drop the io_flush argument to aio_set_fd_handler() and related functions. The AioFlushEventNotifierHandler and AioFlushHandler typedefs are no longer used and are dropped too. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 1b9ecdb16475485dffbcac7ff7f36dafa9e3cfd2 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Apr 16 16:46:15 2013 +0200 tests: drop event_active_cb() Drop the io_flush argument to aio_set_event_notifier(). Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bb52b14be163cc91409017639b8df32c99c1563a Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:22:08 2013 +0200 thread-pool: drop thread_pool_active() .io_flush() is no longer called so drop thread_pool_active(). The block layer is the only thread-pool.c user and it already tracks in-flight requests, therefore we do not need thread_pool_active(). Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit ce689368bb453b0b21e73c77182a9d9bef8c0b84 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:20:03 2013 +0200 dataplane/virtio-blk: drop flush_true() and flush_io() .io_flush() is no longer called so drop flush_true() and flush_io(). Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit f0d35765998bb527013b7f06521fa4b3de352f58 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Apr 16 13:12:28 2013 +0200 block/ssh: drop return_true() .io_flush() is no longer called so drop return_true(). Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit d6d94c678503fd1eceb51b9652b4e0dfd9543475 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:18:18 2013 +0200 block/sheepdog: drop have_co_req() and aio_flush_request() .io_flush() is no longer called so drop have_co_req() and aio_flush_request(). Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 5d289cc7243be53d409ee3b79dd4fd363806f8b6 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:16:29 2013 +0200 block/rbd: drop qemu_rbd_aio_flush_cb() .io_flush() is no longer called so drop qemu_rbd_aio_flush_cb(). qemu_aio_count is unused now so drop it too. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bed2e759eb642931e0ebb95ea99580c27f57560e Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:15:03 2013 +0200 block/nbd: drop nbd_have_request() .io_flush() is no longer called so drop nbd_have_request(). We cannot drop in_flight since it is still used by other block/nbd.c code. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 94473d0c0624822f6325918eb5bfe2d8a001206a Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:12:33 2013 +0200 block/linux-aio: drop qemu_laio_completion_cb() .io_flush() is no longer called so drop qemu_laio_completion_cb(). It turns out that count is now unused so drop that too. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 70ecdc6e4e7f91e7d88540f19fb0f56f9e6f54a0 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:09:59 2013 +0200 block/iscsi: drop iscsi_process_flush() .io_flush() is no longer called so drop iscsi_process_flush(). Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 372835fbc3f288671cfc926c9e438a4659c9125f Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:07:43 2013 +0200 block/gluster: drop qemu_gluster_aio_flush_cb() Since .io_flush() is no longer called we do not need qemu_gluster_aio_flush_cb() anymore. It turns out that qemu_aio_count is unused now and can be dropped. Thanks to Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> for catching a build failure with CONFIG_GLUSTERFS_DISCARD, which has been fixed. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bc02fb304c6cc0f1dd0809545d226df2d6f5c093 Author: Anthony Liguori <anthony@xxxxxxxxxxxxx> Date: Mon Aug 19 08:49:37 2013 -0500 Change email address My IBM email address will be unaccessible after August 23rd, 2013. Signed-off-by: Anthony Liguori <anthony@xxxxxxxxxxxxx> commit 0d1460226fb05c92fa3ad869ca39090ff13cf6bc Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:04:23 2013 +0200 block/curl: drop curl_aio_flush() .io_flush() is no longer called so drop curl_aio_flush(). The acb[] array that the function checks is still used in other parts of block/curl.c. Therefore we cannot remove acb[], it is needed. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 164a101f28a53cd3db60ed874e7c3630e7988ed8 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 16:56:50 2013 +0200 aio: stop using .io_flush() Now that aio_poll() users check their termination condition themselves, it is no longer necessary to call .io_flush() handlers. The behavior of aio_poll() changes as follows: 1. .io_flush() is no longer invoked and file descriptors are *always* monitored. Previously returning 0 from .io_flush() would skip this file descriptor. Due to this change it is essential to check that requests are pending before calling qemu_aio_wait(). Failure to do so means we block, for example, waiting for an idle iSCSI socket to become readable when there are no requests. Currently all qemu_aio_wait()/aio_poll() callers check before calling. 2. aio_poll() now returns true if progress was made (BH or fd handlers executed) and false otherwise. Previously it would return true whenever 'busy', which means that .io_flush() returned true. The 'busy' concept no longer exists so just progress is returned. Due to this change we need to update tests/test-aio.c which asserts aio_poll() return values. Note that QEMU doesn't actually rely on these return values so only tests/test-aio.c cares. Note that ctx->notifier, the EventNotifier fd used for aio_notify(), is now handled as a special case. This is a little ugly but maintains aio_poll() semantics, i.e. aio_notify() does not count as 'progress' and aio_poll() avoids blocking when the user has not set any fd handlers yet. Patches after this remove .io_flush() handler code until we can finally drop the io_flush arguments to aio_set_fd_handler() and friends. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 35ecde26018207fe723bec6efbd340db6e9c2d53 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Tue Apr 16 17:49:42 2013 +0200 tests: adjust test-thread-pool to new aio_poll() semantics aio_poll(ctx, true) will soon block when fd handlers have been set. Previously aio_poll() would return early if all .io_flush() returned false. This means we need to check the equivalent of the .io_flush() condition *before* calling aio_poll(ctx, true) to avoid deadlock. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 24d1a6d9d5f5b3da868724dd3c6f56893e0693da Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Wed Apr 17 11:01:02 2013 +0200 tests: adjust test-aio to new aio_poll() semantics aio_poll(ctx, true) will soon block if any fd handlers have been set. Previously it would only block when .io_flush() returned true. This means that callers must check their wait condition *before* aio_poll() to avoid deadlock. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit bf0da4df83e8af7ec02e3809f3dd30cc0a42e4bc Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 17:24:08 2013 +0200 dataplane/virtio-blk: check exit conditions before aio_poll() Check exit conditions before entering blocking aio_poll(). This is mainly for consistency since it's unlikely that we are stopping in the first event loop iteration. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit 88266f5aa70fa71fd5cc20aa4dbeb7a7bd8d2e92 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Apr 11 15:41:13 2013 +0200 block: stop relying on io_flush() in bdrv_drain_all() If a block driver has no file descriptors to monitor but there are still active requests, it can return 1 from .io_flush(). This is used to spin during synchronous I/O. Stop relying on .io_flush() and instead check QLIST_EMPTY(&bs->tracked_requests) to decide whether there are active requests. This is the first step in removing .io_flush() so that event loops no longer need to have the concept of synchronous I/O. Eventually we may be able to kill synchronous I/O completely by running everything in a coroutine, but that is future work. Note this patch moves bs->throttled_reqs initialization to bdrv_new() so that bdrv_requests_pending(bs) can safely access it. In practice bs is g_malloc0() so the memory is already zeroed but it's safer to initialize the queue properly. We also need to fix up block/stream.c:close_unused_images() to prevent traversing a dangling pointer while it rearranges the backing file chain. This is necessary since the new bdrv_drain_all() traverses the backing file chain. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit e1b5c52e04d04bb93546c6e37e8884889d047cb1 Author: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Date: Thu Jun 27 15:32:26 2013 +0200 block: ensure bdrv_drain_all() works during bdrv_delete() In bdrv_delete() make sure to call bdrv_make_anon() *after* bdrv_close() so that the device is still seen by bdrv_drain_all() when iterating bdrv_states. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> commit b83c4db89561e78ca5a1808329cbf937c6d75cc3 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Sun Aug 4 15:27:13 2013 -1000 target-alpha: Implement the typhoon iommu Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit b114b68adf12a5333bb95b252aed6309cf0c0e5f Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Jul 26 14:05:08 2013 -1000 target-alpha: Consider the superpage when threading and ending TBs This allows significantly more threading, and occasionally larger TBs, when processing code for the kernel and PALcode. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit a9ead832617195a9b0727557c94dda776f8e8074 Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Jul 26 12:00:32 2013 -1000 target-alpha: Use goto_tb in call_pal With appropriate flushing when the PALBR changes, the target of a CALL_PAL is so predictable we can chain to it. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit ba96394e20ad033a10eb790fdf2377e2a8892feb Author: Richard Henderson <rth@xxxxxxxxxxx> Date: Fri Jul 26 11:22:21 2013 -1000 target-alpha: Implement call_pal without an exception The destination of the call_pal, and the cpu state, is very predictable; there's no need for exiting the cpu loop. Signed-off-by: Richard Henderson <rth@xxxxxxxxxxx> commit 321bc0b2b27aa2dd64bf12e0e2a0f323a4903ecf Author: Tiejun Chen <tiejun.chen@xxxxxxxxxxxxx> Date: Fri Aug 2 09:43:09 2013 +0800 cpus: Use cpu_is_stopped() efficiently It makes more sense and will make things simpler later. Signed-off-by: Tiejun Chen <tiejun.chen@xxxxxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 92067bf4bfa144ea3967a9951808f5e587bdab18 Author: Igor Mammedov <imammedo@xxxxxxxxxx> Date: Wed Jun 5 15:18:40 2013 +0200 target-i386: Move hyperv_* static globals to X86CPU - since hyperv_* helper functions are used only in target-i386/kvm.c move them there as static helpers Requested-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 99a0b03650176340ab6667fa1e5711a4552d4494 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Jul 10 17:08:42 2013 -0300 qdev: Set globals in instance_post_init function This way, properties registered in the instance_init function of child classes will be handled properly by qdev_prop_set_globals(), too. Includes a unit test for the new functionality. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 8231c2dd220336bbc7522c490d95742f6ba0adae Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Jul 10 17:08:41 2013 -0300 qom: Introduce instance_post_init hook This will allow classes to specify a function to be called after all instance_init functions were called. This will be used by DeviceState to call qdev_prop_set_globals() at the right moment. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 747b0cb4b51296e85add0a23d5fc1d24e250ec08 Author: Eduardo Habkost <ehabkost@xxxxxxxxxx> Date: Wed Jul 10 17:08:40 2013 -0300 tests: Unit tests for qdev global properties handling This tests the qdev global-properties handling code. Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit 35143f0164e6933a85c7c2b8a89a040d881a9151 Author: Andreas Färber <afaerber@xxxxxxx> Date: Mon Aug 12 18:09:47 2013 +0200 gdbstub: Fix gdb_register_coprocessor() register counting Commit a0e372f0c49ac01faeaeb73a6e8f50e8ac615f34 reorganized the register counting for GDB. While it seems correct not to let the total number of registers skyrocket in an SMP scenario through a static variable, the distinction between total register count and 'g' packet register count (last_reg vs. num_g_regs) got lost among the way. Fix this by introducing CPUState::gdb_num_g_regs and using that in gdb_handle_packet(). Reported-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Cc: qemu-stable@xxxxxxxxxx (stable-1.6) Tested-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Tested-by: Max Filippov <jcmvbkbc@xxxxxxxxx> Tested-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Signed-off-by: Andreas Färber <afaerber@xxxxxxx> commit f202039811d8746b0586d2fd5f61de6c8cf68056 Author: Anthony Liguori <aliguori@xxxxxxxxxx> Date: Thu Aug 15 15:41:13 2013 -0500 Open up 1.7 development branch Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> commit ca916d3729564d0eb3c2374a96903f7e8aced8a7 Author: Vincenzo Maffione <v.maffione@xxxxxxxxx> Date: Mon Jul 22 11:51:33 2013 +0200 kvm: add KVM_IRQFD_FLAG_RESAMPLE support Added an EventNotifier* parameter to kvm-all.c:kvm_irqchip_add_irqfd_notifier(), in order to give KVM another eventfd to be used as "resamplefd". See the documentation in the linux kernel sources in Documentation/virtual/kvm/api.txt (section 4.75) for more details. When the added parameter is passed NULL, the behaviour of the function is unchanged with respect to the previous versions. Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Vincenzo Maffione <v.maffione@xxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0d89436786b02a9e7d561c4d7dc4982e4a2739db Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Jul 25 17:05:22 2013 +0200 kvm: migrate vPMU state Reviewed-by: Gleb Natapov <gnatapov@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit e4a09c9637f13a744ad7e2bc5223df05ac582c0d Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Thu Jul 25 17:05:21 2013 +0200 target-i386: remove tabs from target-i386/cpu.h Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> commit 0779caeb1a17f4d3ed14e2925b36ba09b084fb7b Author: Arthur Chunqi Li <yzt356@xxxxxxxxx> Date: Sun Jul 7 23:13:37 2013 +0800 Initialize IA32_FEATURE_CONTROL MSR in reset and migration The recent KVM patch adds IA32_FEATURE_CONTROL support. QEMU needs to clear this MSR when reset vCPU and keep the value of it when migration. This patch add this feature. Signed-off-by: Arthur Chunqi Li <yzt356@xxxxxxxxx> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> Revision graph left in /home/xc_osstest/results/bisect.linux-3.10.test-amd64-i386-freebsd10-amd64.guest-saverestore.{dot,ps,png,html}. ---------------------------------------- 27148: tolerable ALL FAIL flight 27148 linux-3.10 real-bisect [real] http://www.chiark.greenend.org.uk/~xensrcts/logs/27148/ Failures :-/ but no regressions. Tests which did not succeed, including tests which could not be run: test-amd64-i386-freebsd10-amd64 10 guest-saverestore fail baseline untested jobs: test-amd64-i386-freebsd10-amd64 fail ------------------------------------------------------------ sg-report-flight on osstest.cam.xci-test.com logs: /home/xc_osstest/logs images: /home/xc_osstest/images Logs, config files, etc. are available at http://www.chiark.greenend.org.uk/~xensrcts/logs Test harness code can be found at http://xenbits.xensource.com/gitweb?p=osstest.git;a=summary _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |