aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-10-04Update VERSION for 1.6.1 releasev1.6.1Michael Roth
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-10-04scsi: Allocate SCSITargetReq r->buf dynamicallyAsias He
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1007330 Brew: https://brewweb.devel.redhat.com/taskinfo?taskID=6282465 This is the backport of the following commit. The patch is not sent public since it is a embargoed bug. 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@redhat.com> Signed-off-by: Asias He <asias@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> *s/&r->buf/r->buf/ due to type change Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-10-01qemu: Add qemu xen logic for Xen HVM S3 resumeLiu, Jinsong
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@intel.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Reviewed-by: Anthony PERARD <anthony.perard@citrix.com> (cherry picked from commit 11addd0ab9371af2b6ec028c7fe4e4c4992252fc) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-10-01qemu: Adjust qemu wakeupLiu, Jinsong
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@intel.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Anthony PERARD <anthony.perard@citrix.com> (cherry picked from commit 4bc78a877252d772b983810a7d2c0be00e9be70e) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-30coroutine: add ./configure --disable-coroutine-poolStefan Hajnoczi
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@kerneis.info> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Gabriel Kerneis <gabriel@kerneis.info> Signed-off-by: Kevin Wolf <kwolf@redhat.com> (cherry picked from commit 70c60c089fdc6bf8a79324e492c13e8c08d55942) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-30piix4: disable io on resetMichael S. Tsirkin
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@nongnu.org Signed-off-by: Michael S. Tsirkin <mst@redhat.com> (cherry picked from commit c046e8c4a26c902ca1b4f5bdf668a2da6bc75f54) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-30vmdk: fix cluster size check for flat extentsFam Zheng
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@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com> (cherry picked from commit 301c7d38a0c359b91526391d13617386f3d9bb29) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-30rbd: avoid qemu_rbd_snap_list() memory leaksStefan Hajnoczi
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@nongnu.org Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com> (cherry picked from commit 9e6337d0818650362149b734d53edf9489f3acaa) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-26tap: Use numbered tap/tun devices on all *BSD OS'sBrad Smith
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@comstyle.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit aa4f082f7526d39dac8e2ca64d192d858014ee10) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-26iov: avoid "orig_len may be used unitialized" warningMichael Tokarev
Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> (cherry picked from commit 2be178a475289286db80de5ddd7830e67e112bdd) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-25xhci: emulate intr endpoint intervals correctlyGerd Hoffmann
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@redhat.com> (cherry picked from commit 4d7a81c06f5f17e019a2d3a18300500bd64f6f40) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24virtio-blk: do not relay a previous driver's WCE configuration to the currentPaolo Bonzini
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@au1.ibm.com Cc: qemu-stable@nongnu.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit ef5bc96268ceec64769617dc53b0ac3a20ff351c) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24blockdev: do not default cache.no-flush to truePaolo Bonzini
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@nongnu.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit 1df6fa4bc6754a170cf511a78e2e6fef84eb5228) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24tci: Fix qemu-alpha on 32 bit hosts (wrong assertions)Stefan Weil
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@nongnu.org> Signed-off-by: Stefan Weil <sw@weilnetz.de> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> (cherry picked from commit 07ac4dc5db22a31e47b149abdbc5ea99013cf4de) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24kvmvapic: Clear also physical ROM address when entering INACTIVE stateJan Kiszka
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@nongnu.org Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> (cherry picked from commit 4357930b8a7d2fcff2d8121ec518117428a781e7) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24kvmvapic: Enter inactive state on hardware resetJan Kiszka
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@nongnu.org Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> (cherry picked from commit c056bc3f3464cfae1c94b7dd633d3ec13b13b655) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24kvmvapic: Catch invalid ROM sizeJan Kiszka
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@nongnu.org Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> (cherry picked from commit 18e5eec4db96a00907eb588a2b803401637c7f67) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24chardev: fix pty_chr_timerGerd Hoffmann
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@nongnu.org Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit b0d768c35e08d2057b63e8e77e7a513c447199fa) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24pcnet-pci: mark I/O and MMIO as LITTLE_ENDIANAurelien Jarno
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@nongnu.org Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit a26405b350c0d31d5ef53f3b459aeb6eaaf50db0) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24qapi-types.py: Fix enum struct sizes on i686Cole Robinson
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@nongnu.org Signed-off-by: Cole Robinson <crobinso@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Tested-by: Richard W.M. Jones <rjones@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> (cherry picked from commit 02dc4bf5684d3fb46786fab2ecff98214b1df9fe) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24pc_q35: Initialize Xen.Anthony PERARD
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> (cherry picked from commit 254c12825f93f405658ca3366cd34f8a8ad23511) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24pc: Initializing ram_memory under Xen.Anthony PERARD
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> CC: qemu-stable@nongnu.org (cherry picked from commit 04d7bad8a4fb23e6d9af9d06ce3ddc28a251d94d) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24qxl: fix local rendererGerd Hoffmann
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@redhat.com> (cherry picked from commit c58c7b959b93b864a27fd6b3646ee1465ab8832b) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24ehci: save device pointer in EHCIStateGerd Hoffmann
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@redhat.com> (cherry picked from commit adbecc89731cf3e0ae656d50ea9fa58c589c4bdc) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24ne2000: mark I/O as LITTLE_ENDIANAurelien Jarno
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@nongnu.org Cc: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit 45d883dcf208160e2db308d1b368beb74f37dc7e) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24exec: check offset_within_address_space for register subpageHu Tao
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@nongnu.org Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Richard Henderson <rth@twiddle.net> Cc: "Andreas Färber" <afaerber@suse.de> Cc: Peter Maydell <peter.maydell@linaro.org> Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> (cherry picked from commit 88266249701032211c1d7449460d063fbc01bf12) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24Revert "memory: Return -1 again on reads from unsigned regions"Jan Kiszka
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@nongnu.org Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> (cherry picked from commit 68a7439a150d6b4da99082ab454b9328b151bc25) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24memory: Provide separate handling of unassigned io ports accessesJan Kiszka
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@nongnu.org Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> (cherry picked from commit 3bb28b7208b349e7a1b326e3c6ef9efac1d462bf) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24w32: Fix access to host devices (regression)Stefan Weil
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@nongnu.org Reported-by: David Brenner <david.brenner3@gmail.com> Signed-off-by: Stefan Weil <sw@weilnetz.de> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit 68dc036488dfea170627a55e6ee3dfd7f2c2063e) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24usb: parallelize usb3 streamsGerd Hoffmann
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@nongnu.org Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit c96c41ed0d38d68a6c8b6f84751afebafeae31be) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24xhci: reset port when disabling slotGerd Hoffmann
Cc: qemu-stable@nongnu.org Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 5c67dd7b4884979a2613a4702ac1ab68b0e6a16e) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24exec: always use MADV_DONTFORKAndrea Arcangeli
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@redhat.com> Tested-By: Benoit Canet <benoit@irqsave.net> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Gleb Natapov <gleb@redhat.com> (cherry picked from commit 3e469dbfe413c25d48321c3a19ddfae0727dc6e5) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24virtio_pci: fix level interrupts with irqfdMichael S. Tsirkin
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@nongnu.org Signed-off-by: Michael S. Tsirkin <mst@redhat.com> (cherry picked from commit 23fe2b3f9e7df8da53ac1bc32c6875254911d7f4) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24exec: fix writing to MMIO area with non-power-of-two lengthPaolo Bonzini
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@nongnu.org Reported-by: Oleksii Shevchuk <alxchk@gmail.com> Tested-by: Oleksii Shevchuk <alxchk@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> (cherry picked from commit 098178f2749a63fbbb1a626dcc7d939d5cb2bde7) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24adlib: sort offsets in portio registrationHervé Poussineau
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@reactos.org> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> (cherry picked from commit 2b21fb57af305f17841d79e7e2e02ad1aec3f5ca) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24target-i386: fix disassembly with PAE=1, PG=0Paolo Bonzini
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@redhat.com> Signed-off-by: Richard Henderson <rth@twiddle.net> Reviewed-by: Max Filippov <jcmvbkbc@gmail.com> (cherry picked from commit f2f8560c7a5303065a2a3207ec475dfb3a622a0e) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24block: expect errors from bdrv_co_is_allocatedPaolo Bonzini
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@nongnu.org Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit d663640c04f2aab810915c556390211d75457704) Conflicts: block/cow.c *modified to avoid dependency on upstream's e641c1e8 Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24Revert "usb-hub: report status changes only once"Gerd Hoffmann
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@nongnu.org Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit bdebd6ee81f4d849aa8541c289203e3992450db0) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24xhci: fix endpoint interval calculationGerd Hoffmann
Cc: qemu-stable@nongnu.org Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit ca7162782a293f525633e5816470498dd86a51cf) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24virtio: virtqueue_get_avail_bytes: fix desc_pa when loop over the indirect ↵yinyin
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@nongnu.org Signed-off-by: Yin Yin <yin.yin@cs2c.com.cn> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> (cherry picked from commit 1ae2757c6c4525c9b42f408c86818f843bad7418) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24pseries: Fix stalls on hypervisor virtual consoleAnton Blanchard
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@samba.org> Signed-off-by: Alexander Graf <agraf@suse.de> (cherry picked from commit 7770b6f78a2d655e03852a5de238f5926c92be6a) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24pc: fix regression for 64 bit PCI memoryMichael S. Tsirkin
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@nongnu.org Cc: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> (cherry picked from commit 1466cef32dd5e7ef3c6477e96d85d92302ad02e3) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24scsi: Fix scsi_bus_legacy_add_drive() scsi-generic with serialMarkus Armbruster
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@nongnu.org Reviewed-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> (cherry picked from commit c24e7517ee4a98e90eee5f0f07708a1fa12326b3) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24usb/dev-hid: Modified usb-tablet category from Misc to InputMarcel Apfelbaum
usb-tablet device was wrongly assigned to Misc category Reported-by: Markus Armbruster <armbru@redhat.com> Cc: qemu-stable@nongnu.org Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com> Reviewed-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 31efd2e883018b4c079ad082105bc161fbb3fef8) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24scripts/qapi.py: Avoid syntax not supported by Python 2.4Peter Maydell
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@linaro.org> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> (cherry picked from commit 21e0043bada1a24ae2ba6cd0051e104c0cbf9634) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24rdma: silly ipv6 bugfixMichael R. Hines
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@us.ibm.com> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> (cherry picked from commit c89aa2f1851b08c3efa8a1070c0a6b9a36e1227f) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24target-ppc: fix bit extraction for FPBF and FPLAurelien Jarno
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@gmail.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> CC: qemu-stable@nongnu.org (1.6) Signed-off-by: Alexander Graf <agraf@suse.de> (cherry picked from commit 779f659021d1754117bce1aab9370dc22f37ae07) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24gdbstub: Fix gdb_register_coprocessor() register countingAndreas Färber
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@linux.vnet.ibm.com> Cc: qemu-stable@nongnu.org (stable-1.6) Tested-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Tested-by: Max Filippov <jcmvbkbc@gmail.com> Tested-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Andreas Färber <afaerber@suse.de> (cherry picked from commit 35143f0164e6933a85c7c2b8a89a040d881a9151) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-09-24block: ensure bdrv_drain_all() works during bdrv_delete()Stefan Hajnoczi
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@nongnu.org Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit e1b5c52e04d04bb93546c6e37e8884889d047cb1) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-08-15Update version for 1.6.0v1.6.0Anthony Liguori
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>