]> git.proxmox.com Git - mirror_qemu.git/log
mirror_qemu.git
12 years agoisa: always use provided ISA bus when creating an isa device
Hervé Poussineau [Thu, 15 Dec 2011 21:09:59 +0000 (22:09 +0100)]
isa: always use provided ISA bus when creating an isa device

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agomalta: give ISA bus to ISA methods
Hervé Poussineau [Thu, 15 Dec 2011 21:09:58 +0000 (22:09 +0100)]
malta: give ISA bus to ISA methods

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agofulong2e: give ISA bus to ISA methods
Hervé Poussineau [Thu, 15 Dec 2011 21:09:57 +0000 (22:09 +0100)]
fulong2e: give ISA bus to ISA methods

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agosun4u: give ISA bus to ISA methods
Hervé Poussineau [Thu, 15 Dec 2011 21:09:56 +0000 (22:09 +0100)]
sun4u: give ISA bus to ISA methods

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoalpha: give ISA bus to ISA methods
Hervé Poussineau [Thu, 15 Dec 2011 21:09:55 +0000 (22:09 +0100)]
alpha: give ISA bus to ISA methods

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agopc: give ISA bus to ISA methods
Hervé Poussineau [Thu, 15 Dec 2011 21:09:54 +0000 (22:09 +0100)]
pc: give ISA bus to ISA methods

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoi8259: give ISA device to isa_register_ioport()
Hervé Poussineau [Thu, 15 Dec 2011 21:09:53 +0000 (22:09 +0100)]
i8259: give ISA device to isa_register_ioport()

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoisa: move ISABus structure definition to header file
Hervé Poussineau [Thu, 15 Dec 2011 21:09:52 +0000 (22:09 +0100)]
isa: move ISABus structure definition to header file

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoisa: give ISABus/ISADevice to isa_create(), isa_bus_irqs() and isa_get_irq() functions
Hervé Poussineau [Thu, 15 Dec 2011 21:09:51 +0000 (22:09 +0100)]
isa: give ISABus/ISADevice to isa_create(), isa_bus_irqs() and isa_get_irq() functions

NULL is a valid bus/device, so there is no change in behaviour.

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agonet: store guest timestamp in dump file instead of time since guest startup
Hervé Poussineau [Wed, 30 Nov 2011 20:35:38 +0000 (21:35 +0100)]
net: store guest timestamp in dump file instead of time since guest startup

Stored dates are no more 1970-01-01 (+ run time), but have a real meaning.
If someone wants to have comparable timestamps accross boots, it is
possible to start qemu with -rtc to give the startup date.

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agonet: truncate output file when using dump backend
Hervé Poussineau [Wed, 30 Nov 2011 20:35:37 +0000 (21:35 +0100)]
net: truncate output file when using dump backend

This prevents data of a previous run to be seen in the new dump file.

Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoi440fx: remove piix3 field
Paolo Bonzini [Tue, 20 Dec 2011 13:10:36 +0000 (14:10 +0100)]
i440fx: remove piix3 field

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqdev: fix hotplug when no -device is specified
Anthony Liguori [Mon, 19 Dec 2011 22:37:46 +0000 (16:37 -0600)]
qdev: fix hotplug when no -device is specified

The peripheral[-anon] containers are initialized lazily but since they sit on
sysbus, they can not be created after realize.  This was causing an abort() to
occur during hotplug if no -device option was used.

This was spotted by qemu-test::device-add.sh

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agosysbus: remove sysbus_init_mmio_cb2
Benoît Canet [Fri, 16 Dec 2011 22:37:48 +0000 (23:37 +0100)]
sysbus: remove sysbus_init_mmio_cb2

This function is not longer in use so remove it.

Signed-off-by: Benoît Canet <benoit.canet@gmail.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoppce500_pci: remove sysbus_init_mmio_cb2 usage
Benoît Canet [Fri, 16 Dec 2011 22:37:47 +0000 (23:37 +0100)]
ppce500_pci: remove sysbus_init_mmio_cb2 usage

Expose only one container MemoryRegion to sysbus.
(Peter Maydell's idea)

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Benoît Canet <benoit.canet@gmail.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agosh_pci: remove sysbus_init_mmio_cb2 usage
Benoît Canet [Fri, 16 Dec 2011 22:37:46 +0000 (23:37 +0100)]
sh_pci: remove sysbus_init_mmio_cb2 usage

The isa region is not exposed as a sysbus region because the iobr
register contains its address and use it to remap dynamically
the region. (Peter Maydell's idea)

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Benoît Canet <benoit.canet@gmail.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: register qdev properties also as non-legacy properties
Paolo Bonzini [Sun, 18 Dec 2011 16:05:11 +0000 (17:05 +0100)]
qom: register qdev properties also as non-legacy properties

Push legacy properties into a "legacy-..." namespace, and make them
available with correct types too.

For now, all properties come in both variants.  This need not be the
case for string properties.  We will revisit this after -device is
changed to actually use the legacy properties.

Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: distinguish "legacy" property type name from QOM type name
Paolo Bonzini [Sun, 18 Dec 2011 16:05:10 +0000 (17:05 +0100)]
qom: distinguish "legacy" property type name from QOM type name

Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: introduce get/set methods for Property
Paolo Bonzini [Sun, 18 Dec 2011 16:05:09 +0000 (17:05 +0100)]
qom: introduce get/set methods for Property

This patch adds a visitor interface to Property.  This way, QOM will be
able to expose Properties that access a fixed field in a struct without
exposing also the everything-is-a-string "feature" of qdev properties.

Whenever the printed representation in both QOM and qdev (which is
typically the case for device backends), parse/print code can be reused
via get_generic/set_generic.  Dually, whenever multiple PropertyInfos
have the same representation in both the struct and the visitors the
code can be reused (for example among all of int32/uint32/hex32).

Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: introduce QERR_PROPERTY_VALUE_OUT_OF_RANGE
Paolo Bonzini [Sun, 18 Dec 2011 16:05:08 +0000 (17:05 +0100)]
qom: introduce QERR_PROPERTY_VALUE_OUT_OF_RANGE

This will be used when reject invalid values for integer fields that
are less than 64-bits wide.

Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: interpret the return value when setting legacy properties
Paolo Bonzini [Sun, 18 Dec 2011 16:05:07 +0000 (17:05 +0100)]
qom: interpret the return value when setting legacy properties

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: push permission checks up into qdev_property_add_legacy
Paolo Bonzini [Sun, 18 Dec 2011 16:05:06 +0000 (17:05 +0100)]
qom: push permission checks up into qdev_property_add_legacy

qdev_property_get and qdev_property_set can generate permission
denied errors themselves.  Do not duplicate this functionality in
qdev_get/set_legacy_property, and clean up excessive indentation.

Reviewed-by: Anthony Liguori <anthony@codemonkey.ws>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: fix swapped parameters
Paolo Bonzini [Sun, 18 Dec 2011 16:05:05 +0000 (17:05 +0100)]
qom: fix swapped parameters

Reviewed-by: Anthony Liguori <anthony@codemonkey.ws>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqapi: protect against NULL QObject in qmp_input_get_object
Paolo Bonzini [Sun, 18 Dec 2011 16:05:04 +0000 (17:05 +0100)]
qapi: protect against NULL QObject in qmp_input_get_object

A NULL qobj can occur when a parameter is fetched via qdict_get, but
the parameter is not in the command.  By returning NULL, the caller can
choose whether to raise a missing parameter error, an invalid parameter
type error, or use a default value.  For example, qom-set could can
use this to reset a property to its default value, though at this time
it will fail with "Invalid parameter type".  In any case, anything is
better than crashing!

Reviewed-by: Anthony Liguori <anthony@codemonkey.ws>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoDocumentation: Move balloon option out of i386 only section
Michael Ellerman [Mon, 19 Dec 2011 06:19:32 +0000 (17:19 +1100)]
Documentation: Move balloon option out of i386 only section

The balloon option is not i386 only, so move it into the standard
options section.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovl.c: In qemu -h output, only print options for the arch we are running as
Michael Ellerman [Mon, 19 Dec 2011 06:19:31 +0000 (17:19 +1100)]
vl.c: In qemu -h output, only print options for the arch we are running as

Only print options in the help output that are accepted by our arch.
This is less confusing for users and also for other programs that
consume the help output.

The options affected are:

 -g and -prom-env only displayed on PPC or SPARC

 -win2k-hack, -rtc-td-hack, -no-fd-bootchk, -no-acpi, -no-hpet,
 -acpitable, -smbios only displayed on i386

 -semihosting only displayed on ARM, M68K or XTENSA

 -old-param only displayed on ARM

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovl.c: Move option generation logic into a wrapper file
Michael Ellerman [Mon, 19 Dec 2011 06:19:30 +0000 (17:19 +1100)]
vl.c: Move option generation logic into a wrapper file

In vl.c and qemu-options.h we define macros and include qemu-options.def
in order to generate different content. Move the bulk of the def'ing and
undef'ing into a wrapper, this will make it cleaner when we add another
macro in the next patch.

AFAICS undefining GEN_DOCS services no purpose, but I've left it for now.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoMerge remote-tracking branch 'qemu-kvm/memory/exec-obsolete' into staging
Anthony Liguori [Mon, 19 Dec 2011 15:45:17 +0000 (09:45 -0600)]
Merge remote-tracking branch 'qemu-kvm/memory/exec-obsolete' into staging

12 years agoMerge remote-tracking branch 'qemu-kvm/memory/xen' into staging
Anthony Liguori [Mon, 19 Dec 2011 15:45:12 +0000 (09:45 -0600)]
Merge remote-tracking branch 'qemu-kvm/memory/xen' into staging

12 years agomemory: move obsolete exec.c functions to a private header
Avi Kivity [Thu, 15 Dec 2011 13:25:22 +0000 (15:25 +0200)]
memory: move obsolete exec.c functions to a private header

This will help avoid accidental usage.

Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agoetraxfs_eth: drop bogus cpu_unregister_io_memory()
Avi Kivity [Thu, 15 Dec 2011 13:23:03 +0000 (15:23 +0200)]
etraxfs_eth: drop bogus cpu_unregister_io_memory()

Leftover call to cpu_unregister_io_memory() can segfault on cleanup.  Remove.

Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agoxen: convert to memory API
Avi Kivity [Sun, 18 Dec 2011 14:27:48 +0000 (16:27 +0200)]
xen: convert to memory API

Undo the private implementation of qemu_ram_alloc(); use the global one
(which calls right back into xen_ram_alloc()).

Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agomemory, xen: pass MemoryRegion to xen_ram_alloc()
Avi Kivity [Sun, 18 Dec 2011 13:48:55 +0000 (15:48 +0200)]
memory, xen: pass MemoryRegion to xen_ram_alloc()

Currently xen_ram_alloc() relies on ram_addr, which is going away.
Give it something else to use as a cookie.

Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agoMerge remote-tracking branch 'qemu-kvm/memory/mutators' into staging
Anthony Liguori [Mon, 19 Dec 2011 15:12:25 +0000 (09:12 -0600)]
Merge remote-tracking branch 'qemu-kvm/memory/mutators' into staging

Conflicts:
memory.h

12 years agoMerge remote-tracking branch 'stefanha/trivial-patches' into staging
Anthony Liguori [Mon, 19 Dec 2011 15:10:49 +0000 (09:10 -0600)]
Merge remote-tracking branch 'stefanha/trivial-patches' into staging

12 years agoMerge remote-tracking branch 'kwolf/for-anthony' into staging
Anthony Liguori [Mon, 19 Dec 2011 14:50:47 +0000 (08:50 -0600)]
Merge remote-tracking branch 'kwolf/for-anthony' into staging

12 years agopc: fix event_idx compatibility for virtio devices
Anthony Liguori [Sun, 18 Dec 2011 19:07:03 +0000 (13:07 -0600)]
pc: fix event_idx compatibility for virtio devices

event_idx was introduced in 0.15 and must be disabled for all virtio-pci devices
(including virtio-balloon-pci).

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoconfigure: Improve Xen autodetection for hosts without Xen
Stefan Weil [Sat, 17 Dec 2011 08:27:39 +0000 (09:27 +0100)]
configure: Improve Xen autodetection for hosts without Xen

With this patch, it only takes one test (instead of four)
to detect that there is no Xen support at all.

For most build hosts, this will reduce the time configure needs.
It will also reduce noisy output in config.log.

Build hosts with Xen now need up to five (instead of up to four)
tests. They get improved diagnostics when Xen support fails.

Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoconfigure: Fix compiler warnings in config.log (statement without effect)
Stefan Weil [Sat, 17 Dec 2011 08:27:38 +0000 (09:27 +0100)]
configure: Fix compiler warnings in config.log (statement without effect)

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoconfigure: Fix compiler warning in config.log (value was never used)
Stefan Weil [Sat, 17 Dec 2011 08:27:37 +0000 (09:27 +0100)]
configure: Fix compiler warning in config.log (value was never used)

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoconfigure: Fix compiler warning in config.log (undefined NULL)
Stefan Weil [Sat, 17 Dec 2011 08:27:36 +0000 (09:27 +0100)]
configure: Fix compiler warning in config.log (undefined NULL)

Avoid the warning when probing for xfs.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoconfigure: Fix compiler warnings in config.log (uninitialized variable)
Stefan Weil [Sat, 17 Dec 2011 08:27:35 +0000 (09:27 +0100)]
configure: Fix compiler warnings in config.log (uninitialized variable)

warning: ‘fd’ is used uninitialized in this function
warning: ‘id’ is used uninitialized in this function

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoconfigure: Fix compiler warning in config.log (macro redefined)
Stefan Weil [Sat, 17 Dec 2011 08:27:34 +0000 (09:27 +0100)]
configure: Fix compiler warning in config.log (macro redefined)

warning: "_GNU_SOURCE" redefined

The macro is already defined on the command line.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoconfigure: Fix compiler warning in config.log (unused variable)
Stefan Weil [Sat, 17 Dec 2011 08:27:33 +0000 (09:27 +0100)]
configure: Fix compiler warning in config.log (unused variable)

warning: unused variable ‘iov’

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoconfigure: Fix compiler warnings in config.log (null arguments)
Stefan Weil [Sat, 17 Dec 2011 08:27:32 +0000 (09:27 +0100)]
configure: Fix compiler warnings in config.log (null arguments)

warning: null argument where non-null required (argument 1)
warning: null argument where non-null required (argument 3)

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoconfigure: Fix compiler warning in config.log (integer from pointer)
Stefan Weil [Sat, 17 Dec 2011 16:46:02 +0000 (17:46 +0100)]
configure: Fix compiler warning in config.log (integer from pointer)

warning: return makes integer from pointer without a cast

v2: Removed type cast.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoconfigure: Fix compiler warnings in config.log (old-style function definition)
Stefan Weil [Sat, 17 Dec 2011 08:27:30 +0000 (09:27 +0100)]
configure: Fix compiler warnings in config.log (old-style function definition)

warning: function declaration isn’t a prototype
In function ‘foo’:
warning: old-style function definition

The function name was changed, too, to avoid an additional warning.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoconfigure: Fix compiler warnings in config.log (always return a value from main)
Stefan Weil [Sat, 17 Dec 2011 08:27:29 +0000 (09:27 +0100)]
configure: Fix compiler warnings in config.log (always return a value from main)

Fix several "warning: control reaches end of non-void function".

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoAlso create piix3 property when Xen is enabled
Julian Pidancet [Sun, 18 Dec 2011 18:08:44 +0000 (18:08 +0000)]
Also create piix3 property when Xen is enabled

This recently added line in hw/pc_piix.c is causing a SEGV on a Xen
setup because the piix3 property is never created:

qdev_property_add_child(qdev_resolve_path("/i440fx/piix3", NULL),
                            "rtc", (DeviceState *)rtc_state, NULL);

Signed-off-by: Julian Pidancet <julian.pidancet@gmail.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoslirp: Fix typo in net_slirp_hostfwd_remove
Geoffrey Thomas [Sat, 17 Dec 2011 09:23:59 +0000 (04:23 -0500)]
slirp: Fix typo in net_slirp_hostfwd_remove

Report an error when err is nonzero, not when it is zero.

Signed-off-by: Geoffrey Thomas <geofft@ldpreload.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agopc: add pc-0.15
Anthony Liguori [Sun, 18 Dec 2011 18:59:12 +0000 (12:59 -0600)]
pc: add pc-0.15

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agokvm: Print something before calling abort() if KVM_RUN fails
Michael Ellerman [Fri, 16 Dec 2011 00:20:20 +0000 (11:20 +1100)]
kvm: Print something before calling abort() if KVM_RUN fails

It's a little unfriendly to call abort() without printing any sort of
error message. So turn the DPRINTK() into an fprintf(stderr, ...).

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agostellaris: Calculate system clock period on reset
Peter Maydell [Thu, 15 Dec 2011 18:58:26 +0000 (18:58 +0000)]
stellaris: Calculate system clock period on reset

Calculate the system clock period on reset; otherwise it remains
set to the default value of zero and attempting to use it provokes
a hang. This is one of the issues noted in LP:696094.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoMakefile.target: Remove unnecessary dependency rules
Peter Maydell [Thu, 15 Dec 2011 18:28:52 +0000 (18:28 +0000)]
Makefile.target: Remove unnecessary dependency rules

Remove some dependency rules which aren't necessary (the automatically
generated .d files cover all these). These were leftovers from dyngen
days, when the object files also had a dependency on some generated
files.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoide: drop argument to dma_buf_commit
Paolo Bonzini [Thu, 15 Dec 2011 14:11:16 +0000 (15:11 +0100)]
ide: drop argument to dma_buf_commit

The argument is unused and even wrong when the function is called
by ide_handle_rw_error.  Drop it.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agophys_page_find_alloc: Use correct initial region_offset.
Alex Rozenman [Tue, 13 Dec 2011 10:52:08 +0000 (12:52 +0200)]
phys_page_find_alloc: Use correct initial region_offset.

This fixes a common bug with initial region_offset value.
Usually, the pages are re-assigned afterwards, so the bug
has a very small effect on regular QEMU use flows.

Signed-off-by: Alex Rozenman <Alex_Rozenman@mentor.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agonetwork scripts: don't block SIGCHLD before forking
Michael Roth [Thu, 8 Dec 2011 03:48:07 +0000 (21:48 -0600)]
network scripts: don't block SIGCHLD before forking

This patch fixes a bug where child processes of launch_script() can
misbehave due to SIGCHLD being blocked. In the case of `sudo`, this
causes a permanent hang.

Previously a SIGCHLD handler was added to reap fork_exec()'d zombie
processes by calling waitpid(-1, ...). This required other
fork()/waitpid() callers to temporarilly block SIGCHILD to avoid
having the final wait status being intercepted by the SIGCHLD
handler:

7c3370d4fe3fa6cda8655f109e4659afc8ca4269

Since then, the qemu_add_child_watch() interface was added to allow
registration of such processes and reap only from that specific set
of PIDs:

4d54ec7898bd951007cb6122d5315584bd41d0c4

As a result, we can now avoid blocking SIGCHLD in launch_script(), so
drop that behavior.

Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoHACKING: clarify allocation/free recommendations
Peter Maydell [Thu, 15 Dec 2011 13:33:54 +0000 (13:33 +0000)]
HACKING: clarify allocation/free recommendations

Clarify the allocation/free recommendations; this is mostly
just tidying up following the global-search-and-replace done
with the conversion to the GLib g_malloc and friends.

Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agousb: fix usb_qdev_init() error handling again
Stefan Hajnoczi [Thu, 15 Dec 2011 10:05:18 +0000 (10:05 +0000)]
usb: fix usb_qdev_init() error handling again

Commit f462141f18ffdd75847f6459ef83d90b831d12c0 introduced clean up code
when usb_qdev_init() fails.  Unfortunately it calls .handle_destroy()
when .init() was never invoked or failed.  This can lead to crashes when
.handle_destroy() tries to clean up things that were never initialized.

This patch is careful to undo only those steps that completed along the
usb_qdev_init() code path.  It's not as pretty as the unified error
handling in f462141f18ffdd75847f6459ef83d90b831d12c0 but it's necessary.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoexec.c: Fix subpage memory access to RAM MemoryRegion
Andreas Färber [Wed, 30 Nov 2011 15:26:21 +0000 (16:26 +0100)]
exec.c: Fix subpage memory access to RAM MemoryRegion

Commit 95c318f5e1f88d7e5bcc6deac17330fd4806a2d3 (Fix segfault in mmio
subpage handling code.) prevented a segfault by making all subpage
registrations over an existing memory page perform an unassigned access.
Symptoms were writes not taking effect and reads returning zero.

Very small page sizes are not currently supported either,
so subpage memory areas cannot fully be avoided.

Therefore change the previous fix to use a new IO_MEM_SUBPAGE_RAM
instead of IO_MEM_UNASSIGNED. Suggested by Avi.

Reviewed-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
Cc: Avi Kivity <avi@redhat.com>
Cc: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovl.c: Print the actual program name in help output
michael@ozlabs.org [Tue, 13 Dec 2011 01:22:58 +0000 (12:22 +1100)]
vl.c: Print the actual program name in help output

In help() we do what boils down to:

  printf("%s", "qemu");

This seems to be an artifact of be995c27640a82c7056b6f53d02ec823570114e5
("removed unused code"), which removed some ifdef'ery that used to print
a different name depending on CONFIG_SOFTMMU.

Instead print the actual program name, originally from argv[0].

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoerror: Add an accessor for progname
michael@ozlabs.org [Tue, 13 Dec 2011 01:22:57 +0000 (12:22 +1100)]
error: Add an accessor for progname

We'd like to get the progname for help output, so add an accessor.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Reviewed-by: Andreas F=E4rber <afaerber@suse.de>
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agofix win32 build
Paolo Bonzini [Tue, 13 Dec 2011 12:43:52 +0000 (13:43 +0100)]
fix win32 build

On Windows, cpus.c needs access to the hThread.  Add a Windows-specific
function to grab it.  This requires changing the CPU threads to
joinable.  There is no substantial change because the threads run
in an infinite loop.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqdev: add a qdev_get_type() function and expose as a 'type' property
Anthony Liguori [Mon, 12 Dec 2011 20:29:43 +0000 (14:29 -0600)]
qdev: add a qdev_get_type() function and expose as a 'type' property

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: add string property type
Anthony Liguori [Mon, 12 Dec 2011 20:29:42 +0000 (14:29 -0600)]
qom: add string property type

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: add vga node to the pc composition tree
Anthony Liguori [Mon, 12 Dec 2011 20:29:41 +0000 (14:29 -0600)]
qom: add vga node to the pc composition tree

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: optimize qdev_get_canonical_path using a parent link
Anthony Liguori [Mon, 12 Dec 2011 20:29:40 +0000 (14:29 -0600)]
qom: optimize qdev_get_canonical_path using a parent link

The full tree search was a bit unreasonable.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agortc: add a dynamic property for retrieving the date
Anthony Liguori [Mon, 12 Dec 2011 20:29:39 +0000 (14:29 -0600)]
rtc: add a dynamic property for retrieving the date

This really shows the power of dynamic object properties compared to qdev
static properties.

This property represents a complex structure who's format is preserved over the
wire.  This is enabled by visitors.

It also shows an entirely synthetic property that is not tied to device state.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agortc: make piix3 set the rtc as a child (v2)
Anthony Liguori [Mon, 12 Dec 2011 20:29:38 +0000 (14:29 -0600)]
rtc: make piix3 set the rtc as a child (v2)

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agodev: add an anonymous peripheral container
Anthony Liguori [Mon, 12 Dec 2011 20:29:37 +0000 (14:29 -0600)]
dev: add an anonymous peripheral container

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqdev: add explicitly named devices to the root complex
Anthony Liguori [Mon, 12 Dec 2011 20:29:36 +0000 (14:29 -0600)]
qdev: add explicitly named devices to the root complex

We first add a 'peripheral' container to the root device that we add user
created devices to.  This provides all user created devices with a unique and
isolated namespace.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: qom_{get, set} monitor commands (v2)
Anthony Liguori [Mon, 12 Dec 2011 20:29:35 +0000 (14:29 -0600)]
qom: qom_{get, set} monitor commands (v2)

This allows clients to read and write device model properties through QMP.  QAPI
doesn't support Visitor types yet and these commands are special in that they
don't work with fixed types.

I've added a documentation stub to qapi-schema.json so we can keep consistency
there.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqmp: add qom-list command
Anthony Liguori [Mon, 12 Dec 2011 20:29:34 +0000 (14:29 -0600)]
qmp: add qom-list command

This can be used to list properties in the device model.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqapi: allow a 'gen' key to suppress code generation
Anthony Liguori [Mon, 12 Dec 2011 20:29:33 +0000 (14:29 -0600)]
qapi: allow a 'gen' key to suppress code generation

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: add link properties (v2)
Anthony Liguori [Mon, 12 Dec 2011 20:29:32 +0000 (14:29 -0600)]
qom: add link properties (v2)

Links represent an ephemeral relationship between devices.  They are meant to
replace the qdev concept of busses by allowing more informal relationships
between devices.

Links are fairly limited in their usefulness without implementing QOM-style
subclassing and interfaces.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: add child properties (composition) (v3)
Anthony Liguori [Mon, 12 Dec 2011 20:29:31 +0000 (14:29 -0600)]
qom: add child properties (composition) (v3)

Child properties express a relationship of composition.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqdev: provide a path resolution (v2)
Anthony Liguori [Mon, 12 Dec 2011 20:29:30 +0000 (14:29 -0600)]
qdev: provide a path resolution (v2)

There are two types of supported paths--absolute paths and partial paths.

Absolute paths are derived from the root device and can follow child<> or
link<> properties.  Since they can follow link<> properties, they can be
arbitrarily long.  Absolute paths look like absolute filenames and are prefixed
with a leading slash.

Partial paths are look like relative filenames.  They do not begin with a
prefix.  The matching rules for partial paths are subtle but designed to make
specifying devices easy.  At each level of the composition tree, the partial
path is matched as an absolute path.  The first match is not returned.  At
least two matches are searched for.  A successful result is only returned if
only one match is founded.  If more than one match is found, a flag is returned
to indicate that the match was ambiguous.

At the end of the day, partial path support means that if you create a device
called 'ide0', you can just say 'ide0' as the path name and it will Just Work.
If we internally create a device called 'i440fx', you can just say 'i440fx' and
it will Just Work and long as you don't do anything silly.

A management tool should probably always use absolute paths since then they
don't have to deal with the possibility of ambiguity.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqdev: provide an interface to return canonical path from root (v2)
Anthony Liguori [Mon, 12 Dec 2011 20:29:29 +0000 (14:29 -0600)]
qdev: provide an interface to return canonical path from root (v2)

The canonical path is the path in the composition tree from the root to the
device.  This is effectively the name of the device.

This is an incredibly unefficient implementation that will be optimized in
a future patch.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: introduce root device
Anthony Liguori [Mon, 12 Dec 2011 20:29:28 +0000 (14:29 -0600)]
qom: introduce root device

This is based on Jan's suggestion for how to do unique naming.  The root device
is the root of composition.  All devices are reachable via child<> links from
this device.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: register legacy properties as new style properties (v2)
Anthony Liguori [Mon, 12 Dec 2011 20:29:27 +0000 (14:29 -0600)]
qom: register legacy properties as new style properties (v2)

Expose all legacy properties through the new QOM property mechanism.  The qdev
property types are exposed through the 'legacy<>' namespace.  They are always
visited as strings since they do their own string parsing.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: add new dynamic property infrastructure based on Visitors (v2)
Anthony Liguori [Mon, 12 Dec 2011 20:29:26 +0000 (14:29 -0600)]
qom: add new dynamic property infrastructure based on Visitors (v2)

qdev properties are settable only during construction and static to classes.
This isn't flexible enough for QOM.

This patch introduces a property interface for qdev that provides dynamic
properties that are tied to objects, instead of classes.  These properties are
Visitor based instead of string based too.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqom: add a reference count to qdev objects
Anthony Liguori [Mon, 12 Dec 2011 20:29:25 +0000 (14:29 -0600)]
qom: add a reference count to qdev objects

To ensure that a device isn't removed from the graph until all of its links are
broken.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoqiov: prevent double free or use-after-free
Paolo Bonzini [Fri, 25 Nov 2011 11:06:22 +0000 (12:06 +0100)]
qiov: prevent double free or use-after-free

qemu_iovec_destroy does not clear the QEMUIOVector fully, and the data
could thus be used after free or freed again.  While I do not know any
example in the tree, I observed this using virtio-scsi (and SCSI
scatter/gather) when canceling DMA requests.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
12 years agoblock/cow: Return real error code
Li Zhi Hui [Mon, 12 Dec 2011 05:54:33 +0000 (13:54 +0800)]
block/cow: Return real error code

Signed-off-by: Li Zhi Hui <zhihuili@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
12 years agocoroutine: switch per-thread free pool to a global pool
Avi Kivity [Mon, 5 Dec 2011 17:20:12 +0000 (19:20 +0200)]
coroutine: switch per-thread free pool to a global pool

ucontext-based coroutines use a free pool to reduce allocations and
deallocations of coroutine objects.  The pool is per-thread, presumably
to improve locality.  However, as coroutines are usually allocated in
a vcpu thread and freed in the I/O thread, the pool accounting gets
screwed up and we end allocating and freeing a coroutine for every I/O
request.  This is expensive since large objects are allocated via the
kernel, and are not cached by the C runtime.

Fix by switching to a global pool.  This is safe since we're protected
by the global mutex.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
12 years agoqcow2: Allow >4 GB VM state
Kevin Wolf [Wed, 16 Nov 2011 10:35:54 +0000 (11:35 +0100)]
qcow2: Allow >4 GB VM state

This is a compatible extension to the snapshot header format that allows
saving a 64 bit VM state size.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
12 years agoDocumentation: Add qemu-img -t parameter in man page
Kevin Wolf [Wed, 7 Dec 2011 12:57:13 +0000 (13:57 +0100)]
Documentation: Add qemu-img -t parameter in man page

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoqemu-img rebase: Fix for undersized backing files
Kevin Wolf [Wed, 7 Dec 2011 11:42:10 +0000 (12:42 +0100)]
qemu-img rebase: Fix for undersized backing files

Backing files may be smaller than the corresponding COW file. When
reading directly from the backing file, qemu-img rebase must consider
this and assume zero sectors after the end of backing files.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agorbd: always set out parameter in qemu_rbd_snap_list
Josh Durgin [Wed, 7 Dec 2011 01:05:10 +0000 (17:05 -0800)]
rbd: always set out parameter in qemu_rbd_snap_list

The caller expects psn_tab to be NULL when there are no snapshots or
an error occurs. This results in calling g_free on an invalid address.

Reported-by: Oliver Francke <Oliver@filoo.de>
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
12 years agoblock/qcow2.c: call qcow2_free_snapshots in the function of qcow2_close
Li Zhi Hui [Wed, 7 Dec 2011 09:25:48 +0000 (17:25 +0800)]
block/qcow2.c: call qcow2_free_snapshots in the function of qcow2_close

Signed-off-by: Li Zhi Hui <zhihuili@linux.vnet.ibm.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
12 years agoblock: avoid useless checks on acb->bh
Paolo Bonzini [Mon, 14 Nov 2011 16:50:54 +0000 (17:50 +0100)]
block: avoid useless checks on acb->bh

Coverity is confused by this "if" and reports leaks on acb->bh.
The bottom half is always deleted before releasing the AIOCB,
in either bdrv_aio_cancel_em or bdrv_aio_bh_cb.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
12 years agoblock: dma_bdrv_* does not return NULL
Paolo Bonzini [Mon, 14 Nov 2011 16:50:53 +0000 (17:50 +0100)]
block: dma_bdrv_* does not return NULL

Initially attempted with the following semantic patch:

@ rule1 @
expression E;
statement S;
@@
  E =
(
   dma_bdrv_io
|  dma_bdrv_read
|  dma_bdrv_write
)
     (...);
(
- if (E == NULL) { ... }
|
- if (E)
    { <... S ...> }
)

which however did not match anything.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
12 years agodma: the passed io_func does not return NULL
Paolo Bonzini [Mon, 14 Nov 2011 16:50:52 +0000 (17:50 +0100)]
dma: the passed io_func does not return NULL

Initially found with the following semantic patch:

@ type @
BlockDriverAIOCB *x;
expression E;
@@
  x = E;
- if (x == NULL) { ... }

@ acb1 @
expression E, E1;
@@
  E1->acb = E;
- if (E1->acb == NULL) { ... }

@ aiocb1 @
expression E, E1;
@@
  E1->aiocb = E;
- if (E1->aiocb == NULL) { ... }

@ acb @
expression E, E1;
@@
  E1.acb = E;
- if (E1.acb == NULL) { ... }

@ aiocb @
expression E, E1;
@@
  E1.aiocb = E;
- if (E1.aiocb == NULL) { ... }

but changed manually to include an assert.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
12 years agoblock: qemu_aio_get does not return NULL
Paolo Bonzini [Mon, 14 Nov 2011 16:50:51 +0000 (17:50 +0100)]
block: qemu_aio_get does not return NULL

Initially done with the following semantic patch:

@ rule1 @
expression E;
statement S;
@@
  E = qemu_aio_get (...);
(
- if (E == NULL) { ... }
|
- if (E)
    { <... S ...> }
)

which however missed occurrences in linux-aio.c and posix-aio-compat.c.
Those were done by hand.

The change in vdi_aio_setup's caller was also done by hand.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
12 years agoblock: simplify failure handling for bdrv_aio_multiwrite
Paolo Bonzini [Mon, 14 Nov 2011 16:50:50 +0000 (17:50 +0100)]
block: simplify failure handling for bdrv_aio_multiwrite

Now that early failure of bdrv_aio_writev is not possible anymore,
mcb->num_requests can be set before the loop starts.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
12 years agoblock: bdrv_aio_* do not return NULL
Paolo Bonzini [Wed, 30 Nov 2011 08:12:30 +0000 (09:12 +0100)]
block: bdrv_aio_* do not return NULL

Initially done with the following semantic patch:

@ rule1 @
expression E;
statement S;
@@
  E =
(
   bdrv_aio_readv
|  bdrv_aio_writev
|  bdrv_aio_flush
|  bdrv_aio_discard
|  bdrv_aio_ioctl
)
     (...);
(
- if (E == NULL) { ... }
|
- if (E)
    { <... S ...> }
)

which however missed the occurrence in block/blkverify.c
(as it should have done), and left behind some unused
variables.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
12 years agotcg/arm: remove fixed map code buffer restriction
Dr. David Alan Gilbert [Mon, 12 Dec 2011 15:37:31 +0000 (16:37 +0100)]
tcg/arm: remove fixed map code buffer restriction

On ARM, don't map the code buffer at a fixed location, and fix up the
call/goto tcg routines to let it do long jumps.

Mapping the code buffer at a fixed address could sometimes result in it being
mapped over the top of the heap with pretty random results.

Signed-off-by: Dr. David Alan Gilbert <david.gilbert@linaro.org>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
12 years agoMerge branch 'target-arm.for-upstream' of git://git.linaro.org/people/pmaydell/qemu-arm
Andrzej Zaborowski [Wed, 14 Dec 2011 20:34:00 +0000 (21:34 +0100)]
Merge branch 'target-arm.for-upstream' of git://git.linaro.org/people/pmaydell/qemu-arm

12 years agoMerge remote-tracking branch 'stefanha/trivial-patches-next' into staging
Anthony Liguori [Wed, 14 Dec 2011 13:59:21 +0000 (07:59 -0600)]
Merge remote-tracking branch 'stefanha/trivial-patches-next' into staging

12 years agodoc: Remove Symbian Virtual Platform
Stefan Weil [Wed, 14 Dec 2011 06:30:24 +0000 (07:30 +0100)]
doc: Remove Symbian Virtual Platform

Commit d396a657baec8c6b7aa0c888746e0e2f78303650 removed the code
for SVP, so the documentation needs this update.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>