aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-10-11usb-redir: Never return USB_RET_NAK for async handled packetsHans de Goede
USB_RET_NAK is not a valid response for async handled packets (and will trigger an assert as such). Also drop the warning when receiving a status of cancelled for packets not cancelled by qemu itself, this can happen when a device gets unredirected by the usbredir-host while transfers are pending. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 181133404f520fab40a3ad40d935d91cf3cf546c) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11ehci: Correct a comment in fetchqtd packet processingHans de Goede
Since my previous comment said "Should never happen", I tried changing the next line to an assert(0), which did not go well, which as the new comments explains is logical if you think about it for a moment. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit cf1f81691d1998fa8fe5bfcb8b498fb3723cf3c3) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11ehci: Handle USB_RET_PROCERR in ehci_fill_queueHans de Goede
USB_RET_PROCERR can be triggered by the guest (by for example requesting more then BUFFSIZE bytes), so don't assert on it. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit eff6dce79bd7ad3c16d75c5e55b5a2a137ba6a60) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11ehci: Fix memory leak in handling of NAK-ed packetsHans de Goede
Currently each time we try to execute a NAK-ed packet we redo ehci_init_transfer, and usb_packet_map, re-allocing (without freeing) the sg list every time. This patch fixes this, it does this by introducing another async state, so that we also properly cleanup a NAK-ed packet on cancel. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit ef5b234477df80700b128f561f5877a0688a70c8) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11ehci: Add some additional ehci_trace_guest_bug() callsHans de Goede
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 3a8ca08e01ea4baafff2a513655008cdd00feebf) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11ehci: add doorbell trace eventsGerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 1defcbd1e81d67476b6e4e486bcd4d869162900d) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11ehci: trace guest bugsGerd Hoffmann
make qemu_queue_{cancel,reset} return the number of packets released, so the caller can figure whenever there have been active packets even though there shouldn't have been any. Add tracepoint to log this. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 5c514681abbb3ae2f61f517c1aa3197f2f3ca93c) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11ehci: check for EHCI_ASYNC_FINISHED first in ehci_free_packetGerd Hoffmann
Otherwise we'll see the packet free twice in the trace log even though it actually happens only once. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 616789cde2a83fad5e634880fd20214f0c984fd5) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11ehci: Properly report completed but not yet processed packets to the guestHans de Goede
Reported packets which have completed before being cancelled as such to the host. Note that the new code path this patch adds is untested since it I've been unable to actually trigger the race which needs this code path. Signed-off-by: Hans de Goede <hdegoede@redhat.com> (cherry picked from commit 4b63a0df3bda8a2c278e45d9d94d9ba6d5791d8d) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11ehci: Properly cleanup packets on cancelHans de Goede
Signed-off-by: Hans de Goede <hdegoede@redhat.com> (cherry picked from commit 0e7953525f52aa6c098dc0c1ce0b4a80ce82da45) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11ehci: Update copyright headers to reflect recent workHans de Goede
Update copyright headers to reflect all the work Gerd and I have been doing on the EHCI emulation. Signed-off-by: Hans de Goede <hdegoede@redhat.com> (cherry picked from commit 522079dd4461c38b9a88bf31a65ea038c5b2be45) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11ehci: Validate qh is not changed unexpectedly by the guestHans de Goede
-combine the qh check with the check for devaddr changes -also ensure that p gets set to NULL when the queue gets cancelled on devaddr change, which was not done properly before this patch Signed-off-by: Hans de Goede <hdegoede@redhat.com> (cherry picked from commit dafe31fc2a8653b535d58f8c7b250c0827b14420) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11Revert "ehci: don't flush cache on doorbell rings."Hans de Goede
This reverts commit 9bc3a3a216e2689bfcdd36c3e079333bbdbf3ba0, which got added to fix an issue where the real, underlying cause was not stopping the ep queue on an error. Now that the underlying cause is fixed by the "usb: Halt ep queue and cancel pending packets on a packet error" patch, the "don't flush" fix is no longer needed. Not only is it not needed, it causes us to see cancellations (unlinks) done by the Linux EHCI driver too late, which in combination with the new usb-core packet-id generation where qtd addresses are used as ids, causes duplicate ids for in flight packets. Signed-off-by: Hans de Goede <hdegoede@redhat.com> (cherry picked from commit 66f092d25697e11847b61d761c38ddebedaed8d1) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11usb-core: Allow the first packet of a pipelined ep to complete immediatelyHans de Goede
This can happen with usb-redir live-migration when the packet gets re-queued after the migration and the original queuing from the migration source side has already finished. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 9c1f67654ab611553bbfca54a1e0922728c25760) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11usb-core: Add a usb_ep_find_packet_by_id() helper functionHans de Goede
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit c13a9e61366cc3e28299d8faeb65e65c6e5964cf) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11usb-core: Don't set packet state to complete on a nakHans de Goede
This way the hcd can re-use the same packet to retry without needing to re-init it. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit cc40997489260f405aecccd30d4626ceee862502) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11usb: controllers do not need to check for babble themselvesHans de Goede
If an (emulated) usb-device tries to write more data to a packet then its iov len, this will trigger an assert in usb_packet_copy(), and if a driver somehow circumvents that check and writes more data to the iov then there is space, we have a much bigger problem then not correctly reporting babble to the guest. In practice babble will only happen with (real) redirected devices, and there both the usb-host os and the qemu usb-device code already check for it. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 45b339b18c660eb85af2ba25bfcaed5469660d77) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-11Add ability to force enable/disable of tools buildDaniel P. Berrange
The qemu-img, qemu-nbd and qemu-io tools are built conditionally based on whether any softmmu target is enabled. These are useful self-contained tools which can be used in many other scenarios. Add new --enable-tools/--disable-tools args to configure to allow the user to explicitly turn on / off their build. The default behaviour is now to build these tools are all times, regardless of whether any softmmu target is enabled Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 4b1c11fd20e8901f04a2d9c225cd10fc05a762ff) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09socket: don't attempt to reconnect a TCP socket in server modeAnthony Liguori
Commit c3767ed0eb5d0bb25fe409ae5dec06e3411ff1b6 introduced a possible SEGV when using a socket chardev with server=on because it assumes that all TCP sockets are in client mode. This patch adds a check to only reconnect when in client mode. Cc: Lei Li <lilei@linux.vnet.ibm.com> Reported-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 455aa1e0818653c41fd794435b982426ce21ba2f) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09use --libexecdir instead of ignoring it first and reinventing it laterMichael Tokarev
Commit 7b93fadf3a38d1ed65ea5536a52efc2772c6e3b8 "Add basic version of bridge helper" put the bridge helper executable into a fixed ${prefix}/libexec/ location, instead of using ${libexecdir} for this. At the same time, --libexecdir is being happily ignored by ./configure. Even more, the same patch sets unused $libexecdir variable in the generated config-host.mak, and uses fixed string (\${prefix}/libexecdir) for the bridge helper binary. Fix this braindamage by introducing $libexecdir variable, using it for the bridge helper binary, and recognizing --libexecdir. This patch is applicable to stable-1.1. Reviewed-by: Andreas Färber <afaerber@suse.de> Reviewed-by: Corey Bryant <coreyb@linux.vnet.ibm.com> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Cc: Corey Bryant <coreyb@linux.vnet.ibm.com> Cc: Richa Marwaha <rmarwah@linux.vnet.ibm.com> Cc: qemu-stable@nongnu.org Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 8bf188aa18ef7a8355d9edbd43871d590468c4ed) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09hw/mcf5206: Fix buffer overflow for MBAR read / writeStefan Weil
Report from smatch: mcf5206.c:384 m5206_mbar_readb(7) error: buffer overflow 'm5206_mbar_width' 128 <= 128 mcf5206.c:403 m5206_mbar_readw(8) error: buffer overflow 'm5206_mbar_width' 128 <= 128 mcf5206.c:427 m5206_mbar_readl(8) error: buffer overflow 'm5206_mbar_width' 128 <= 128 mcf5206.c:451 m5206_mbar_writeb(9) error: buffer overflow 'm5206_mbar_width' 128 <= 128 mcf5206.c:475 m5206_mbar_writew(9) error: buffer overflow 'm5206_mbar_width' 128 <= 128 mcf5206.c:503 m5206_mbar_writel(9) error: buffer overflow 'm5206_mbar_width' 128 <= 128 m5206_mbar_width has 0x80 elements and supports 0 <= offset < 0x200. Signed-off-by: Stefan Weil <sw@weilnetz.de> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit a32354e206895400d17c3de9a8df1de96d3df289) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09hw/wm8750: Fix potential buffer overflowStefan Weil
Report from smatch: hw/wm8750.c:369 wm8750_tx(12) error: buffer overflow 's->i2c_data' 2 <= 2 It looks like the preprocessor statements were simply misplaced. Replace also __FUNCTION__ by __func__ to please checkpatch.pl. Signed-off-by: Stefan Weil <sw@weilnetz.de> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 149eeb5fe57b853081e8059575d91b8a58a4f96c) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09qemu: Use valgrind annotations to mark kvm guest memory as definedChristian Borntraeger
valgrind with kvm produces a big amount of false positives regarding "Conditional jump or move depends on uninitialised value(s)". This happens because the guest memory is allocated with qemu_vmalloc which boils down posix_memalign etc. This function is (correctly) considered by valgrind as returning undefined memory. Since valgrind is based on jitting code, it will not be able to see changes made by the guest to guest memory if this is done by KVM_RUN, thus keeping most of the guest memory undefined. Now lots of places in qemu will then use guest memory to change behaviour. To avoid the flood of these messages, lets declare the whole guest memory as defined. This will reduce the noise and allows us to see real problems. In the future we might want to make this conditional, since there is actually something that we can use those false positives for: These messages will point to code that depends on guest memory, so we can use these backtraces to actually make an audit that is focussed only at those code places. For normal development we dont want to see those messages, though. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Avi Kivity <avi@redhat.com> (cherry picked from commit 62fe83318d2fc5b31f473d66326910d94c1c4907) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09musicpal: Fix flash mappingJan Kiszka
The old arithmetic assumed 32 physical address bits which is no longer true for ARM since 3cc0cd61f4. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com> (cherry picked from commit 0c267217ca9985e6d118ec8368bebd382db7a099) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09Add MAINTAINERS entry for leon3Fabien Chouteau
Signed-off-by: Fabien Chouteau <chouteau@adacore.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com> (cherry picked from commit ce6c760c37b9a88db87c5b9b9bf39ca866e570f6) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09MIPS/user: Fix reset CPU state initializationMaciej W. Rozycki
This change updates the CPU reset sequence to use a common piece of code that figures out CPU state flags, fixing the problem with MIPS_HFLAG_COP1X not being set where applicable that causes floating-point MADD family instructions (and other instructions from the MIPS IV FP subset) to trap. As compute_hflags is now shared between op_helper.c and translate.c, the function is now moved to a common header. There are no changes to this function. The problem was seen with the 24Kf MIPS32r2 processor in user emulation. The new approach prevents system and user emulation from diverging -- all the hflags state is initialized in one place now. Signed-off-by: Maciej W. Rozycki <macro@codesourcery.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 03e6e5017757645f00b2f3b4f3a257973985e455) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09lan9118: fix multicast filteringAurelien Jarno
The lan9118 emulation tries to compute the multicast index by calling directly the crc32() function from zlib, but fails to get the correct result. Use the common compute_mcast_idx() function instead, which gives the correct result. This fixes IPv6 support. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 449bc90e1f2e2fbafb64eb0c76d16c9352b0d2df) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09fix entry pointer for ELF kernels loaded with -kernel optionHenning Schild
Find a hopefully proper patch attached. Take it or leave it. Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Henning Schild <henning@hennsch.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 7e9c7ffe9fd9dfc3d0168dd584936db8144b230b) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09pcie_aer: clear cmask for Advanced Error Interrupt Message NumberJason Baron
The Advanced Error Interrupt Message Number (bits 31:27 of the Root Error Status Register) is updated when the number of msi messages assigned to a device changes. Migration of windows 7 on q35 chipset failed because the check in get_pci_config_device() fails due to cmask being set on these bits. Its valid to update these bits and we must restore this state across migration. Signed-off-by: Jason Baron <jbaron@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> (cherry picked from commit 0e180d9c8a7429c55d23d2e7855f1e490a063aaa) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09pcie: drop version_id field for live migrationJason Baron
While testing q35 live migration, I found that the migration would abort with the following error: "Unknown savevm section type 76". The error is due to this check failing in 'vmstate_load_state()': while(field->name) { if ((field->field_exists && field->field_exists(opaque, version_id)) || (!field->field_exists && field->version_id <= version_id)) { The VMSTATE_PCIE_DEVICE() currently has a 'version_id' set to 2. However, 'version_id' in the above check is 1. And thus we fail to load the pcie device field. Further the code returns to 'qemu_loadvm_state()' which produces the error that I saw. I'm proposing to fix this by simply dropping the 'version_id' field from VMSTATE_PCIE_DEVICE(). VMSTATE_PCI_DEVICE() defines no such field and further the vmstate_pcie_device that VMSTATE_PCI_DEVICE() refers to is already versioned. Thus, any versioning issues could be detected at the vmsd level. Taking a step back, I think that the 'field->version_id' should be compared against a saved version number for the field not the 'version_id'. Futhermore, once vmstate_load_state() is called recursively on another vmsd, the check of: if (version_id > vmsd->version_id) { return -EINVAL; } Will never fail since version_id is always equal to vmsd->version_id. So I'm wondering why we aren't storing the vmsd version id of the source in the migration stream? This patch also renames the 'name' field of vmstate_pcie_device from: PCIDevice -> PCIEDevice to differentiate it from vmstate_pci_device. Signed-off-by: Jason Baron <jbaron@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> (cherry picked from commit 1de53459272d89c52bb21b45d5d970de40fbb642) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09json-parser: Fix potential NULL pointer segfaultStefan Weil
Report from smatch: json-parser.c:474 parse_object(62) error: potential null derefence 'dict'. json-parser.c:553 parse_array(75) error: potential null derefence 'list'. Label 'out' in json-parser.c can be called with list == NULL which is passed to QDECREF. Modify QDECREF to handle a NULL argument (inline function qobject_decref already handles them, too). Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> (cherry picked from commit 149474c93490e1c66f838391bd491db83136d91d) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09qapi: Fix potential NULL pointer segfaultStefan Weil
Report from smatch: qapi-visit.c:1640 visit_type_BlockdevAction(8) error: we previously assumed 'obj' could be null (see line 1639) qapi-visit.c:2432 visit_type_NetClientOptions(8) error: we previously assumed 'obj' could be null (see line 2431) Signed-off-by: Stefan Weil <sw@weilnetz.de> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> (cherry picked from commit 227ccf6bff234c29974c2c18ecd3a29e6b965e3d) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09fix doc of using raw values with sendkeyAmos Kong
(qemu) sendkey a (qemu) sendkey 0x1e (qemu) sendkey #0x1e unknown key: '#0x1e' The last command doesn't work, '#' is not requested before raw values, and the raw value in decimal format is not supported. Signed-off-by: Amos Kong <akong@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> (cherry picked from commit 886cc706ce5d4d3d1c296f028ddc2991cfbe3bbe) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09configure: print spice-protocol and spice-server versionsAlon Levy
Signed-off-by: Alon Levy <alevy@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 2e0e3c399aa8067148055b9ea0edb822c5b584d2) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09qxl: add QXL_IO_MONITORS_CONFIG_ASYNCAlon Levy
Revision bumped to 4 for new IO support, enabled for spice-server >= 0.11.1. New io enabled if revision is 4. Revision can be set to 4. [ kraxel: 3 continues to be the default revision. Once we have a new stable spice-server release and the qemu patches to enable the new bits merged we'll go flip the switch and make rev4 the default ] This io calls the corresponding new spice api spice_qxl_monitors_config_async to let spice-server read a new guest set monitors config and notify the client. On migration reissue spice_qxl_monitors_config_async. RHBZ: 770842 Signed-off-by: Alon Levy <alevy@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> fixup Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 020af1c45fec664d5d4cf3b8e5117f8bc1d691f2) Conflicts: hw/qxl.c Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09qxl/update_area_io: guest_bug on invalid parametersAlon Levy
Signed-off-by: Alon Levy <alevy@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 511b13e2c9b426b3c56060909693de5097f0b496) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09spice: increase the verbosity of spice section in "qemu --help"Yonit Halperin
Added all spice options to the help string. This can be used by libvirt to determine which spice related features are supported by qemu. Signed-off-by: Yonit Halperin <yhalperi@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 27af778828db9aa893fa1de928744141e5de20e5) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09spice: adding seamless-migration option to the command lineYonit Halperin
The seamless-migration flag is required in order to identify whether libvirt supports the new QEVENT_SPICE_MIGRATE_COMPLETED or not (by default the flag is off). New libvirt versions that wait for QEVENT_SPICE_MIGRATE_COMPLETED should turn on this flag. When this flag is off, spice fallbacks to its old migration method, which can result in data loss. Signed-off-by: Yonit Halperin <yhalperi@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 8c9570530c819821b9b5cc3113d2b2966afe7621) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09spice: add 'migrated' flag to spice infoYonit Halperin
The flag is 'true' when spice migration has completed on the src side. It is needed for a case where libvirt dies before migration completes and it misses the event QEVENT_SPICE_MIGRATE_COMPLETED. When libvirt is restored and queries the migration status, it also needs to query spice and check if its migration has completed. Signed-off-by: Yonit Halperin <yhalperi@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 61c4efe2cb85b0a9c6bc68f6a2dd107c8d7ec080) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09spice migration: add QEVENT_SPICE_MIGRATE_COMPLETEDYonit Halperin
When migrating, libvirt queries the migration status, and upon migration completions, it closes the migration src. On the other hand, when migration is completed, spice transfers data from the src to destination via the client. This data is required for keeping the spice session after migration, without suffering from data loss and inconsistencies. In order to allow this data transfer, we add QEVENT for signaling libvirt that spice migration has completed, and libvirt needs to wait for this event before quitting the src process. Signed-off-by: Yonit Halperin <yhalperi@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 2fdd16e239c2a2763aa3266e637718123328688c) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09spice: notify on vm state change only via spice_server_vm_start/stopYonit Halperin
QXLWorker->start/stop are deprecated since spice-server 0.11.2 Signed-off-by: Yonit Halperin <yhalperi@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 71d388d420e68ac77cd42f15f7e68cf5a6fb01b2) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09spice: notify spice server on vm start/stopYonit Halperin
Spice server needs to know about the vm state in order to prevent attempts to write to devices when they are stopped, mainly during the non-live stage of migration. Instead, spice will take care of restoring this writes, on the migration target side, after migration completes. Signed-off-by: Yonit Halperin <yhalperi@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit f5bb039c6d97ef3e664094eab3c9a4dc1824ed73) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09spice: abort on invalid streaming cmdline paramsChristophe Fergeau
When parsing its command line parameters, spice aborts when it finds unexpected values, except for the 'streaming-video' option. This happens because the parsing of the parameters for this option is done using the 'name2enum' helper, which does not error out on unknown values. Using the 'parse_name' helper makes sure we error out in this case. Looking at git history, the use of 'name2enum' instead of 'parse_name' seems to have been an oversight, so let's change to that now. Fixes rhbz#831708 Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 835cab85ad83ed8dfe1c13243aeda5959b153e3e) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09tci: Fix for AREG0 free modeStefan Weil
Support for helper functions with 5 arguments was missing in the code generator and in the interpreter. There is no need to pass the constant TCG_AREG0 from the code generator to the interpreter. Remove that code for the INDEX_op_qemu_st* opcodes. Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09tcg: Fix MAX_OPC_PARAM_IARGSStefan Weil
DEF_HELPER_FLAGS_5 was added some time ago without adjusting MAX_OPC_PARAM_IARGS. Fixing the definition becomes more important as QEMU is using an increasing number of helper functions called with 5 arguments. Add also a comment to avoid future problems when DEF_HELPER_FLAGS_6 will be added. Signed-off-by: Stefan Weil <sw@weilnetz.de> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09tcg/i386: fix build with -march < i686Aurelien Jarno
The movcond_i32 op has to be protected with TCG_TARGET_HAS_movcond_i32 to fix the build with -march < i686. Thanks to Richard Henderson for the hint. Reported-by: Alex Barcelo <abarcelo@ac.upc.edu> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09tcg: Adjust descriptions of *cond opcodesRichard Henderson
The README file documented the operand ordering of the tcg_gen_* functions. Since we're documenting opcodes here, use the true operand ordering. Signed-off-by: Richard Henderson <rth@twiddle.net> Cc: malc <av1474@comtv.ru> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09tcg/mips: fix MIPS32(R2) detectionAurelien Jarno
Fix the MIPS32(R2) cpu detection so that it also works with -march=octeon. Thanks to Andrew Pinski for the hint. Cc: Andrew Pinski <apinski@cavium.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09target-alpha: Initialize env->cpu_model_strRichard Henderson
Save the cpu_model_str so that we have a non-null value when creating a new cpu during clone. Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09tcg-sparc: Preserve branch destinations during retranslationRichard Henderson
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>