summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-01-12microblaze: Emulate the hw stackprotectorEdgar E. Iglesias4-0/+48
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2012-01-12microblaze: Add support for the clz insnEdgar E. Iglesias3-0/+17
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2012-01-11target-i386: fix SSE rounding and flush to zeroAurelien Jarno3-11/+56
SSE rounding and flush to zero control has never been implemented. However given that softfloat-native was using a single state for FPU and SSE and given that glibc is setting both FPU and SSE state in fesetround(), this was working correctly up to the switch to softfloat. Fix that by adding an update_sse_status() function similar to update_fpu_status(), and callin git on write to mxcsr. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2012-01-11target-i386: fix dpps and dppd SSE2 instructionsAurelien Jarno1-14/+14
The helpers implemented dpps and dppd SSE instructions are not passing the correct argument types to the softfloat functions. While they do work anyway providing a correct behaviour, this patch fixes that. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2012-01-11target-i386: fix round{pd,ps,sd,ss} SSE2 instructionsAurelien Jarno1-8/+8
roundps and roundss SSE2 instructions have been broken when switching target-i386 to softfloat. They use float64_round_to_int to convert a float32, and while the implicit conversion from float32 to float64 was correct for softfloat-native, it is not for pure softfloat. Fix that by using the correct registers and correct functions. Also fix roundpd and roundsd implementation at the same time, even if these functions are behaving correctly. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2012-01-11target-i386: fix {min,max}{pd,ps,sd,ss} SSE2 instructionsAurelien Jarno2-3/+7
minpd, minps, minsd, minss and maxpd, maxps, maxsd, maxss SSE2 instructions have been broken when switching target-i386 to softfloat. It's not possible to use comparison instructions on float types anymore to softfloat, so use the floatXX_lt function instead, as the float_XX_min and float_XX_max functions can't be used due to the Intel specific behaviour. As it implements the correct NaNs behaviour, let's remove the corresponding entry from the TODO. It fixes GDM screen display on Debian Lenny. Thanks to Peter Maydell and Jason Wessel for their analysis of the problem. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2012-01-10wm8750: Fix calculation of number of array elementsStefan Weil1-1/+1
Coverity says that the division by sizeof(*s->rate) might be wrong. I think that coverity is right. Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
2012-01-10elf: Improve symbol lookup (optimize, fix for bsd-user)Stefan Weil3-21/+13
Coverity complained about local variable key which was only partially initiated. Only key.st_value was set. As this was also the only part of key which was used in function symfind, the code could be optimized by directly passing a pointer to orig_addr. In bsd-user/elfload.c, fix ec822001a2f26eef8701194714f6482b6d852de2 was missing. This was a simple replacement of > by >= in symfind, so I fixed it here without creating an additional patch. Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
2012-01-10hw/integratorcp: Simplify flash remap codePeter Maydell1-19/+7
Use the new memory mutator API to simplify the flash remap code; this allows us to drop the flash_mapped flag. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
2012-01-10hw/integratorcp: Fix sense of REMAP bitPeter Maydell1-1/+1
Fix the sense of the REMAP bit: 0 should mean "map flash", 1 should mean "map RAM". Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
2012-01-10Merge branch 's390-next' of git://repo.or.cz/qemu/agrafAurelien Jarno9-32/+87
* 's390-next' of git://repo.or.cz/qemu/agraf: s390: fix cpu hotplug / cpu activity on interrupts s390x: add TR function for EXECUTE Expose drive_add on all architectures Add generic drive hotplugging Compile device-hotplug on all targets [S390] Add hotplug support
2012-01-10PPC: Fix linker scripts on ppc hostsAlexander Graf2-4/+28
When compiling qemu statically with multilib on PPC, we hit the same issue that commit 845f2c2812d9ed24b36c02a3d06ee83aeafe8b49 is fixing. Do the same here. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2012-01-10target-sh4: ignore ocbp and ocbwb instructionsAurelien Jarno1-11/+3
ocbp and ocbwb controls the writeback of a cache line to memory. They are supposed to do nothing in case of a cache miss. Given QEMU only partially emulate caches, it is safe to ignore these instructions. This fixes a kernel oops when trying to access an rtl8139 NIC with recent versions. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2012-01-10tcg/arm: Use r6 as TCG_AREG0 to avoid clash with Thumb framepointerPeter Maydell2-2/+2
On ARM, in Thumb mode r7 is used for the framepointer; this meant that we would fail to compile in debug mode because we were using r7 for TCG_AREG0. Shift to r6 instead to avoid this clash. (Bug reported as LP:870990.) Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
2012-01-10cris-dis: Clean memory allocationStefan Weil1-28/+6
The old code used sizeof(const struct cris_opcode **) where it should have used sizeof(const struct cris_opcode *). As both sizes give the same value, the resulting binary was ok, but static code analyzers like coverity and clang complained. This is fixed here, and the code is also simplified by using g_new0. Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2012-01-09Merge remote-tracking branch 'qemu-kvm/fix-vhost-after-memory-listener' into ↵Anthony Liguori1-6/+17
staging * qemu-kvm/fix-vhost-after-memory-listener: vhost: improve region filtering vhost: fix mem_sections memory corruption vhost: fix incorrect userspace address
2012-01-09vhost: improve region filteringAvi Kivity1-4/+15
vhost memory management doesn't care about non-memory (e.g. PIO) or non-RAM regions. Adjust the filtering to reflect that, and move it earlier so it applies to mem_sections too. Signed-off-by: Avi Kivity <avi@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com>
2012-01-09vhost: fix mem_sections memory corruptionAvi Kivity1-1/+1
A memset() used to delete an entry in an array did not take into account the array element's size. Signed-off-by: Avi Kivity <avi@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com>
2012-01-09vhost: fix incorrect userspace addressAvi Kivity1-1/+1
MemoryListener::region_add() gives us a slice of a MemoryRegion, not a region. Adjust the userspace address to reflect that. Signed-off-by: Avi Kivity <avi@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com>
2012-01-08Fix vmstate_register_ram() for rom/device regionsAvi Kivity1-1/+1
rom/device regions have a ram_addr that is composed of both an I/O handler (low bits) and RAM region (high bits); but qemu_ram_set_idstr() expects just a RAM region. Mask the I/O handler to make it happy. Tested-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Avi Kivity <avi@redhat.com>
2012-01-08memory: Fix adjust_endianness()Andreas Färber1-0/+1
Commit a621f38de85598a13d8d8524d1a94fc6a1818215 (Direct dispatch through MemoryRegion) moved byte swaps to a central function. Add a missing break, so that long-sized byte swaps don't abort. Signed-off-by: Andreas Färber <afaerber@suse.de> Reviewed-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Avi Kivity <avi@redhat.com>
2012-01-08memory: Fix memory_region_wrong_endianness()Andreas Färber1-1/+1
Since commit be675c972088eba210e18dc125613e9f205a6bfb (memory: move endianness compensation to memory core) it was checking for TARGET_BIG_ENDIAN instead of TARGET_WORDS_BIGENDIAN, thereby not swapping correctly for Big Endian targets. Signed-off-by: Andreas Färber <afaerber@suse.de> Reviewed-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Avi Kivity <avi@redhat.com>
2012-01-08kvm: fix build error in ppc kvm due to memory_region_init_ram_ptr() changeAvi Kivity1-1/+2
Commit c5705a772 ("vmstate, memory: decouple vmstate from memory API") changed the signature of memory_region_init_ram_ptr() but did not update a caller in the ppc kvm module. Fix. Signed-off-by: Avi Kivity <avi@redhat.com>
2012-01-07Merge branch 'target-arm.for-upstream' of ↵Aurelien Jarno3-8/+94
git://git.linaro.org/people/pmaydell/qemu-arm * 'target-arm.for-upstream' of git://git.linaro.org/people/pmaydell/qemu-arm: arm: add dummy A9-specific cp15 registers target-arm: Ignore attempts to set invalid modes in CPSR target-arm: Don't use cpu_single_env in bank_number()
2012-01-07Merge branch 'ppc-next' of git://repo.or.cz/qemu/agrafAurelien Jarno11-65/+347
* 'ppc-next' of git://repo.or.cz/qemu/agraf: PPC: Add description for the Freescale e500mc core. pseries: Check for duplicate addresses on the spapr-vio bus pseries: Populate "/chosen/linux,stdout-path" in the FDT pseries: Add a routine to find a stable "default" vty and use it pseries: Emit device tree nodes in reg order pseries: FDT NUMA extensions to support multi-node guests pseries: Remove hcalls callback kvm-ppc: halt secondary cpus when guest reset console: Fix segfault on screendump without VGA adapter PPC: monitor: add ability to dump SLB entries
2012-01-07sm501: Fix size of color_regStefan Weil1-1/+1
color_reg is expected to hold 32 bit values, so it was too small. This bug was reported by coverity: hw/sm501.c:624: result_independent_of_operands: color_reg >> 16 is 0 regardless of the values of its operands. This occurs as the bitwise first operand of '&'. Cc: Shin-ichiro Kawasaki <kawasaki@juno.dti.ne.jp> Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2012-01-07target-sh4: Fix operands for fipr, ftrv instructionsStefan Weil1-3/+3
Coverity complained about right shifts of opcode (16, 18) which were larger than the size of opcode (16 bit). Using the correct shift values fixes this. Cc: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2012-01-07malta: Fix regression (i8259 interrupts did not work)Stefan Weil1-4/+35
Commit 5632ae46d5bda798e971dae48ebb318ac2c3686a passes the address of i8259 to qemu_irq_proxy. i8259 is an auto variable with undefined value outside of mips_malta_init. This made the interrupt proxy unusable: either QEMU crashes, or the interrupt handler was not called. Ethernet for example no longer worked with MIPS Malta. v2: While v1 used a static variable for i8259, this patch introduces a qdev for the malta machine. i8259 is now part of the device status. This is a minimal qdev implementation to keep the patch small. Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2012-01-06Merge remote-tracking branch 'stefanha/trivial-patches' into stagingAnthony Liguori11-55/+51
* stefanha/trivial-patches: qemu-nbd: drop loop which can never loop Make python mandatory net/socket.c: Fix fd leak in net_socket_listen_init() error paths gdbstub: Fix fd leak in gdbserver_open() error path configure: Fix test for supported host CPU type configure: CONFIG_QEMU_INTERP_PREFIX only for user mode scsi virtio-blk usb-msd: Clean up device init error messages Strip trailing '\n' from error_report()'s first argument (again) qemu-options.hx: fix tls-channel help text
2012-01-06virtio-9p-proxy: Fix typo causing compile failure on 32 bit hostsPeter Maydell1-2/+2
Fix a compile failure on 32 bit hosts (integer constant is too large for 'unsigned long' type) by correcting a typo where the mask used for filling in the second f_fsid word had too many 'F's in it. Also drop the 'L' suffix that allowed this typo to go undetected on 64 bit hosts. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-01-06qemu-nbd: drop loop which can never loopStefan Hajnoczi1-6/+4
For some reason nbd_client_thread() has a do..while loop which can never loop, the condition is bogus because we would take a goto instead. Drop the loop. Reported-by: Dr David Alan Gilbert <davidagilbert@uk.ibm.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-01-06Make python mandatorySebastian Herbszt1-7/+3
The QEMU build depends on Python so make it an explicit requirement. Reviewed-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Sebastian Herbszt <herbszt@gmx.de> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-01-06net/socket.c: Fix fd leak in net_socket_listen_init() error pathsPeter Maydell1-0/+2
Fix a leak of a file descriptor due to missing closesocket() calls in error paths in net_socket_listen_init(). Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-01-06gdbstub: Fix fd leak in gdbserver_open() error pathPeter Maydell1-0/+2
Fix a leak of a file descriptor in error exit paths in gdbserver_open(). Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-01-06configure: Fix test for supported host CPU typePeter Maydell1-23/+21
The test for whether the host CPU is supported had several problems: * the attempt to fall back to TCI was done as a duplicate test, very late (so "--cpu foo" would fail early but "--cpu unicore32" would fail late, differently, and after configure had already printed a lot of output) * a number of CPUs only supported as guests were included in the list of CPUs we would accept as valid hosts, which would result in a late compile failure on those systems rather than a configure failure or fallback to TCI * bailing out for an unsupported CPU happened before the main option parsing, so "configure --help" wouldn't work Fix these by folding the setting of ARCH into the first test for supported host CPU, removing spurious guest-only CPU names from it, and moving the "fall back to TCI" code earlier. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-01-06configure: CONFIG_QEMU_INTERP_PREFIX only for user modeStefan Weil1-1/+1
Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-01-06scsi virtio-blk usb-msd: Clean up device init error messagesMarkus Armbruster4-8/+8
Replace error_report("DEVICE-NAME: MESSAGE"); by just error_report("MESSAGE"); in block device init functions. DEVICE-NAME is bogus in some cases: it's "scsi-disk" for device scsi-hd and scsi-cd, "virtio-blk-pci" for virtio-blk-s390, and "usb-msd" for usb-storage. There is no real need to put a device name in the message, because error_report() points to the offending command line option already: $ qemu-system-x86_64 --nodefaults --enable-kvm -vnc :0 -S -monitor stdio -usb -device virtio-blk-pci upstream-qemu: -device virtio-blk-pci: virtio-blk-pci: drive property not set upstream-qemu: -device virtio-blk-pci: Device 'virtio-blk-pci' could not be initialized And for a monitor command, it's obvious anyway: $ qemu-system-x86_64 --nodefaults --enable-kvm -vnc :0 -S -monitor stdio -usb (qemu) device_add virtio-blk-pci virtio-blk-pci: drive property not set Device 'virtio-blk-pci' could not be initialized Reported-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-01-06Strip trailing '\n' from error_report()'s first argument (again)Markus Armbruster2-8/+8
Commit 6daf194d got rid of them, but Hans and Gerd added some more lately. Tracked down with this Coccinelle semantic patch: @r@ expression fmt; position p; @@ error_report(fmt, ...)@p @script:python@ fmt << r.fmt; p << r.p; @@ if "\\n" in str(fmt): print "%s:%s:%s:%s" % (p[0].file, p[0].line, p[0].column, fmt) Signed-off-by: Markus Armbruster <armbru@redhat.com>
2012-01-06qemu-options.hx: fix tls-channel help textAlon Levy1-2/+2
Remove the default compiled out tunnel channel, add the always available cursor channel. Optimally the man page would depend on compiled in options, but that's harder to do. RHBZ: 688586 Acked-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Alon Levy <alevy@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-01-06Merge remote-tracking branch 'amit/master' into stagingAnthony Liguori1-1/+13
* amit/master: virtio-console: Fix failure on unconnected pty
2012-01-06Merge remote-tracking branch 'aneesh/for-upstream' into stagingAnthony Liguori20-514/+3414
* aneesh/for-upstream: hw/9pfs: Add support to use named socket for proxy FS hw/9pfs: man page for proxy helper hw/9pfs: Documentation changes related to proxy fs hw/9pfs: Proxy getversion hw/9pfs: xattr interfaces in proxy filesystem driver hw/9pfs: File ownership and others hw/9pfs: Add stat/readlink/statfs for proxy FS hw/9pfs: Create other filesystem objects hw/9pfs: Open and create files hw/9pfs: File system helper process for qemu 9p proxy FS hw/9pfs: Add new proxy filesystem driver hw/9pfs: Add validation to {un}marshal code hw/9pfs: Move pdu_marshal/unmarshal code to a seperate file hw/9pfs: Move opt validation to FsDriver callback
2012-01-06Merge remote-tracking branch 'sstabellini/xen_mem_fix' into stagingAnthony Liguori1-20/+18
* sstabellini/xen_mem_fix: xen: Fix after recent change in dirty bitmap tracking.
2012-01-06Merge remote-tracking branch 'kraxel/usb.33' into stagingAnthony Liguori3-19/+46
* kraxel/usb.33: usb-ohci: td.cbp incorrectly updated near page end usb-host: properly release port on unplug & exit usb-storage: cancel I/O on reset Fix parse of usb device description with multiple configurations
2012-01-06usb-ohci: td.cbp incorrectly updated near page endAndriy Gapon1-3/+3
The current code that updates the cbp value after a transfer looks like this: td.cbp += ret; if ((td.cbp & 0xfff) + ret > 0xfff) { <handle page overflow> because the 'ret' value is effectively added twice the check may fire too early when the overflow hasn't happened yet. Below is one of the possible changes that correct the behavior: Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-01-06usb-host: properly release port on unplug & exitGerd Hoffmann1-8/+20
Factor out port release into a separate function. Call release function in exit notifier too. Add explicit call the USBDEVFS_RELEASE_PORT ioctl, just closing the hub file handle seems not to be enougth. Make sure we release the port before resetting the device, otherwise host drivers will not re-attach. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-01-06usb-storage: cancel I/O on resetGerd Hoffmann1-0/+12
When resetting the usb-storage device we'll have to carefully cancel and clear any requests which might be in flight, otherwise we'll confuse the state machine. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-01-05arm: add dummy A9-specific cp15 registersMark Langsdorf3-1/+59
Add dummy register support for the cp15, CRn=c15 registers. config_base_register and power_control_register currently default to 0, but may have improved support after the QOM CPU patches are finished. Signed-off-by: Mark Langsdorf <mark.langsdorf@calxeda.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2012-01-05target-arm: Ignore attempts to set invalid modes in CPSRPeter Maydell1-1/+29
Ignore attempts to set the CPSR mode field to an invalid value. This is UNPREDICTABLE, but we should not cpu_abort() for things a malicious guest (or a confused user on the gdbstub interface) can provoke. Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2012-01-05target-arm: Don't use cpu_single_env in bank_number()Peter Maydell1-6/+6
Avoid using cpu_single_env in bank_number() -- if we were called via the gdb stub reading or writing the CPSR then it is NULL and we will segfault if we take the cpu_abort(). Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2012-01-05xen: Fix after recent change in dirty bitmap tracking.Anthony PERARD1-20/+18
A recent patch set from Avi break the dirty bitmap support of Xen. But this is because xen_sync_dirty_bitmap will return an error for an unhandled memory range (a0000 - bffff). However this is not a fatal error, so we should just continue instead of aborting. There is now an error printed when the Xen call failed. Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>