]> git.proxmox.com Git - mirror_qemu.git/log
mirror_qemu.git
12 years agokvm: x86: Establish IRQ0 override control
Jan Kiszka [Sat, 15 Oct 2011 12:08:26 +0000 (14:08 +0200)]
kvm: x86: Establish IRQ0 override control

KVM is forced to disable the IRQ0 override when we run with in-kernel
irqchip but without IRQ routing support of the kernel. Set the fwcfg
value correspondingly. This aligns us with qemu-kvm.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agokvm: Introduce core services for in-kernel irqchip support
Jan Kiszka [Sat, 15 Oct 2011 09:49:47 +0000 (11:49 +0200)]
kvm: Introduce core services for in-kernel irqchip support

Add the basic infrastructure to active in-kernel irqchip support, inject
interrupts into these models, and maintain IRQ routes.

Routing is optional and depends on the host arch supporting
KVM_CAP_IRQ_ROUTING. When it's not available on x86, we looe the HPET as
we can't route GSI0 to IOAPIC pin 2.

In-kernel irqchip support will once be controlled by the machine
property 'kernel_irqchip', but this is not yet wired up.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agomemory: Introduce memory_region_init_reservation
Jan Kiszka [Sun, 23 Oct 2011 14:01:19 +0000 (16:01 +0200)]
memory: Introduce memory_region_init_reservation

Introduce a memory region type that can reserve I/O space. Such regions
are useful for modeling I/O that is only handled outside of QEMU, i.e.
in the context of an accelerator like KVM.

Any access to such a region from QEMU is a bug, but could theoretically
be triggered by guest code (DMA to reserved region). So only warning
about such events once, then ignore them.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agoioapic: Factor out base class for KVM reuse
Jan Kiszka [Sun, 16 Oct 2011 17:38:22 +0000 (19:38 +0200)]
ioapic: Factor out base class for KVM reuse

Split up the IOAPIC analogously to APIC and i8259. KVM will share the
IOAPICCommonState, the vmstate, reset logic and certain init parts with
the user space model.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agoioapic: Drop post-load irr initialization
Jan Kiszka [Tue, 10 Jan 2012 11:24:10 +0000 (12:24 +0100)]
ioapic: Drop post-load irr initialization

As all devices undergo a reset prior to vmloa, and the reset value of
irr is 0, we do not need to do this clearing for older vmstates
explicitly. Dropping this redundant code will also make KVM integration
a bit simpler.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agoi8259: Factor out base class for KVM reuse
Jan Kiszka [Sun, 16 Oct 2011 12:38:45 +0000 (14:38 +0200)]
i8259: Factor out base class for KVM reuse

Analogously to the APIC, we will reuse some parts of the user space
i8259 model for KVM. The base class provides a common device state, the
vmstate, the property list, a reset core and some shared init bits.

This also introduces a common helper to instantiate a single i8259 chip
from the cascade-creating i8259_init function.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agoi8259: Completely privatize PicState
Jan Kiszka [Tue, 10 Jan 2012 15:31:16 +0000 (16:31 +0100)]
i8259: Completely privatize PicState

Use DeviceState instead of PicState in the public i8259 API. This is
cleaner and allows to reorganize the PIC data structures for KVM reuse.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agoapic: Open-code timer save/restore
Jan Kiszka [Sun, 16 Oct 2011 10:19:12 +0000 (12:19 +0200)]
apic: Open-code timer save/restore

To enable migration between accelerated and non-accelerated APIC models,
we will need to handle the timer saving and restoring specially and can
no longer rely on the automatics of VMSTATE_TIMER. Specifically,
accelerated model will not start any QEMUTimer.

This patch therefore factors out the generic bits into apic_next_timer
and use a post-load callback to implemented model-specific logic.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agoapic: Factor out base class for KVM reuse
Jan Kiszka [Sun, 16 Oct 2011 09:16:36 +0000 (11:16 +0200)]
apic: Factor out base class for KVM reuse

The KVM in-kernel APIC model will reuse parts of the user space model
while providing the same frontend view to guest and most management
interfaces.

Factor out an APIC base class to encapsulate those parts that will be
shared by user space and KVM model. This class offers callback hooks for
init, base/tpr setting, and the external NMI delivery that will be
set via APICCommonInfo structure and implemented specifically in the
subclasses.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agoapic: Introduce apic_report_irq_delivered
Jan Kiszka [Tue, 13 Dec 2011 14:39:04 +0000 (15:39 +0100)]
apic: Introduce apic_report_irq_delivered

The in-kernel i8259 and IOAPIC backends for KVM will need this, so
encapsulate the shared bits.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agoapic: Inject external NMI events via LINT1
Jan Kiszka [Mon, 17 Oct 2011 16:00:06 +0000 (00:00 +0800)]
apic: Inject external NMI events via LINT1

On real hardware, NMI button events are injected via the LINT1 line of
the APICs. E.g. kdump expect this wiring and gets upset if the per-APIC
LINT1 mask is not respected, i.e. if NMIs are injected to VCPUs that
should not receive them. Change the APIC emulation code to reflect this.

Based on qemu-kvm patch by Lai Jiangshan.

CC: Lai Jiangshan <laijs@cn.fujitsu.com>
Reported-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agoapic: Stop timer on reset
Jan Kiszka [Sun, 16 Oct 2011 09:59:30 +0000 (11:59 +0200)]
apic: Stop timer on reset

All LVTs are masked on reset, so the timer becomes ineffective. Letting
it tick nevertheless is harmless, but will at least create a spurious
trace event.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agokvm: Move kvmclock into hw/kvm folder
Jan Kiszka [Sat, 15 Oct 2011 08:01:27 +0000 (10:01 +0200)]
kvm: Move kvmclock into hw/kvm folder

More KVM-specific devices will come, so let's start with moving the
kvmclock into a dedicated folder.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agomsi: Generalize msix_supported to msi_supported
Jan Kiszka [Sat, 15 Oct 2011 12:33:17 +0000 (14:33 +0200)]
msi: Generalize msix_supported to msi_supported

Rename msix_supported to msi_supported and control MSI and MSI-X
activation this way. That was likely to original intention for this
flag, but MSI support came after MSI-X.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agohyper-v: initialize Hyper-V CPUID leaves.
Vadim Rozenfeld [Sun, 18 Dec 2011 20:48:14 +0000 (22:48 +0200)]
hyper-v: initialize Hyper-V CPUID leaves.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
12 years agohyper-v: introduce Hyper-V support infrastructure.
Vadim Rozenfeld [Sun, 18 Dec 2011 20:48:13 +0000 (22:48 +0200)]
hyper-v: introduce Hyper-V support infrastructure.

[Jan: fix build with CONFIG_USER_ONLY]

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
12 years agopxa2xx_keypad: fix unbalanced parenthesis.
Andrzej Zaborowski [Tue, 17 Jan 2012 01:14:42 +0000 (02:14 +0100)]
pxa2xx_keypad: fix unbalanced parenthesis.

Breakage introduced by me when ammending a previous patch, sorry.

12 years agohw/arm_boot.c: Make SMP boards specify address to poll in bootup loop
Evgeny Voevodin [Fri, 13 Jan 2012 20:52:40 +0000 (20:52 +0000)]
hw/arm_boot.c: Make SMP boards specify address to poll in bootup loop

The secondary CPU bootloader in arm_boot.c holds secondary CPUs in a
pen until the primary CPU releases them. Make boards specify the
address to be polled to determine whether to leave the pen (it was
previously hardcoded to 0x10000030, which is a Versatile Express/
Realview specific system register address).

Signed-off-by: Evgeny Voevodin <e.voevodin@samsung.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
12 years agohw/sysbus.h: Increase maximum number of device IRQs.
Evgeny Voevodin [Tue, 17 Jan 2012 01:08:19 +0000 (02:08 +0100)]
hw/sysbus.h: Increase maximum number of device IRQs.

Samsung exynos4210 Interrupt Combiner needs 512 IRQ sources.

Signed-off-by: Evgeny Voevodin <e.voevodin@samsung.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
12 years agopxa2xx_keypad: make single automatic scans work
Vasily Khoruzhick [Thu, 12 Jan 2012 19:30:34 +0000 (22:30 +0300)]
pxa2xx_keypad: make single automatic scans work

u-boot uses single automatic scans and polling in
pxa2xx_keypad driver, so clear KPC_AS bit immediately
and update keys state even if KPC_AS and KPC_ASACT are
cleared.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
12 years agopxa2xx_lcd: fix palette parser
Vasily Khoruzhick [Thu, 12 Jan 2012 19:30:35 +0000 (22:30 +0300)]
pxa2xx_lcd: fix palette parser

Pallete entry size for 16bpp format is 2 bytes, not 4

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
12 years agoseabios: Update to release 1.6.3.1
Jan Kiszka [Sun, 15 Jan 2012 16:48:25 +0000 (17:48 +0100)]
seabios: Update to release 1.6.3.1

User visible changes in seabios:
 - Probe HPET existence (fix for -no-hpet)
 - Probe PCI existence (fix for -machine isapc)
 - usb: fix boot paths

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agoisapc: Fix segfault during initialization
Jan Kiszka [Sat, 14 Jan 2012 13:08:28 +0000 (14:08 +0100)]
isapc: Fix segfault during initialization

Obviously, linking the RTC device state to the PIIX does not belong into
the common path that is shared with the isapc.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 years agokvm: flush the dirty log when unregistering a slot
Avi Kivity [Sun, 15 Jan 2012 14:13:59 +0000 (16:13 +0200)]
kvm: flush the dirty log when unregistering a slot

Otherwise, the dirty log information is lost in the kernel forever.

Fixes opensuse-12.1 boot screen, which changes the vga windows rapidly.

Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agoarm: Add dummy support for co-processor 15's secure config register
Rob Herring [Fri, 13 Jan 2012 17:25:08 +0000 (17:25 +0000)]
arm: Add dummy support for co-processor 15's secure config register

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Mark Langsdorf <mark.langsdorf@calxeda.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agotarget-arm: Fix errors in decode of M profile CPS
Peter Maydell [Fri, 13 Jan 2012 17:25:08 +0000 (17:25 +0000)]
target-arm: Fix errors in decode of M profile CPS

Fix errors in the decode of M profile CPS:
 * the decode of the I (affects PRIMASK) and F (affects FAULTMASK)
   bits was reversed
 * the FAULTMASK system register number is 19, not 17

This fixes an issue reported as LP:913925.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agoprepare for future GPLv2+ relicensing
Paolo Bonzini [Fri, 13 Jan 2012 16:44:23 +0000 (17:44 +0100)]
prepare for future GPLv2+ relicensing

All files under GPLv2 will get GPLv2+ changes starting tomorrow.
event_notifier.c and exec-obsolete.h were only ever touched by Red Hat
employees and can be relicensed now.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovirtio-console: no need to remove char handlers explicitly
Amit Shah [Fri, 13 Jan 2012 09:59:48 +0000 (15:29 +0530)]
virtio-console: no need to remove char handlers explicitly

qdev is now equipped (thanks to the last commit) to disassociate
chardevs from the qdev devices on the devices going away.  So doing it
in the virtio-console driver is not necessary.

Since that was the only thing being done in the qdev exit method, drop
it entirely.

Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqdev: Add a 'free' method to disassociate chardev from qdev device
Amit Shah [Fri, 13 Jan 2012 09:59:47 +0000 (15:29 +0530)]
qdev: Add a 'free' method to disassociate chardev from qdev device

When a device is removed, remove the association with a chardev, if any,
so that the chardev can be re-used later for other devices.

Reported-by: Qunfang Zhang <qzhang@redhat.com>
Fix-suggested-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovectorize is_dup_page
Paolo Bonzini [Fri, 23 Dec 2011 15:17:26 +0000 (16:17 +0100)]
vectorize is_dup_page

is_dup_page is already proceeding in 32-bit chunks.  Changing it
to 16 bytes using Altivec or SSE is easy.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovirtio-blk: refuse SG_IO requests with scsi=off
Paolo Bonzini [Fri, 23 Dec 2011 14:39:03 +0000 (15:39 +0100)]
virtio-blk: refuse SG_IO requests with scsi=off

QEMU does have a "scsi" option (to be used like -device
virtio-blk-pci,drive=foo,scsi=off).  However, it only
masks the feature bit, and does not reject the command
if a malicious guest disregards the feature bits and
issues a request.

Without this patch, using scsi=off does not protect you
from CVE-2011-4127.

Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovmstate: extract declarations out of hw/hw.h
Paolo Bonzini [Fri, 13 Jan 2012 16:07:20 +0000 (17:07 +0100)]
vmstate: extract declarations out of hw/hw.h

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoptimer: move declarations to ptimer.h
Paolo Bonzini [Fri, 13 Jan 2012 16:07:19 +0000 (17:07 +0100)]
ptimer: move declarations to ptimer.h

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agortc: clear non-PF bits when reinjecting on ack
Paolo Bonzini [Mon, 21 Nov 2011 18:00:31 +0000 (19:00 +0100)]
rtc: clear non-PF bits when reinjecting on ack

When an rtc interrupt is reinjected immediately after being acked,
other interrupts should not be reinjected, so do clear their bits.

Also, if the periodic interrupts have been disabled before acking,
do not reinject, as the guest might get very confused!

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agortc: raise PF bit when the periodic timer triggers but PIE=0
Paolo Bonzini [Mon, 21 Nov 2011 18:00:30 +0000 (19:00 +0100)]
rtc: raise PF bit when the periodic timer triggers but PIE=0

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agortc: raise AF bit when the alarm is encountered but AIE=0
Paolo Bonzini [Mon, 21 Nov 2011 18:00:29 +0000 (19:00 +0100)]
rtc: raise AF bit when the alarm is encountered but AIE=0

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agortc: fix 12-hour mode
Paolo Bonzini [Mon, 21 Nov 2011 18:00:28 +0000 (19:00 +0100)]
rtc: fix 12-hour mode

Hours in 12-hour mode are in the 1-12 range, not 0-11.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqdev: fix device_del by refactoring reference counting
Anthony Liguori [Fri, 13 Jan 2012 13:45:55 +0000 (07:45 -0600)]
qdev: fix device_del by refactoring reference counting

Commit 8eb0283 broken device_del by having too overzealous reference counting
checks.  Move the reference count checks to qdev_free(), make sure to remove
the parent link on free, and decrement the reference count on property removal.

Reported-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoMerge remote-tracking branch 'stefanha/trivial-patches' into HEAD
Anthony Liguori [Fri, 13 Jan 2012 16:17:49 +0000 (10:17 -0600)]
Merge remote-tracking branch 'stefanha/trivial-patches' into HEAD

* stefanha/trivial-patches:
  bt-host: add missing break statement
  virtfs-proxy-helper: Add missing printf format attribute
  virtfs-proxy-helper: Clean include files
  virtfs-proxy-helper: Fix compilation on newer systems
  hmp: Fix freeing of PciInfoList
  Add 'fall through' comments to case statements without break
  omap_dss: correct chip[1] index in RFBI_READ/RFBI_STATUS
  vnc: fix no-lock-key-sync strncmp() length
  vvfat: avoid leaking file descriptor in commit_one_file()
  Spelling fixes in comments and documentation
  tcg-arm: fix a typo in comments
  configure: Modify detection of supported warning options

12 years agotarget-i386: fix compilation with --enable-debug-tcg
Aurelien Jarno [Fri, 13 Jan 2012 15:01:40 +0000 (16:01 +0100)]
target-i386: fix compilation with --enable-debug-tcg

Commit 2355c16e74ffa4d14e7fc2b4a23b055565ac0221 introduced a new ldmxcsr
helper taking an i32 argument, but the helper is actually passed a long.
Fix that by truncating the long to i32.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
12 years agobt-host: add missing break statement
Stefan Hajnoczi [Thu, 12 Jan 2012 14:17:04 +0000 (14:17 +0000)]
bt-host: add missing break statement

The switch statement in bt_host_read() is missing a break in one case.
Andrzej Zaborowski <andrew.zaborowski@intel.com> confirmed that this is
not an intentional fall-through.

Reviewed-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agovirtfs-proxy-helper: Add missing printf format attribute
Stefan Weil [Wed, 11 Jan 2012 18:47:37 +0000 (19:47 +0100)]
virtfs-proxy-helper: Add missing printf format attribute

Every function with printf like arguments must have it
(see file HACKING), so add it.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agovirtfs-proxy-helper: Clean include files
Stefan Weil [Wed, 11 Jan 2012 18:34:30 +0000 (19:34 +0100)]
virtfs-proxy-helper: Clean include files

The common standard include files are already included via qemu-common.h,
and for the socket related include files there is qemu_socket.h, so the
code can be reduced by some lines.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agovirtfs-proxy-helper: Fix compilation on newer systems
Stefan Weil [Wed, 11 Jan 2012 18:34:29 +0000 (19:34 +0100)]
virtfs-proxy-helper: Fix compilation on newer systems

Include file attr/xattr.h is not available on "newer" systems
(for example Fedora 12 or Debian Squeeze).

See comments in qemu-xattr.h for more information.
This file handles the system dependencies automatically.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agohmp: Fix freeing of PciInfoList
Stefan Berger [Wed, 11 Jan 2012 15:51:52 +0000 (10:51 -0500)]
hmp: Fix freeing of PciInfoList

Remember the original PciInfoList in info_list and use
the info variable to traverse the list.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoAdd 'fall through' comments to case statements without break
Stefan Weil [Mon, 9 Jan 2012 17:29:51 +0000 (18:29 +0100)]
Add 'fall through' comments to case statements without break

These comments are used by static code analysis tools and in code reviews
to avoid false warnings because of missing break statements.

The case statements handled here were reported by coverity.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoomap_dss: correct chip[1] index in RFBI_READ/RFBI_STATUS
Stefan Hajnoczi [Sat, 7 Jan 2012 11:59:59 +0000 (11:59 +0000)]
omap_dss: correct chip[1] index in RFBI_READ/RFBI_STATUS

The RFBI_READ/RFBI_STATUS code incorrectly uses chip[0] when it should
be using chip[1].  Andrzej Zaborowski <balrog@zabor.org> confirmed this
bug since I don't know this code well.

Reported-by: Dr David Alan Gilbert <davidagilbert@uk.ibm.com>
Reviewed-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agovnc: fix no-lock-key-sync strncmp() length
Stefan Hajnoczi [Fri, 6 Jan 2012 16:57:45 +0000 (16:57 +0000)]
vnc: fix no-lock-key-sync strncmp() length

The no-lock-key-sync option is being parsed incorrectly because of an
outdated strcmp() length value.  Use the correct length so that invalid
option names do not match.

Reported-by: Dr David Alan Gilbert <davidagilbert@uk.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agovvfat: avoid leaking file descriptor in commit_one_file()
Stefan Hajnoczi [Fri, 6 Jan 2012 16:57:44 +0000 (16:57 +0000)]
vvfat: avoid leaking file descriptor in commit_one_file()

Reported-by: Dr David Alan Gilbert <davidagilbert@uk.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoSpelling fixes in comments and documentation
Stefan Weil [Sun, 8 Jan 2012 18:35:09 +0000 (19:35 +0100)]
Spelling fixes in comments and documentation

Codespell detected these new spelling issues.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agotcg-arm: fix a typo in comments
Aurelien Jarno [Sat, 7 Jan 2012 20:00:25 +0000 (21:00 +0100)]
tcg-arm: fix a typo in comments

ARM still doesn't support 16GB buffers in 32-bit modes, replace the
16GB by 16MB in the comment.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoconfigure: Modify detection of supported warning options
Stefan Weil [Wed, 4 Jan 2012 21:47:16 +0000 (22:47 +0100)]
configure: Modify detection of supported warning options

Reversing the order of the warning options and -Werror is important
when clang is used instead of gcc. It changes nothing for gcc.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agocris: Update paths to match the move of tests/cris
Edgar E. Iglesias [Fri, 13 Jan 2012 10:09:56 +0000 (11:09 +0100)]
cris: Update paths to match the move of tests/cris

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agocheck-qstring: remove check.h include
Anthony Liguori [Thu, 12 Jan 2012 17:33:22 +0000 (11:33 -0600)]
check-qstring: remove check.h include

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoMAINTAINERS: update tracing repo git URL
Stefan Hajnoczi [Wed, 11 Jan 2012 10:02:43 +0000 (10:02 +0000)]
MAINTAINERS: update tracing repo git URL

I have moved git hosting services.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoSupport for UDP unicast network backend
Benjamin [Wed, 11 Jan 2012 00:20:54 +0000 (09:20 +0900)]
Support for UDP unicast network backend

Signed-off-by: Benjamin MARSILI <mlspirat42@gmail.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agocleanup, save a syscall
Lai Jiangshan [Thu, 12 Jan 2012 09:05:35 +0000 (17:05 +0800)]
cleanup, save a syscall

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agocleanup, Remove duplicated code
Lai Jiangshan [Thu, 12 Jan 2012 09:05:34 +0000 (17:05 +0800)]
cleanup, Remove duplicated code

These two blocks of code are exactly the same, remove one.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agotest: eliminate libcheck tests and have make check use gtester
Anthony Liguori [Tue, 10 Jan 2012 19:10:51 +0000 (13:10 -0600)]
test: eliminate libcheck tests and have make check use gtester

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agocheck-qjson: enable disabled tests
Anthony Liguori [Tue, 10 Jan 2012 19:10:50 +0000 (13:10 -0600)]
check-qjson: enable disabled tests

gtest does the right thing here so there's no need to comment these tests out.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agocheck-qjson: convert to gtest
Anthony Liguori [Tue, 10 Jan 2012 19:10:49 +0000 (13:10 -0600)]
check-qjson: convert to gtest

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agocheck-qlist: convert to gtest
Anthony Liguori [Tue, 10 Jan 2012 19:10:48 +0000 (13:10 -0600)]
check-qlist: convert to gtest

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agocheck-qstring: convert to gtest
Anthony Liguori [Tue, 10 Jan 2012 19:10:47 +0000 (13:10 -0600)]
check-qstring: convert to gtest

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agocheck-qint: convert to gtest
Anthony Liguori [Tue, 10 Jan 2012 19:10:46 +0000 (13:10 -0600)]
check-qint: convert to gtest

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agocheck-qfloat: convert to gtest
Anthony Liguori [Tue, 10 Jan 2012 19:10:45 +0000 (13:10 -0600)]
check-qfloat: convert to gtest

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agocheck-qdict: convert to gtest
Anthony Liguori [Tue, 10 Jan 2012 19:10:44 +0000 (13:10 -0600)]
check-qdict: convert to gtest

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agobuild: split unit test builds to a separate makefile fragment
Anthony Liguori [Tue, 10 Jan 2012 19:10:43 +0000 (13:10 -0600)]
build: split unit test builds to a separate makefile fragment

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agotests: mv tests/* -> tests/tcg
Anthony Liguori [Tue, 10 Jan 2012 19:10:42 +0000 (13:10 -0600)]
tests: mv tests/* -> tests/tcg

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovga: optimize ppm_save() divisions
Avi Kivity [Tue, 3 Jan 2012 13:32:57 +0000 (15:32 +0200)]
vga: optimize ppm_save() divisions

ppm_save() spends upwards of 50% of its time doing divisions. Replace them
with shifts.

Reviewed-by: Alon Levy <alevy@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoFix qapi code generation fix
Avi Kivity [Wed, 28 Dec 2011 10:26:58 +0000 (12:26 +0200)]
Fix qapi code generation fix

The fixes to qapi code generation had multiple bugs:
- the Null class used to drop output was missing some methods
- in some scripts it was never instantiated, leading to a None return,
  which is missing even more methods
- the --source and --header options were swapped

Luckily, all those bugs were hidden by a makefile bug which caused the
old behaviour (with the race) to be invoked.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoetraxfs-dma: Model metadata and eop
Lars Persson [Wed, 21 Dec 2011 14:11:35 +0000 (15:11 +0100)]
etraxfs-dma: Model metadata and eop

- Send EOP flags to the out channels.
- Send data descriptor metadata to the out channels.

Signed-off-by: Lars Persson <larper@axis.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agomicroblaze: Break the tb at memory barriers
Edgar E. Iglesias [Tue, 10 Jan 2012 09:33:37 +0000 (10:33 +0100)]
microblaze: Break the tb at memory barriers

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agomicroblaze: Emulate the hw stackprotector
Edgar E. Iglesias [Tue, 10 Jan 2012 09:27:11 +0000 (10:27 +0100)]
microblaze: Emulate the hw stackprotector

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agomicroblaze: Add support for the clz insn
Edgar E. Iglesias [Tue, 10 Jan 2012 09:17:21 +0000 (10:17 +0100)]
microblaze: Add support for the clz insn

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agotarget-i386: fix SSE rounding and flush to zero
Aurelien Jarno [Sat, 7 Jan 2012 14:20:12 +0000 (15:20 +0100)]
target-i386: fix SSE rounding and flush to zero

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>
12 years agotarget-i386: fix dpps and dppd SSE2 instructions
Aurelien Jarno [Sat, 7 Jan 2012 14:20:12 +0000 (15:20 +0100)]
target-i386: fix dpps and dppd SSE2 instructions

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>
12 years agotarget-i386: fix round{pd,ps,sd,ss} SSE2 instructions
Aurelien Jarno [Sat, 7 Jan 2012 14:20:11 +0000 (15:20 +0100)]
target-i386: fix round{pd,ps,sd,ss} SSE2 instructions

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>
12 years agotarget-i386: fix {min,max}{pd,ps,sd,ss} SSE2 instructions
Aurelien Jarno [Sat, 7 Jan 2012 14:20:11 +0000 (15:20 +0100)]
target-i386: fix {min,max}{pd,ps,sd,ss} SSE2 instructions

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>
12 years agowm8750: Fix calculation of number of array elements
Stefan Weil [Mon, 9 Jan 2012 18:32:04 +0000 (19:32 +0100)]
wm8750: Fix calculation of number of array elements

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>
12 years agoelf: Improve symbol lookup (optimize, fix for bsd-user)
Stefan Weil [Thu, 5 Jan 2012 14:39:39 +0000 (15:39 +0100)]
elf: Improve symbol lookup (optimize, fix for bsd-user)

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>
12 years agohw/integratorcp: Simplify flash remap code
Peter Maydell [Fri, 6 Jan 2012 18:58:28 +0000 (18:58 +0000)]
hw/integratorcp: Simplify flash remap code

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>
12 years agohw/integratorcp: Fix sense of REMAP bit
Peter Maydell [Fri, 6 Jan 2012 18:58:27 +0000 (18:58 +0000)]
hw/integratorcp: Fix sense of REMAP bit

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>
12 years agoMerge branch 's390-next' of git://repo.or.cz/qemu/agraf
Aurelien Jarno [Tue, 10 Jan 2012 17:24:11 +0000 (18:24 +0100)]
Merge branch 's390-next' of git://repo.or.cz/qemu/agraf

* '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

12 years agoPPC: Fix linker scripts on ppc hosts
Alexander Graf [Mon, 12 Dec 2011 21:36:01 +0000 (22:36 +0100)]
PPC: Fix linker scripts on ppc hosts

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>
12 years agotarget-sh4: ignore ocbp and ocbwb instructions
Aurelien Jarno [Sat, 7 Jan 2012 14:20:12 +0000 (15:20 +0100)]
target-sh4: ignore ocbp and ocbwb instructions

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>
12 years agotcg/arm: Use r6 as TCG_AREG0 to avoid clash with Thumb framepointer
Peter Maydell [Mon, 26 Dec 2011 00:02:18 +0000 (00:02 +0000)]
tcg/arm: Use r6 as TCG_AREG0 to avoid clash with Thumb framepointer

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>
12 years agocris-dis: Clean memory allocation
Stefan Weil [Mon, 9 Jan 2012 18:23:42 +0000 (19:23 +0100)]
cris-dis: Clean memory allocation

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>
12 years agoMerge remote-tracking branch 'qemu-kvm/fix-vhost-after-memory-listener' into staging
Anthony Liguori [Mon, 9 Jan 2012 14:54:04 +0000 (08:54 -0600)]
Merge remote-tracking branch 'qemu-kvm/fix-vhost-after-memory-listener' into staging

* qemu-kvm/fix-vhost-after-memory-listener:
  vhost: improve region filtering
  vhost: fix mem_sections memory corruption
  vhost: fix incorrect userspace address

12 years agovhost: improve region filtering
Avi Kivity [Mon, 9 Jan 2012 12:01:39 +0000 (14:01 +0200)]
vhost: improve region filtering

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>
12 years agovhost: fix mem_sections memory corruption
Avi Kivity [Mon, 9 Jan 2012 11:59:50 +0000 (13:59 +0200)]
vhost: fix mem_sections memory corruption

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>
12 years agovhost: fix incorrect userspace address
Avi Kivity [Mon, 9 Jan 2012 11:09:40 +0000 (13:09 +0200)]
vhost: fix incorrect userspace address

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>
12 years agoFix vmstate_register_ram() for rom/device regions
Avi Kivity [Sun, 8 Jan 2012 11:18:19 +0000 (13:18 +0200)]
Fix vmstate_register_ram() for rom/device regions

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>
12 years agomemory: Fix adjust_endianness()
Andreas Färber [Sat, 7 Jan 2012 08:45:15 +0000 (09:45 +0100)]
memory: Fix adjust_endianness()

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>
12 years agomemory: Fix memory_region_wrong_endianness()
Andreas Färber [Sat, 7 Jan 2012 08:45:14 +0000 (09:45 +0100)]
memory: Fix memory_region_wrong_endianness()

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>
12 years agokvm: fix build error in ppc kvm due to memory_region_init_ram_ptr() change
Avi Kivity [Thu, 5 Jan 2012 10:30:31 +0000 (12:30 +0200)]
kvm: fix build error in ppc kvm due to memory_region_init_ram_ptr() change

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>
12 years agoMerge branch 'target-arm.for-upstream' of git://git.linaro.org/people/pmaydell/qemu-arm
Aurelien Jarno [Sat, 7 Jan 2012 21:19:14 +0000 (22:19 +0100)]
Merge branch 'target-arm.for-upstream' of 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()

12 years agoMerge branch 'ppc-next' of git://repo.or.cz/qemu/agraf
Aurelien Jarno [Sat, 7 Jan 2012 21:01:57 +0000 (22:01 +0100)]
Merge branch 'ppc-next' of git://repo.or.cz/qemu/agraf

* '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

12 years agosm501: Fix size of color_reg
Stefan Weil [Wed, 4 Jan 2012 21:50:09 +0000 (22:50 +0100)]
sm501: Fix size of color_reg

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>
12 years agotarget-sh4: Fix operands for fipr, ftrv instructions
Stefan Weil [Thu, 5 Jan 2012 12:11:48 +0000 (13:11 +0100)]
target-sh4: Fix operands for fipr, ftrv instructions

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>
12 years agomalta: Fix regression (i8259 interrupts did not work)
Stefan Weil [Tue, 29 Nov 2011 05:34:48 +0000 (06:34 +0100)]
malta: Fix regression (i8259 interrupts did not work)

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>