aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-05-23update VERSION for 1.4.2v1.4.2Michael Roth
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-20ppc: do not register IABR SPR twice for 603eHervé Poussineau
IABR SPR is already registered in gen_spr_603(), called from init_proc_603E(). Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-20hw/9pfs: use O_NOFOLLOW for mapped readlink operationAneesh Kumar K.V
With mapped security models like mapped-xattr and mapped-file, we save the symlink target as file contents. Now if we ever expose a normal directory with mapped security model and find real symlinks in export path, never follow them and return proper error. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-20hw/9pfs: Fix segfault with 9p2000.uAneesh Kumar K.V
When guest tries to chmod a block or char device file over 9pfs, the qemu process segfaults. With 9p2000.u protocol we use wstat to change mode bits and client don't send extension information for chmod. We need to check for size field to check whether extension info is present or not. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reported-by: Michael Tokarev <mjt@tls.msk.ru> Acked-by: Michael Tokarev <mjt@tls.msk.ru> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-17rbd: add an asynchronous flushJosh Durgin
The existing bdrv_co_flush_to_disk implementation uses rbd_flush(), which is sychronous and causes the main qemu thread to block until it is complete. This results in unresponsiveness and extra latency for the guest. Fix this by using an asynchronous version of flush. This was added to librbd with a special #define to indicate its presence, since it will be backported to stable versions. Thus, there is no need to check the version of librbd. Implement this as bdrv_aio_flush, since it matches other aio functions in the rbd block driver, and leave out bdrv_co_flush_to_disk when the asynchronous version is available. Reported-by: Oliver Francke <oliver@filoo.de> Signed-off-by: Josh Durgin <josh.durgin@inktank.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit dc7588c1eb3008bda53dde1d6b890cd299758155) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-17qemu-iotests: add tests for rebasing zero clustersPaolo Bonzini
If zero clusters are erroneously treated as unallocated, "qemu-img rebase" will copy the backing file's contents onto the cluster. The bug existed also in image streaming, but since the root cause was in qcow2's is_allocated implementation it is enough to test it with qemu-img. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit acbf30ec601b1f817febc4500025b7c4181312c4) Conflicts: tests/qemu-iotests/group * fixed up to account for tests 48/49 being missing from 1.4 Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-17virtio-balloon: fix integer overflow in BALLOON_CHANGE QMP eventLuiz Capitulino
Because dev->actual is uint32_t, the expression 'dev->actual << VIRTIO_BALLOON_PFN_SHIFT' is truncated to 32 bits. This overflows when dev->actual >= 1048576. To reproduce: 1. Start a VM with a QMP socket and 5G of RAM 2. Connect to the QMP socket, negotiate capabilities and issue: { "execute":"balloon", "arguments": { "value": 1073741824 } } 3. Watch for BALLOON_CHANGE QMP events, the last one will incorretly be: { "timestamp": { "seconds": 1366228965, "microseconds": 245466 }, "event": "BALLOON_CHANGE", "data": { "actual": 5368709120 } } To fix it this commit casts it to ram_addr_t, which is ram_size's type. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> (cherry picked from commit dcc6ceffc066745777960a1f0d32f3a555924f65) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-16qemu-timer: move timeBeginPeriod/timeEndPeriod to os-win32Paolo Bonzini
These are needed for any of the Win32 alarm timer implementations. They are not tied to mmtimer exclusively. Jacob tested this patch with both mmtimer and Win32 timers. Cc: qemu-stable@nongnu.org Tested-by: Jacob Kroon <jacob.kroon@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Stefan Weil <sw@weilnetz.de> (cherry picked from commit 0727b867542eea7fedfd2c53568e9782627fd3bd) Conflicts: os-win32.c * updated to retain cpu affinity settings for 1.4 Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-16configure: Don't fall back to gthread coroutine backendBrad Smith
This is a back port of 7c2acc7062fe863cb71ff5849bb121deafe8df4b to the 1.4 stable branch without needing the new error_exit() function. configure: Don't fall back to gthread coroutine backend The gthread coroutine backend is broken and does not produce a working QEMU; it is only useful for some very limited debugging situations. Clean up the backend selection logic in configure so that it now runs "if on windows use windows; else prefer ucontext; else sigaltstack". To do this we refactor the configure code to separate out "test whether we have a working ucontext", "pick a default if user didn't specify" and "validate that user didn't specify something invalid", rather than having all three of these run together. We also simplify the Makefile logic so it just links in the backend the configure script selects. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 1365419487-19867-3-git-send-email-peter.maydell@linaro.org Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Brad Smith <brad@comstyle.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-16usb-redir: Fix crash on migration with no client connectedHans de Goede
If no client is connected on the src side, then we won't receive a parser during migrate, in this case usbredir_post_load() should be a nop, rather then to try to derefefence the NULL dev->parser pointer. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 3713e1485e6eace7d48b9c790602cfd92c616e5f) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-16docs: Fix generating qemu-doc.html with texinfo 5Cole Robinson
LC_ALL=C makeinfo --no-headers --no-split --number-sections --html qemu-doc.texi -o qemu-doc.html ./qemu-options.texi:1521: unknown command `list' ./qemu-options.texi:1521: table requires an argument: the formatter for @item ./qemu-options.texi:1521: warning: @table has text but no @item This is for 1.4 stable only; master isn't affected, as it was fixed by another commit (which isn't appropriate for stable): commit 5d6768e3b8908a60f0a3016b7fa24194f6b47c80 Author: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp> Date: Fri Feb 22 12:39:51 2013 +0900 sheepdog: accept URIs Signed-off-by: Cole Robinson <crobinso@redhat.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-14qga: unlink just created guest-file if fchmod() or fdopen() fails on itLaszlo Ersek
We shouldn't allow guest filesystem pollution on error paths. Suggested-by: Eric Blake <eblake@redhat.com> Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> (cherry picked from commit 2b720018060179b394f8ce736983373ab80dd37c) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-14qga: distinguish binary modes in "guest_file_open_modes" mapLaszlo Ersek
In Windows guests this may make a difference. Since the original patch (commit c689b4f1) sought to be pedantic and to consider theoretical corner cases of portability, we should fix it up where it failed to come through in that pursuit. Suggested-by: Eric Blake <eblake@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> (cherry picked from commit 8fe6bbca7176c9dfb35083a71bda95c1856e2ed5) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-14translate-all.c: Remove cpu_unlink_tb()Peter Maydell
The (unsafe) function cpu_unlink_tb() is now unused, so we can simply remove it and any code that was only used by it. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com> (cherry picked from commit 3a808cc407744c30daa7470b5f191cde1fbc1aae) Conflicts: translate-all.c Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-14Handle CPU interrupts by inline checking of a flagPeter Maydell
Fix some of the nasty TCG race conditions and crashes by implementing cpu_exit() as setting a flag which is checked at the start of each TB. This avoids crashes if a thread or signal handler calls cpu_exit() while the execution thread is itself modifying the TB graph (which may happen in system emulation mode as well as in linux-user mode with a multithreaded guest binary). This fixes the crashes seen in LP:668799; however there are another class of crashes described in LP:1098729 which stem from the fact that in linux-user with a multithreaded guest all threads will use and modify the same global TCG date structures (including the generated code buffer) without any kind of locking. This means that multithreaded guest binaries are still in the "unsupported" category. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com> (cherry picked from commit 378df4b23753a11be650af7664ca76bc75cb9f01) Conflicts: exec.c include/qom/cpu.h translate-all.c include/exec/gen-icount.h Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Conflicts: cpu-exec.c Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-14cpu-exec: wrap tcg_qemu_tb_exec() in a fn to restore the PCPeter Maydell
If tcg_qemu_tb_exec() returns a value whose low bits don't indicate a link to an indexed next TB, this means that the TB execution never started (eg because the instruction counter hit zero). In this case the guest PC has to be reset to the address of the start of the TB. Refactor the cpu-exec code to make all tcg_qemu_tb_exec() calls pass through a wrapper function which does this restoration if necessary. Note that the apparent change in cpu_exec_nocache() from calling cpu_pc_from_tb() with the old TB to calling it with the TB returned by do_tcg_qemu_tb_exec() is safe, because in the nocache case we can guarantee that the TB we try to execute is not linked to any others, so the only possible returned TB is the one we started at. That is, we should arguably previously have included in cpu_exec_nocache() an assert(next_tb & ~TB_EXIT_MASK) == tb), since the API requires restore from next_tb but we were using tb. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com> (cherry picked from commit 77211379d73ea0c89c0b5bb6eee74b17cb06f9a8) Conflicts: cpu-exec.c Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-14tcg: Document tcg_qemu_tb_exec() and provide constants for low bit usesPeter Maydell
Document tcg_qemu_tb_exec(). In particular, its return value is a combination of a pointer to the next translation block and some extra information in the low two bits. Provide some #defines for the values passed in these bits to improve code clarity. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com> (cherry picked from commit 0980011b4f66482d2733ab2dd0f2f61747772c6b) Conflicts: tcg/tcg.h Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-14qga: set umask 0077 when daemonizing (CVE-2013-2007)Laszlo Ersek
The qemu guest agent creates a bunch of files with insecure permissions when started in daemon mode. For example: -rw-rw-rw- 1 root root /var/log/qemu-ga.log -rw-rw-rw- 1 root root /var/run/qga.state -rw-rw-rw- 1 root root /var/log/qga-fsfreeze-hook.log In addition, at least all files created with the "guest-file-open" QMP command, and all files created with shell output redirection (or otherwise) by utilities invoked by the fsfreeze hook script are affected. For now mask all file mode bits for "group" and "others" in become_daemon(). Temporarily, for compatibility reasons, stick with the 0666 file-mode in case of files newly created by the "guest-file-open" QMP call. Do so without changing the umask temporarily. Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit c689b4f1bac352dcfd6ecb9a1d45337de0f1de67) Conflicts: qga/commands-posix.c *update includes to match stable Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-14tcg/optimize: fix setcond2 optimizationAurelien Jarno
When setcond2 is rewritten into setcond, the state of the destination temp should be reset, so that a copy of the previous value is not used instead of the result. Reported-by: Michael Tokarev <mjt@tls.msk.ru> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 66e61b55f158ef5628e4c056dd2f233c9351a3f5) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-14target-mips: Fix accumulator arguments to gen_helper_dmult(u)Richard Sandiford
gen_muldiv was passing int accumulator arguments directly to gen_helper_dmult(u). This patch fixes it to use TCGs, via the gen_helper_0e2i wrapper. Fixes an --enable-debug-tcg build failure reported by Juergen Lock. Signed-off-by: Richard Sandiford <rdsandiford@googlemail.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-14configure: Pick up libseccomp include pathAndreas Färber
openSUSE 12.3 has seccomp.h in /usr/include/libseccomp-1.0.1, so add `pkg-config --cflags libseccomp` output to QEMU_CFLAGS. Cc: qemu-stable@nongnu.org Signed-off-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> (cherry picked from commit 372e47e9b5e31c493823d7f512716644fb02d0fd) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-13virtio-ccw: Check indicators location.Cornelia Huck
If a guest neglected to register (secondary) indicators but still runs with notifications enabled, we might end up writing to guest zero; avoid this by checking for valid indicators and only writing to the guest and generating an interrupt if indicators have been setup. Cc: qemu-stable@nongnu.org Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> (cherry picked from commit 7c4869761d7f2e0a3f806a5359eea5d2473ec5d5) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-13tap: properly initialize vhostfdsJason Wang
Only tap->vhostfd were checked net_init_tap_one(), but tap->vhostfds were forgot, this will lead qemu to ignore all fds passed by management through vhostfds, and tries to create vhost_net device itself. Fix by adding this check also. Reportyed-by: Michal Privoznik <mprivozn@redhat.com> Cc: Michal Privoznik <mprivozn@redhat.com> Cc: qemu-stable@nongnu.org Signed-off-by: Jason Wang <jasowang@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit 7873df408dd44eb92840b108211d5aa5db7db526) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-13rng random backend: check for -EAGAIN errors on readAmit Shah
Not handling EAGAIN triggers the assert qemu/backends/rng-random.c:44:entropy_available: assertion failed: (len != -1) Aborted (core dumped) This happens when starting a guest with '-device virtio-rng-pci', issuing a 'cat /dev/hwrng' in the guest, while also doing 'cat /dev/random' on the host. Reported-by: yunpingzheng <yunzheng@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com> Message-id: eacda84dfaf2d99cf6d250b678be4e4d6c2088fb.1366108096.git.amit.shah@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit acbbc036619092fcd2c882222e1be168bd972b3e) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-13qdev: Fix QOM unrealize behaviorAndreas Färber
Since commit 249d41720b7dfbb5951b430b9eefdbee7464f515 (qdev: Prepare "realized" property) setting realized = true would register the device's VMStateDescription, but realized = false would not unregister it. Fix that. Moving the code from unparenting also revealed that we were calling DeviceClass::init through DeviceClass::realize as interim solution but DeviceClass::exit still at unparenting time with a realized check. Make this symmetrical by implementing DeviceClass::unrealize to call it, while we're setting realized = false in the unparenting path. The only other unrealize user is mac_nvram, which can safely override it. Thus, mark DeviceClass::exit as obsolete, new devices should implement DeviceClass::unrealize instead. Cc: qemu-stable@nongnu.org Signed-off-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Andreas Färber <afaerber@suse.de> Message-id: 1366043650-9719-1-git-send-email-afaerber@suse.de Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit fe6c211781f80ef4fc246269cecbbc21981089f0) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-05-13nbd: unlock mutex in nbd_co_send_request() error pathStefan Hajnoczi
Cc: qemu-stable@nongnu.org Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> (cherry picked from commit 6760c47aa42ce30efdd12c132f73c8749c575995) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-15update VERSION for 1.4.1v1.4.1Michael Roth
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-09Add -f FMT / --format FMT arg to qemu-nbdDaniel P. Berrange
Currently the qemu-nbd program will auto-detect the format of any disk it is given. This behaviour is known to be insecure. For example, if qemu-nbd initially exposes a 'raw' file to an unprivileged app, and that app runs 'qemu-img create -f qcow2 -o backing_file=/etc/shadow /dev/nbd0' then the next time the app is started, the qemu-nbd will now detect it as a 'qcow2' file and expose /etc/shadow to the unprivileged app. The only way to avoid this is to explicitly tell qemu-nbd what disk format to use on the command line, completely disabling auto-detection. This patch adds a '-f' / '--format' arg for this purpose, mirroring what is already available via qemu-img and qemu commands. qemu-nbd --format raw -p 9000 evil.img will now always use raw, regardless of what format 'evil.img' looks like it contains Signed-off-by: Daniel P. Berrange <berrange@redhat.com> [Use errx, not err. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> *fixed conflict due to bdrv_open() not supporting "options" param in v1.4.1 Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-09target-mips: Fix accumulator selection for MIPS16 and microMIPSRichard Sandiford
Add accumulator arguments to gen_HILO and gen_muldiv, rather than extracting the accumulator directly from ctx->opcode. The extraction was only right for the standard encoding: MIPS16 doesn't have access to the DSP registers, while microMIPS encodes the accumulator register in a different field (bits 14 and 15). Passing the accumulator register is probably an over-generalisation for division and 64-bit multiplication, which never access anything other than HI and LO, and which always pass 0 as the new argument. Separating them felt a bit fussy though. Signed-off-by: Richard Sandiford <rdsandiford@googlemail.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 26135ead80fa1fd13e95c162dacfd06f2ba82981) Conflicts: target-mips/translate.c Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-06Allow clock_gettime() monotonic clock to be utilized on more OS'sBrad Smith
Allow the clock_gettime() code using monotonic clock to be utilized on more POSIX compliannt OS's. This started as a fix for OpenBSD which was listed in one function as part of the previous hard coded list of OS's for the functions to support but not in the other. Signed-off-by: Brad Smith <brad@comstyle.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 20130405003748.GH884@rox.home.comstyle.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit d05ef160453e98546a4197496dc8a3cb2defac53) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-05target-i386: Check for host features before filter_features_for_kvm()Eduardo Habkost
commit 5ec01c2e96910e1588d1a0de8609b9dda7618c7f broke "-cpu ..,enforce", as it has moved kvm_check_features_against_host() after the filter_features_for_kvm() call. filter_features_for_kvm() removes all features not supported by the host, so this effectively made kvm_check_features_against_host() impossible to fail. This patch changes the call so we check for host feature support before filtering the feature bits. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Message-id: 1364935692-24004-1-git-send-email-ehabkost@redhat.com Cc: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit a509d632c877f7b5fa07368879b8ae5919a6d345) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-05help: add docs for missing 'queues' option of tapJason Wang
Cc: Markus Armbruster <armbru@redhat.com> Cc: qemu-stable@nongnu.org Signed-off-by: Jason Wang <jasowang@redhat.com> Message-id: 1361545072-30426-1-git-send-email-jasowang@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit ec3960148f95dd90e94511a6a64838bc3f474bcc) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04compiler: fix warning with GCC 4.8.0Paolo Bonzini
GCC 4.8.0 introduces a new warning: block/qcow2-snapshot.c: In function 'qcow2_write_snapshots’: block/qcow2-snapshot.c:252:18: error: typedef 'qemu_build_bug_on__253' locally defined but not used [-Werror=unused-local-typedefs] QEMU_BUILD_BUG_ON(offsetof(QCowHeader, snapshots_offset) != ^ cc1: all warnings being treated as errors (Caret diagnostics aren't perfect yet with macros... :)) Work around it with __attribute__((unused)). Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1364391272-1128-1-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 99835e00849369bab726a4dc4ceed1f6f9ed967c) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04block: complete all IOs before resizing a devicePeter Lieven
this patch ensures that all pending IOs are completed before a device is resized. this is especially important if a device is shrinked as it the bdrv_check_request() result is invalidated. Signed-off-by: Peter Lieven <pl@kamp.de> Signed-off-by: Kevin Wolf <kwolf@redhat.com> (cherry picked from commit 92b7a08d64e5e3129fa885f9d180e5bddcb76b42) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04Revert "block: complete all IOs before .bdrv_truncate"Peter Lieven
brdv_truncate() is also called from readv/writev commands on self- growing file based storage. this will result in requests waiting for theirselves to complete. This reverts commit 9a665b2b8640e464f0a778216fc2dca8d02acf33. Signed-off-by: Kevin Wolf <kwolf@redhat.com> (cherry picked from commit 5c916681ae2383f0425bb8a3680ade9d055f5dfe) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04qxl: better vga init in enter_vga_modeGerd Hoffmann
Ask the vga core to update the display. Will trigger dpy_gfx_resize if needed. More complete than just calling dpy_gfx_resize. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit c099e7aa0295678859d58e9e60b7619f6ae3bac8) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04doc: Fix texinfo @table markup in qemu-options.hxMarkus Armbruster
End tables before headings, start new ones afterwards. Fixes incorrect indentation of headings "File system options" and "Virtual File system pass-through options" in manual page and qemu-doc. Normalize markup some to increase chances it survives future edits. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 1360781383-28635-5-git-send-email-armbru@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit c70a01e449536c616c85ab820c6fbad7d7e9cf39) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04acpi: initialize s4_val used in s4 shutdownBruce Rogers
While investigating why a 32 bit Windows 2003 guest wasn't able to successfully perform a shutdown /h, it was discovered that commit afafe4bbe0cf7d3318e1ac7b40925561f86a6bd4 inadvertently dropped the initialization of the s4_val used to handle s4 shutdown. Initialize the value as before. Signed-off-by: Bruce Rogers <brogers@suse.com> Message-id: 1364928100-487-1-git-send-email-brogers@suse.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 560e63965232e37d1916a447125cf91c18a96930) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04target-mips: fix rndrashift_short_acc and code for EXTR_ instructionsPetar Jovanovic
Fix for rndrashift_short_acc to set correct value to higher 64 bits. This change also corrects conditions when bit 23 of the DSPControl register is set. The existing test files have been extended with several examples that trigger the issues. One bug/example in the test file for EXTR_RS_W has been found and reported by Klaus Peichl. Signed-off-by: Petar Jovanovic <petar.jovanovic@imgtec.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 8b758d0568a986d58c254b3c209691c82e0f82a1) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04target-mips: fix DSP overflow macro and affected routinesPetar Jovanovic
The previous implementation incorrectly used same macro to detect overflow for addition and subtraction. This patch makes distinction between these two, and creates separate macros. The affected routines are changed accordingly. This change also includes additions to the existing tests for SUBQ_S_PH and SUBQ_S_W that would trigger the fixed issue, and it removes dead code from the test file. The last test case in subq_s_w.c is a bug found/reported/ isolated by Klaus Peichl from Dolby. Signed-off-by: Petar Jovanovic <petar.jovanovic@imgtec.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 20c334a797bf46a4ee59a6e42be6d5e7c3cda585) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04target-mips: fix for sign-issue in MULQ_W helperPetar Jovanovic
Correct sign-propagation before multiplication in MULQ_W helper. The change also fixes previously incorrect expected values in the tests for MULQ_RS.W and MULQ_S.W. Signed-off-by: Petar Jovanovic <petarj@mips.com> Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit a345481baa2b2fb3d54f8c9ddb58dfcaf75786df) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04target-mips: fix for incorrect multiplication with MULQ_S.PHPetar Jovanovic
The change corrects sign-related issue with MULQ_S.PH. It also includes extension to the already existing test which will trigger the issue. Signed-off-by: Petar Jovanovic <petarj@mips.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 9c19eb1e205b29018f6f61c5f43db6abbe7dc0e5) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04usb-tablet: Don't claim wakeup capability for USB-2 versionHans de Goede
Our ehci code does not implement wakeup support, so claiming support for it with usb-tablet in USB-2 mode causes all tablet events to get lost. http://bugzilla.redhat.com/show_bug.cgi?id=929068 Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit aa1c9e971e80d25b92908dce3dec7c38b49480ea) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04chardev: clear O_NONBLOCK on SCM_RIGHTS file descriptorsStefan Hajnoczi
When we receive a file descriptor over a UNIX domain socket the O_NONBLOCK flag is preserved. Clear the O_NONBLOCK flag and rely on QEMU file descriptor users like migration, SPICE, VNC, block layer, and others to set non-blocking only when necessary. This change ensures we don't accidentally expose O_NONBLOCK in the QMP API. QMP clients should not need to get the non-blocking state "correct". A recent real-world example was when libvirt passed a non-blocking TCP socket for migration where we expected a blocking socket. The source QEMU produced a corrupted migration stream since its code did not cope with non-blocking sockets. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit e374f7f816171f9783c1d9d00a041f26379f1ac6) Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04qemu-socket: set passed fd non-blocking in socket_connect()Stefan Hajnoczi
socket_connect() sets non-blocking on TCP or UNIX domain sockets if a callback function is passed. Do the same for file descriptor passing, otherwise we could unexpectedly be using a blocking file descriptor. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit 35fb94fa292173a3e1df0768433e06912a2a88e4) Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04net: ensure "socket" backend uses non-blocking fdsStefan Hajnoczi
There are several code paths in net_init_socket() depending on how the socket is created: file descriptor passing, UDP multicast, TCP, or UDP. Some of these support both listen and connect. Not all code paths set the socket to non-blocking. This patch addresses the file descriptor passing and UDP cases which were missing socket_set_nonblock(fd) calls. I considered moving socket_set_nonblock(fd) to a central location but it turns out the code paths are different enough to require non-blocking at different places. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit f05b707279dc7c29ab10d9d13dbf413df6ec22f1) Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-04oslib-posix: rename socket_set_nonblock() to qemu_set_nonblock()Stefan Hajnoczi
The fcntl(fd, F_SETFL, O_NONBLOCK) flag is not specific to sockets. Rename to qemu_set_nonblock() just like qemu_set_cloexec(). Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit 399f1c8f8af1f6f8b18ef4e37169c6301264e467) Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Conflicts: block/sheepdog.c socket_set_block()/socket_set_nonblock() calls in different locations include/qemu/sockets.h socket_set_nodelay() does not exist in v1.4.0, messes up diff context qemu-char.c glib G_IO_IN events are not used in v1.4.0, messes up diff context savevm.c qemu_fopen_socket() only has read mode in v1.4.0, qemu_set_block() not necessary. slirp/misc.c unportable setsockopt() calls in v1.4.0 mess up diff context slirp/tcp_subr.c file was reformatted, diff context is messed up ui/vnc.c old dcl->idle instead of vd->dcl.idle messes up diff context Added: migration-tcp.c, migration-unix.c qemu_fopen_socket() write mode does not exist yet, qemu_set_block() call is needed here. Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-02update seabios to 1.7.2.1Gerd Hoffmann
Alex Williamson (3): 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 Avik Sil (1): USB-EHCI: Fix null pointer assignment Kevin O'Connor (4): Update tools/acpi_extract.py to handle iasl 20130117 release. Fix Makefile - don't reference "out/" directly, instead use "$(OUT)". build: Don't require $(OUT) to be a sub-directory of the main directory. Verify CC is valid during build tests. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 5c75fb10029c5fd1e705a6ef5d698fbea06c7a33) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-02linux-user/syscall.c: Don't warn about unimplemented get_robust_listPeter Maydell
The nature of the kernel ABI for the get_robust_list and set_robust_list syscalls means we cannot implement them in QEMU. Make get_robust_list silently return ENOSYS rather than using the default "print message and then fail ENOSYS" code path, in the same way we already do for set_robust_list, and add a comment documenting why we do this. This silences warnings which were being produced for emulating even trivial programs like 'ls' in x86-64-on-x86-64. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Riku Voipio <riku.voipio@linaro.org> (cherry picked from commit e9a970a8316f9f86a6c800a9a90175bd593f862c) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2013-04-02linux-user: make bogus negative iovec lengths fail EINVALPeter Maydell
If the guest passes us a bogus negative length for an iovec, fail EINVAL rather than proceeding blindly forward. This fixes some of the error cases tests for readv and writev in the LTP. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Riku Voipio <riku.voipio@linaro.org> (cherry picked from commit dfae8e00f8ddeedcda24bd28f71d4fd2a9f988b8) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>