trivial patches for 2017-07-31

-----BEGIN PGP SIGNATURE-----
 
 iQFDBAABCAAtFiEEe3O61ovnosKJMUsicBtPaxppPlkFAll/BBEPHG1qdEB0bHMu
 bXNrLnJ1AAoJEHAbT2saaT5ZYU8IAJesHjleie9NI33FipPpUYf5Inocwkq9KD/3
 b1ibSuDiCrtJYHncL1c5M+th2Rrst7QGrFhji+pjgdz89PzP5B28xt3PvrLAQG6v
 uvvQX5ZcBM01nJtbxZxjdOnpTNZ5GueuUbDPDtgk5ld3UPUTe1mY9r/qKv7hpE2e
 RYKTMmGNQbI2J02P2N2iQ7y2xmLynNhI5R8aXRDfzOB263BsDhtRT2h3gNnDsJn8
 RWzBD8rAhthKN9SmhdYQjmoaKlAvbDn+DaH21/QoNtThVbLjcaHTpMZqQQ+2i/oX
 9musfZG8zxMl8matWHhX8TLwj3iq2BrJq4spwQ70L2eWMbIc+eQ=
 =aXae
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/mjt/tags/trivial-patches-fetch' into staging

trivial patches for 2017-07-31

# gpg: Signature made Mon 31 Jul 2017 11:18:57 BST
# gpg:                using RSA key 0x701B4F6B1A693E59
# gpg: Good signature from "Michael Tokarev <mjt@tls.msk.ru>"
# gpg:                 aka "Michael Tokarev <mjt@corpit.ru>"
# gpg:                 aka "Michael Tokarev <mjt@debian.org>"
# Primary key fingerprint: 6EE1 95D1 886E 8FFB 810D  4324 457C E0A0 8044 65C5
#      Subkey fingerprint: 7B73 BAD6 8BE7 A2C2 8931  4B22 701B 4F6B 1A69 3E59

* remotes/mjt/tags/trivial-patches-fetch: (25 commits)
  docs: fix broken paths to docs/specs/ivshmem-spec.txt
  docs: fix broken paths to docs/config/ich9-ehci-uhci.cfg
  docs: fix broken paths to docs/devel/tracing.txt
  docs: fix broken paths to docs/devel/atomics.txt
  docs: fix broken paths to docs/devel/qapi-code-gen.txt
  docs: fix broken paths to docs/interop/qcow2.txt
  docs: fix broken paths to docs/interop dir
  thunk: assert nb_fields is valid
  syscall: check inotify() and eventfd() return value
  syscall: fix use of uninitialized values
  syscall: fix dereference of undefined pointer
  linux-user/sh4: fix incorrect memory write
  m68k/translate: fix incorrect copy/paste
  net/eth: fix incorrect check of iov_to_buf() return value
  ui/vnc: fix leak of SocketAddress **
  qcow2: fix null pointer dereference
  ivshmem: fix incorrect error handling in ivshmem_recv_msg()
  loader: check get_image_size() return value
  tests: add missing dependency to build QTEST_QEMU_BINARY
  qemu-system-tricore: segfault when entering "x 0" on the monitor
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Peter Maydell 2017-07-31 11:27:43 +01:00
commit 25dd0e7789
74 changed files with 131 additions and 102 deletions

View File

@ -353,7 +353,7 @@ NETBSD
L: qemu-devel@nongnu.org L: qemu-devel@nongnu.org
M: Kamil Rytarowski <kamil@netbsd.org> M: Kamil Rytarowski <kamil@netbsd.org>
S: Maintained S: Maintained
K: (?i)NetBSD K: ^Subject:.*(?i)NetBSD
W32, W64 W32, W64
L: qemu-devel@nongnu.org L: qemu-devel@nongnu.org

View File

@ -443,7 +443,7 @@ $(qapi-modules) $(SRC_PATH)/scripts/qapi-introspect.py $(qapi-py)
"GEN","$@") "GEN","$@")
QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h) QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h)
$(qga-obj-y) qemu-ga.o: $(QGALIB_GEN) $(qga-obj-y): $(QGALIB_GEN)
qemu-ga$(EXESUF): $(qga-obj-y) $(COMMON_LDADDS) qemu-ga$(EXESUF): $(qga-obj-y) $(COMMON_LDADDS)
$(call LINK, $^) $(call LINK, $^)

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# audio/alsaaudio.c # audio/alsaaudio.c
alsa_revents(int revents) "revents = %d" alsa_revents(int revents) "revents = %d"

View File

@ -2189,6 +2189,8 @@ write_refblocks:
* this will leak that range, but we can easily fix that by running * this will leak that range, but we can easily fix that by running
* a leak-fixing check after this rebuild operation */ * a leak-fixing check after this rebuild operation */
reftable_offset = -1; reftable_offset = -1;
} else {
assert(on_disk_reftable);
} }
on_disk_reftable[refblock_index] = refblock_offset; on_disk_reftable[refblock_index] = refblock_offset;
@ -2258,8 +2260,6 @@ write_refblocks:
goto write_refblocks; goto write_refblocks;
} }
assert(on_disk_reftable);
for (refblock_index = 0; refblock_index < reftable_size; refblock_index++) { for (refblock_index = 0; refblock_index < reftable_size; refblock_index++) {
cpu_to_be64s(&on_disk_reftable[refblock_index]); cpu_to_be64s(&on_disk_reftable[refblock_index]);
} }

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# block.c # block.c
bdrv_open_common(void *bs, const char *filename, int flags, const char *format_name) "bs %p filename \"%s\" flags %#x format_name \"%s\"" bdrv_open_common(void *bs, const char *filename, int flags, const char *format_name) "bs %p filename \"%s\" flags %#x format_name \"%s\""

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# chardev/wctablet.c # chardev/wctablet.c
wct_init(void) "" wct_init(void) ""

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# crypto/tlscreds.c # crypto/tlscreds.c
qcrypto_tls_creds_load_dh(void *creds, const char *filename) "TLS creds load DH creds=%p filename=%s" qcrypto_tls_creds_load_dh(void *creds, const char *filename) "TLS creds load DH creds=%p filename=%s"

View File

@ -145,7 +145,7 @@ can also be more efficient in two ways:
- on some platforms, one can implement QemuLockCnt to hold the lock - on some platforms, one can implement QemuLockCnt to hold the lock
and the mutex in a single word, making the fast path no more expensive and the mutex in a single word, making the fast path no more expensive
than simply managing a counter using atomic operations (see than simply managing a counter using atomic operations (see
docs/atomics.txt). This can be very helpful if concurrent access to docs/devel/atomics.txt). This can be very helpful if concurrent access to
the data structure is expected to be rare. the data structure is expected to be rare.

View File

@ -7,8 +7,8 @@ This document doesn't discuss QMP protocol level details, nor does it dive
into the QAPI framework implementation. into the QAPI framework implementation.
For an in-depth introduction to the QAPI framework, please refer to For an in-depth introduction to the QAPI framework, please refer to
docs/qapi-code-gen.txt. For documentation about the QMP protocol, docs/devel/qapi-code-gen.txt. For documentation about the QMP protocol,
start with docs/qmp-intro.txt. start with docs/interop/qmp-intro.txt.
== Overview == == Overview ==

View File

@ -15,7 +15,7 @@ not a straightforward operation.
This document attempts to give an overview of the L2 and refcount This document attempts to give an overview of the L2 and refcount
caches, and how to configure them. caches, and how to configure them.
Please refer to the docs/specs/qcow2.txt file for an in-depth Please refer to the docs/interop/qcow2.txt file for an in-depth
technical description of the qcow2 file format. technical description of the qcow2 file format.

View File

@ -40,7 +40,7 @@ maintained as part of the virtio specification.
1af4:1100 Used as PCI Subsystem ID for existing hardware devices emulated 1af4:1100 Used as PCI Subsystem ID for existing hardware devices emulated
by qemu. by qemu.
1af4:1110 ivshmem device (shared memory, docs/specs/ivshmem_device_spec.txt) 1af4:1110 ivshmem device (shared memory, docs/specs/ivshmem-spec.txt)
All other device IDs are reserved. All other device IDs are reserved.

View File

@ -50,7 +50,7 @@ companion controllers with two ports each.
There is a config file in docs which will do all this for you, just There is a config file in docs which will do all this for you, just
try ... try ...
qemu -readconfig docs/ich9-ehci-uhci.cfg qemu -readconfig docs/config/ich9-ehci-uhci.cfg
... then use "bus=ehci.0" to assign your usb devices to that bus. ... then use "bus=ehci.0" to assign your usb devices to that bus.

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/9pfs/virtio-9p.c # hw/9pfs/virtio-9p.c
v9fs_rerror(uint16_t tag, uint8_t id, int err) "tag %d id %d err %d" v9fs_rerror(uint16_t tag, uint8_t id, int err) "tag %d id %d err %d"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/acpi/memory_hotplug.c # hw/acpi/memory_hotplug.c
mhp_acpi_invalid_slot_selected(uint32_t slot) "0x%"PRIx32 mhp_acpi_invalid_slot_selected(uint32_t slot) "0x%"PRIx32

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/alpha/pci.c # hw/alpha/pci.c
alpha_pci_iack_write(void) "" alpha_pci_iack_write(void) ""

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/arm/virt-acpi-build.c # hw/arm/virt-acpi-build.c
virt_acpi_setup(void) "No fw cfg or ACPI disabled. Bailing out." virt_acpi_setup(void) "No fw cfg or ACPI disabled. Bailing out."

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/audio/cs4231.c # hw/audio/cs4231.c
cs4231_mem_readl_dreg(uint32_t reg, uint32_t ret) "read dreg %d: 0x%02x" cs4231_mem_readl_dreg(uint32_t reg, uint32_t ret) "read dreg %d: 0x%02x"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/block/dataplane/virtio-blk.c # hw/block/dataplane/virtio-blk.c
virtio_blk_data_plane_start(void *s) "dataplane %p" virtio_blk_data_plane_start(void *s) "dataplane %p"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/block/virtio-blk.c # hw/block/virtio-blk.c
virtio_blk_req_complete(void *vdev, void *req, int status) "vdev %p req %p status %d" virtio_blk_req_complete(void *vdev, void *req, int status) "vdev %p req %p status %d"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/char/virtio-serial-bus.c # hw/char/virtio-serial-bus.c
virtio_serial_send_control_event(unsigned int port, uint16_t event, uint16_t value) "port %u, event %u, value %u" virtio_serial_send_control_event(unsigned int port, uint16_t event, uint16_t value) "port %u, event %u, value %u"

View File

@ -146,7 +146,7 @@ int load_image_targphys_as(const char *filename,
int size; int size;
size = get_image_size(filename); size = get_image_size(filename);
if (size > max_sz) { if (size < 0 || size > max_sz) {
return -1; return -1;
} }
if (size > 0) { if (size > 0) {
@ -168,7 +168,7 @@ int load_image_mr(const char *filename, MemoryRegion *mr)
size = get_image_size(filename); size = get_image_size(filename);
if (size > memory_region_size(mr)) { if (size < 0 || size > memory_region_size(mr)) {
return -1; return -1;
} }
if (size > 0) { if (size > 0) {

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/display/jazz_led.c # hw/display/jazz_led.c
jazz_led_read(uint64_t addr, uint8_t val) "read addr=0x%"PRIx64": 0x%x" jazz_led_read(uint64_t addr, uint8_t val) "read addr=0x%"PRIx64": 0x%x"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/dma/rc4030.c # hw/dma/rc4030.c
jazzio_read(uint64_t addr, uint32_t ret) "read reg[0x%"PRIx64"] = 0x%x" jazzio_read(uint64_t addr, uint32_t ret) "read reg[0x%"PRIx64"] = 0x%x"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/i386/x86-iommu.c # hw/i386/x86-iommu.c
x86_iommu_iec_notify(bool global, uint32_t index, uint32_t mask) "Notify IEC invalidation: global=%d index=%" PRIu32 " mask=%" PRIu32 x86_iommu_iec_notify(bool global, uint32_t index, uint32_t mask) "Notify IEC invalidation: global=%d index=%" PRIu32 " mask=%" PRIu32

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/input/ps2.c # hw/input/ps2.c
ps2_put_keycode(void *opaque, int keycode) "%p keycode %d" ps2_put_keycode(void *opaque, int keycode) "%p keycode %d"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/intc/apic_common.c # hw/intc/apic_common.c
cpu_set_apic_base(uint64_t val) "%016"PRIx64 cpu_set_apic_base(uint64_t val) "%016"PRIx64

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/isa/pc87312.c # hw/isa/pc87312.c
pc87312_io_read(uint32_t addr, uint32_t val) "read addr=%x val=%x" pc87312_io_read(uint32_t addr, uint32_t val) "read addr=%x val=%x"

View File

@ -1,4 +1,4 @@
# See docs/trace-events.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/mem/pc-dimm.c # hw/mem/pc-dimm.c
mhp_pc_dimm_assigned_slot(int slot) "%d" mhp_pc_dimm_assigned_slot(int slot) "%d"

View File

@ -642,7 +642,10 @@ static int64_t ivshmem_recv_msg(IVShmemState *s, int *pfd, Error **errp)
do { do {
ret = qemu_chr_fe_read_all(&s->server_chr, (uint8_t *)&msg + n, ret = qemu_chr_fe_read_all(&s->server_chr, (uint8_t *)&msg + n,
sizeof(msg) - n); sizeof(msg) - n);
if (ret < 0 && ret != -EINTR) { if (ret < 0) {
if (ret == -EINTR) {
continue;
}
error_setg_errno(errp, -ret, "read from server failed"); error_setg_errno(errp, -ret, "read from server failed");
return INT64_MIN; return INT64_MIN;
} }

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/misc/eccmemctl.c # hw/misc/eccmemctl.c
ecc_mem_writel_mer(uint32_t val) "Write memory enable %08x" ecc_mem_writel_mer(uint32_t val) "Write memory enable %08x"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/net/lance.c # hw/net/lance.c
lance_mem_readw(uint64_t addr, uint32_t ret) "addr=%"PRIx64"val=0x%04x" lance_mem_readw(uint64_t addr, uint32_t ret) "addr=%"PRIx64"val=0x%04x"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/nvram/ds1225y.c # hw/nvram/ds1225y.c
nvram_read(uint32_t addr, uint32_t ret) "read addr %d: 0x%02x" nvram_read(uint32_t addr, uint32_t ret) "read addr %d: 0x%02x"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/pci/pci.c # hw/pci/pci.c
pci_update_mappings_del(void *d, uint32_t bus, uint32_t slot, uint32_t func, int bar, uint64_t addr, uint64_t size) "d=%p %02x:%02x.%x %d,%#"PRIx64"+%#"PRIx64 pci_update_mappings_del(void *d, uint32_t bus, uint32_t slot, uint32_t func, int bar, uint64_t addr, uint64_t size) "d=%p %02x:%02x.%x %d,%#"PRIx64"+%#"PRIx64

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/ppc/spapr_pci.c # hw/ppc/spapr_pci.c
spapr_pci_msi(const char *msg, uint32_t ca) "%s (cfg=%x)" spapr_pci_msi(const char *msg, uint32_t ca) "%s (cfg=%x)"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/s390x/css.c # hw/s390x/css.c
css_enable_facility(const char *facility) "CSS: enable %s" css_enable_facility(const char *facility) "CSS: enable %s"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/scsi/scsi-bus.c # hw/scsi/scsi-bus.c
scsi_req_alloc(int target, int lun, int tag) "target %d lun %d tag %d" scsi_req_alloc(int target, int lun, int tag) "target %d lun %d tag %d"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/sd/milkymist-memcard.c # hw/sd/milkymist-memcard.c
milkymist_memcard_memory_read(uint32_t addr, uint32_t value) "addr %08x value %08x" milkymist_memcard_memory_read(uint32_t addr, uint32_t value) "addr %08x value %08x"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/sparc/sun4m.c # hw/sparc/sun4m.c
sun4m_cpu_interrupt(unsigned int level) "Set CPU IRQ %d" sun4m_cpu_interrupt(unsigned int level) "Set CPU IRQ %d"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/timer/slavio_timer.c # hw/timer/slavio_timer.c
slavio_timer_get_out(uint64_t limit, uint32_t counthigh, uint32_t count) "limit %"PRIx64" count %x%08x" slavio_timer_get_out(uint64_t limit, uint32_t counthigh, uint32_t count) "limit %"PRIx64" count %x%08x"

View File

@ -92,7 +92,10 @@ static void puv3_load_kernel(const char *kernel_filename)
if (kernel_filename == NULL && qtest_enabled()) { if (kernel_filename == NULL && qtest_enabled()) {
return; return;
} }
assert(kernel_filename != NULL); if (kernel_filename == NULL) {
error_report("kernel parameter cannot be empty");
exit(1);
}
/* only zImage format supported */ /* only zImage format supported */
size = load_image_targphys(kernel_filename, KERNEL_LOAD_ADDR, size = load_image_targphys(kernel_filename, KERNEL_LOAD_ADDR,

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/usb/core.c # hw/usb/core.c
usb_packet_state_change(int bus, const char *port, int ep, void *p, const char *o, const char *n) "bus %d, port %s, ep %d, packet %p, state %s -> %s" usb_packet_state_change(int bus, const char *port, int ep, void *p, const char *o, const char *n) "bus %d, port %s, ep %d, packet %p, state %s -> %s"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/vfio/pci.c # hw/vfio/pci.c
vfio_intx_interrupt(const char *name, char line) " (%s) Pin %c" vfio_intx_interrupt(const char *name, char line) " (%s) Pin %c"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# hw/virtio/virtio.c # hw/virtio/virtio.c
virtqueue_alloc_element(void *elem, size_t sz, unsigned in_num, unsigned out_num) "elem %p size %zd in_num %u out_num %u" virtqueue_alloc_element(void *elem, size_t sz, unsigned in_num, unsigned out_num) "elem %p size %zd in_num %u out_num %u"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# include/hw/xen/xen_common.h # include/hw/xen/xen_common.h
xen_default_ioreq_server(void) "" xen_default_ioreq_server(void) ""

View File

@ -36,7 +36,7 @@
* QemuOpts, and clone visitors have some implementation limitations; * QemuOpts, and clone visitors have some implementation limitations;
* see the documentation for each visitor for more details on what it * see the documentation for each visitor for more details on what it
* supports. Also, see visitor-impl.h for the callback contracts * supports. Also, see visitor-impl.h for the callback contracts
* implemented by each visitor, and docs/qapi-code-gen.txt for more * implemented by each visitor, and docs/devel/qapi-code-gen.txt for more
* about the QAPI code generator. * about the QAPI code generator.
* *
* All of the visitors are created via: * All of the visitors are created via:

View File

@ -8,7 +8,7 @@
* This work is licensed under the terms of the GNU GPL, version 2 or later. * This work is licensed under the terms of the GNU GPL, version 2 or later.
* See the COPYING file in the top-level directory. * See the COPYING file in the top-level directory.
* *
* See docs/atomics.txt for discussion about the guarantees each * See docs/devel/atomics.txt for discussion about the guarantees each
* atomic primitive is meant to provide. * atomic primitive is meant to provide.
*/ */
@ -427,7 +427,7 @@
* sequentially consistent operations. * sequentially consistent operations.
* *
* As long as they are used as paired operations they are safe to * As long as they are used as paired operations they are safe to
* use. See docs/atomic.txt for more discussion. * use. See docs/devel/atomics.txt for more discussion.
*/ */
#ifndef atomic_mb_read #ifndef atomic_mb_read

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# io/task.c # io/task.c
qio_task_new(void *task, void *source, void *func, void *opaque) "Task new task=%p source=%p func=%p opaque=%p" qio_task_new(void *task, void *source, void *func, void *opaque) "Task new task=%p source=%p func=%p opaque=%p"

View File

@ -1099,7 +1099,7 @@ static inline void elf_core_copy_regs(target_elf_gregset_t *regs,
int i; int i;
for (i = 0; i < 16; i++) { for (i = 0; i < 16; i++) {
(*regs[i]) = tswapreg(env->gregs[i]); (*regs)[i] = tswapreg(env->gregs[i]);
} }
(*regs)[TARGET_REG_PC] = tswapreg(env->pc); (*regs)[TARGET_REG_PC] = tswapreg(env->pc);

View File

@ -1622,6 +1622,7 @@ static inline abi_long host_to_target_sockaddr(abi_ulong target_addr,
if (len == 0) { if (len == 0) {
return 0; return 0;
} }
assert(addr);
target_saddr = lock_user(VERIFY_WRITE, target_addr, len, 0); target_saddr = lock_user(VERIFY_WRITE, target_addr, len, 0);
if (!target_saddr) if (!target_saddr)
@ -5573,6 +5574,7 @@ static abi_long do_ioctl_rt(const IOCTLEntry *ie, uint8_t *buf_temp,
field_types, THUNK_HOST); field_types, THUNK_HOST);
} }
unlock_user(argptr, arg, 0); unlock_user(argptr, arg, 0);
assert(host_rt_dev_ptr);
ret = get_errno(safe_ioctl(fd, ie->host_cmd, buf_temp)); ret = get_errno(safe_ioctl(fd, ie->host_cmd, buf_temp));
if (*host_rt_dev_ptr != 0) { if (*host_rt_dev_ptr != 0) {
@ -11740,7 +11742,9 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
#if defined(TARGET_NR_inotify_init) && defined(__NR_inotify_init) #if defined(TARGET_NR_inotify_init) && defined(__NR_inotify_init)
case TARGET_NR_inotify_init: case TARGET_NR_inotify_init:
ret = get_errno(sys_inotify_init()); ret = get_errno(sys_inotify_init());
fd_trans_register(ret, &target_inotify_trans); if (ret >= 0) {
fd_trans_register(ret, &target_inotify_trans);
}
break; break;
#endif #endif
#ifdef CONFIG_INOTIFY1 #ifdef CONFIG_INOTIFY1
@ -11748,7 +11752,9 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
case TARGET_NR_inotify_init1: case TARGET_NR_inotify_init1:
ret = get_errno(sys_inotify_init1(target_to_host_bitmask(arg1, ret = get_errno(sys_inotify_init1(target_to_host_bitmask(arg1,
fcntl_flags_tbl))); fcntl_flags_tbl)));
fd_trans_register(ret, &target_inotify_trans); if (ret >= 0) {
fd_trans_register(ret, &target_inotify_trans);
}
break; break;
#endif #endif
#endif #endif
@ -11914,7 +11920,9 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
#if defined(TARGET_NR_eventfd) #if defined(TARGET_NR_eventfd)
case TARGET_NR_eventfd: case TARGET_NR_eventfd:
ret = get_errno(eventfd(arg1, 0)); ret = get_errno(eventfd(arg1, 0));
fd_trans_register(ret, &target_eventfd_trans); if (ret >= 0) {
fd_trans_register(ret, &target_eventfd_trans);
}
break; break;
#endif #endif
#if defined(TARGET_NR_eventfd2) #if defined(TARGET_NR_eventfd2)
@ -11928,7 +11936,9 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
host_flags |= O_CLOEXEC; host_flags |= O_CLOEXEC;
} }
ret = get_errno(eventfd(arg1, host_flags)); ret = get_errno(eventfd(arg1, host_flags));
fd_trans_register(ret, &target_eventfd_trans); if (ret >= 0) {
fd_trans_register(ret, &target_eventfd_trans);
}
break; break;
} }
#endif #endif

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# linux-user/signal.c # linux-user/signal.c
user_setup_frame(void *env, uint64_t frame_addr) "env=%p frame_addr=%"PRIx64 user_setup_frame(void *env, uint64_t frame_addr) "env=%p frame_addr=%"PRIx64

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# migration/savevm.c # migration/savevm.c
qemu_loadvm_state_section(unsigned int section_type) "%d" qemu_loadvm_state_section(unsigned int section_type) "%d"

View File

@ -423,7 +423,7 @@ _eth_get_rss_ex_dst_addr(const struct iovec *pkt, int pkt_frags,
rthdr_offset + sizeof(*ext_hdr), rthdr_offset + sizeof(*ext_hdr),
dst_addr, sizeof(*dst_addr)); dst_addr, sizeof(*dst_addr));
return bytes_read == sizeof(dst_addr); return bytes_read == sizeof(*dst_addr);
} }
return false; return false;
@ -472,7 +472,7 @@ _eth_get_rss_ex_src_addr(const struct iovec *pkt, int pkt_frags,
opt_offset + sizeof(opthdr), opt_offset + sizeof(opthdr),
src_addr, sizeof(*src_addr)); src_addr, sizeof(*src_addr));
return bytes_read == sizeof(src_addr); return bytes_read == sizeof(*src_addr);
} }
opt_offset += optlen; opt_offset += optlen;

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# net/vhost-user.c # net/vhost-user.c
vhost_user_event(const char *chr, int event) "chr: %s got event: %d" vhost_user_event(const char *chr, int event) "chr: %s got event: %d"

View File

@ -23,7 +23,7 @@
# | -> data issued by the Client # | -> data issued by the Client
# | <- Server data response # | <- Server data response
# #
# Please, refer to the QMP specification (docs/qmp-spec.txt) for # Please, refer to the QMP specification (docs/interop/qmp-spec.txt) for
# detailed information on the Server command and response formats. # detailed information on the Server command and response formats.
# #
# = Stability Considerations # = Stability Considerations
@ -108,7 +108,7 @@
# #
# Notes: This command is valid exactly when first connecting: it must be # Notes: This command is valid exactly when first connecting: it must be
# issued before any other command will be accepted, and will fail once the # issued before any other command will be accepted, and will fail once the
# monitor is accepting other commands. (see qemu docs/qmp-spec.txt) # monitor is accepting other commands. (see qemu docs/interop/qmp-spec.txt)
# #
# Since: 0.13 # Since: 0.13
# #

View File

@ -226,7 +226,7 @@
# #
# @members: the alternate type's members, in no particular order. # @members: the alternate type's members, in no particular order.
# The members' wire encoding is distinct, see # The members' wire encoding is distinct, see
# docs/qapi-code-gen.txt section Alternate types. # docs/devel/qapi-code-gen.txt section Alternate types.
# #
# On the wire, this can be any of the members. # On the wire, this can be any of the members.
# #

View File

@ -40,7 +40,7 @@ int qapi_enum_parse(const char * const lookup[], const char *buf,
* It may be prefixed by __RFQDN_ (downstream extension), where RFQDN * It may be prefixed by __RFQDN_ (downstream extension), where RFQDN
* may contain only letters, digits, hyphen and period. * may contain only letters, digits, hyphen and period.
* The special exception for enumeration names is not implemented. * The special exception for enumeration names is not implemented.
* See docs/qapi-code-gen.txt for more on QAPI naming rules. * See docs/devel/qapi-code-gen.txt for more on QAPI naming rules.
* Keep this consistent with scripts/qapi.py! * Keep this consistent with scripts/qapi.py!
* If @complete, the parse fails unless it consumes @str completely. * If @complete, the parse fails unless it consumes @str completely.
* Return its length on success, -1 on failure. * Return its length on success, -1 on failure.

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# qom/object.c # qom/object.c
object_dynamic_cast_assert(const char *type, const char *target, const char *file, int line, const char *func) "%s->%s (%s:%d:%s)" object_dynamic_cast_assert(const char *type, const char *target, const char *file, int line, const char *func) "%s->%s (%s:%d:%s)"

View File

@ -91,7 +91,7 @@ def texi_format(doc):
# doesn't. # doesn't.
# #
# Make sure to update section "Documentation markup" in # Make sure to update section "Documentation markup" in
# docs/qapi-code-gen.txt when fixing this. # docs/devel/qapi-code-gen.txt when fixing this.
if line.startswith('| '): if line.startswith('| '):
line = EXAMPLE_FMT(code=line[2:]) line = EXAMPLE_FMT(code=line[2:])
elif line.startswith('= '): elif line.startswith('= '):

View File

@ -7,7 +7,7 @@
# This work is licensed under the terms of the GNU GPL, version 2. See # This work is licensed under the terms of the GNU GPL, version 2. See
# the COPYING file in the top-level directory. # the COPYING file in the top-level directory.
# #
# For help see docs/tracing.txt # For help see docs/devel/tracing.txt
import struct import struct
import re import re

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# target/arm/helper.c # target/arm/helper.c
arm_gt_recalc(int timer, int irqstate, uint64_t nexttick) "gt recalc: timer %d irqstate %d next tick %" PRIx64 arm_gt_recalc(int timer, int irqstate, uint64_t nexttick) "gt recalc: timer %d irqstate %d next tick %" PRIx64

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# target/i386/kvm.c # target/i386/kvm.c
kvm_x86_fixup_msi_error(uint32_t gsi) "VT-d failed to remap interrupt for GSI %" PRIu32 kvm_x86_fixup_msi_error(uint32_t gsi) "VT-d failed to remap interrupt for GSI %" PRIu32

View File

@ -1321,7 +1321,7 @@ static void gen_cc_cond(DisasCompare *c, DisasContext *s, int cond)
case 5: /* CS (C) */ case 5: /* CS (C) */
/* Some cases fold C into X. */ /* Some cases fold C into X. */
if (op == CC_OP_ADDB || op == CC_OP_ADDW || op == CC_OP_ADDL || if (op == CC_OP_ADDB || op == CC_OP_ADDW || op == CC_OP_ADDL ||
op == CC_OP_ADDB || op == CC_OP_ADDW || op == CC_OP_ADDL) { op == CC_OP_SUBB || op == CC_OP_SUBW || op == CC_OP_SUBL) {
tcond = TCG_COND_NE; tcond = TCG_COND_NE;
c->v1 = QREG_CC_X; c->v1 = QREG_CC_X;
goto done; goto done;

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# target/mips/translate.c # target/mips/translate.c
mips_translate_c0(const char *instr, const char *rn, int reg, int sel) "%s %s (reg %d sel %d)" mips_translate_c0(const char *instr, const char *rn, int reg, int sel) "%s %s (reg %d sel %d)"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# target/ppc/kvm.c # target/ppc/kvm.c
kvm_failed_spr_set(int str, const char *msg) "Warning: Unable to set SPR %d to KVM: %s" kvm_failed_spr_set(int str, const char *msg) "Warning: Unable to set SPR %d to KVM: %s"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# target/s390x/mmu_helper.c # target/s390x/mmu_helper.c
get_skeys_nonzero(int rc) "SKEY: Call to get_skeys unexpectedly returned %d" get_skeys_nonzero(int rc) "SKEY: Call to get_skeys unexpectedly returned %d"

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# target/sparc/mmu_helper.c # target/sparc/mmu_helper.c
mmu_helper_dfault(uint64_t address, uint64_t context, int mmu_idx, uint32_t tl) "DFAULT at %"PRIx64" context %"PRIx64" mmu_idx=%d tl=%d" mmu_helper_dfault(uint64_t address, uint64_t context, int mmu_idx, uint32_t tl) "DFAULT at %"PRIx64" context %"PRIx64" mmu_idx=%d tl=%d"

View File

@ -22,6 +22,15 @@
#include "cpu.h" #include "cpu.h"
#include "qemu-common.h" #include "qemu-common.h"
#include "exec/exec-all.h" #include "exec/exec-all.h"
#include "qemu/error-report.h"
static hwaddr tricore_cpu_get_phys_page_attrs_debug(CPUState *cpu, vaddr addr,
MemTxAttrs *attrs)
{
error_report("function cpu_get_phys_page_attrs_debug not "
"implemented, aborting");
return -1;
}
static inline void set_feature(CPUTriCoreState *env, int feature) static inline void set_feature(CPUTriCoreState *env, int feature)
{ {
@ -176,6 +185,7 @@ static void tricore_cpu_class_init(ObjectClass *c, void *data)
cc->dump_state = tricore_cpu_dump_state; cc->dump_state = tricore_cpu_dump_state;
cc->set_pc = tricore_cpu_set_pc; cc->set_pc = tricore_cpu_set_pc;
cc->synchronize_from_tb = tricore_cpu_synchronize_from_tb; cc->synchronize_from_tb = tricore_cpu_synchronize_from_tb;
cc->get_phys_page_attrs_debug = tricore_cpu_get_phys_page_attrs_debug;
} }
static void cpu_register(const TriCoreCPUInfo *info) static void cpu_register(const TriCoreCPUInfo *info)

View File

@ -446,7 +446,7 @@ when MTTCG is enabled.
The guest translators should generate this opcode for all guest instructions The guest translators should generate this opcode for all guest instructions
which have ordering side effects. which have ordering side effects.
Please see docs/atomics.txt for more information on memory barriers. Please see docs/devel/atomics.txt for more information on memory barriers.
********* 64-bit guest on 32-bit host support ********* 64-bit guest on 32-bit host support

View File

@ -219,7 +219,7 @@ gcov-files-i386-y += hw/block/hd-geometry.c
check-qtest-i386-y += tests/boot-order-test$(EXESUF) check-qtest-i386-y += tests/boot-order-test$(EXESUF)
check-qtest-i386-y += tests/bios-tables-test$(EXESUF) check-qtest-i386-y += tests/bios-tables-test$(EXESUF)
check-qtest-i386-y += tests/boot-serial-test$(EXESUF) check-qtest-i386-y += tests/boot-serial-test$(EXESUF)
check-qtest-i386-y += tests/pxe-test$(EXESUF) check-qtest-i386-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
check-qtest-i386-y += tests/rtc-test$(EXESUF) check-qtest-i386-y += tests/rtc-test$(EXESUF)
check-qtest-i386-y += tests/ipmi-kcs-test$(EXESUF) check-qtest-i386-y += tests/ipmi-kcs-test$(EXESUF)
check-qtest-i386-y += tests/ipmi-bt-test$(EXESUF) check-qtest-i386-y += tests/ipmi-bt-test$(EXESUF)
@ -259,7 +259,7 @@ check-qtest-i386-$(CONFIG_VHOST_NET_TEST_i386) += tests/vhost-user-test$(EXESUF)
ifeq ($(CONFIG_VHOST_NET_TEST_i386),) ifeq ($(CONFIG_VHOST_NET_TEST_i386),)
check-qtest-x86_64-$(CONFIG_VHOST_NET_TEST_x86_64) += tests/vhost-user-test$(EXESUF) check-qtest-x86_64-$(CONFIG_VHOST_NET_TEST_x86_64) += tests/vhost-user-test$(EXESUF)
endif endif
check-qtest-i386-y += tests/test-netfilter$(EXESUF) check-qtest-i386-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF)
check-qtest-i386-y += tests/test-filter-mirror$(EXESUF) check-qtest-i386-y += tests/test-filter-mirror$(EXESUF)
check-qtest-i386-y += tests/test-filter-redirector$(EXESUF) check-qtest-i386-y += tests/test-filter-redirector$(EXESUF)
check-qtest-i386-y += tests/postcopy-test$(EXESUF) check-qtest-i386-y += tests/postcopy-test$(EXESUF)
@ -293,7 +293,7 @@ check-qtest-ppc64-y += tests/drive_del-test$(EXESUF)
check-qtest-ppc64-y += tests/postcopy-test$(EXESUF) check-qtest-ppc64-y += tests/postcopy-test$(EXESUF)
check-qtest-ppc64-y += tests/boot-serial-test$(EXESUF) check-qtest-ppc64-y += tests/boot-serial-test$(EXESUF)
check-qtest-ppc64-y += tests/rtas-test$(EXESUF) check-qtest-ppc64-y += tests/rtas-test$(EXESUF)
check-qtest-ppc64-y += tests/pxe-test$(EXESUF) check-qtest-ppc64-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
check-qtest-ppc64-y += tests/usb-hcd-ohci-test$(EXESUF) check-qtest-ppc64-y += tests/usb-hcd-ohci-test$(EXESUF)
gcov-files-ppc64-y += hw/usb/hcd-ohci.c gcov-files-ppc64-y += hw/usb/hcd-ohci.c
check-qtest-ppc64-y += tests/usb-hcd-uhci-test$(EXESUF) check-qtest-ppc64-y += tests/usb-hcd-uhci-test$(EXESUF)
@ -301,7 +301,7 @@ gcov-files-ppc64-y += hw/usb/hcd-uhci.c
check-qtest-ppc64-y += tests/usb-hcd-xhci-test$(EXESUF) check-qtest-ppc64-y += tests/usb-hcd-xhci-test$(EXESUF)
gcov-files-ppc64-y += hw/usb/hcd-xhci.c gcov-files-ppc64-y += hw/usb/hcd-xhci.c
check-qtest-ppc64-y += $(check-qtest-virtio-y) check-qtest-ppc64-y += $(check-qtest-virtio-y)
check-qtest-ppc64-y += tests/test-netfilter$(EXESUF) check-qtest-ppc64-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF)
check-qtest-ppc64-y += tests/test-filter-mirror$(EXESUF) check-qtest-ppc64-y += tests/test-filter-mirror$(EXESUF)
check-qtest-ppc64-y += tests/test-filter-redirector$(EXESUF) check-qtest-ppc64-y += tests/test-filter-redirector$(EXESUF)
check-qtest-ppc64-y += tests/display-vga-test$(EXESUF) check-qtest-ppc64-y += tests/display-vga-test$(EXESUF)
@ -830,7 +830,7 @@ GCOV_OPTIONS = -n $(if $(V),-f,)
# gtester tests, possibly with verbose output # gtester tests, possibly with verbose output
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS)) .PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y) $(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: subdir-%-softmmu $(check-qtest-y)
$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,) $(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \ $(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
QTEST_QEMU_IMG=qemu-img$(EXESUF) \ QTEST_QEMU_IMG=qemu-img$(EXESUF) \

View File

@ -428,6 +428,8 @@ static void test_dummy_createcmdl(void)
g_assert(err == NULL); g_assert(err == NULL);
error_free(err); error_free(err);
object_unref(OBJECT(dobj));
/* /*
* cmdline-parsing via qemu_opts_parse() results in a QemuOpts entry * cmdline-parsing via qemu_opts_parse() results in a QemuOpts entry
* corresponding to the Object's ID to be added to the QemuOptsList * corresponding to the Object's ID to be added to the QemuOptsList

View File

@ -67,7 +67,6 @@ void thunk_register_struct(int id, const char *name, const argtype *types)
int nb_fields, offset, max_align, align, size, i, j; int nb_fields, offset, max_align, align, size, i, j;
assert(id < max_struct_entries); assert(id < max_struct_entries);
se = struct_entries + id;
/* first we count the number of fields */ /* first we count the number of fields */
type_ptr = types; type_ptr = types;
@ -76,6 +75,8 @@ void thunk_register_struct(int id, const char *name, const argtype *types)
type_ptr = thunk_type_next(type_ptr); type_ptr = thunk_type_next(type_ptr);
nb_fields++; nb_fields++;
} }
assert(nb_fields > 0);
se = struct_entries + id;
se->field_types = types; se->field_types = types;
se->nb_fields = nb_fields; se->nb_fields = nb_fields;
se->name = name; se->name = name;

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# ui/console.c # ui/console.c
console_gfx_new(void) "" console_gfx_new(void) ""

View File

@ -3521,6 +3521,20 @@ static int vnc_display_get_address(const char *addrstr,
return ret; return ret;
} }
static void vnc_free_addresses(SocketAddress ***retsaddr,
size_t *retnsaddr)
{
size_t i;
for (i = 0; i < *retnsaddr; i++) {
qapi_free_SocketAddress((*retsaddr)[i]);
}
g_free(*retsaddr);
*retsaddr = NULL;
*retnsaddr = 0;
}
static int vnc_display_get_addresses(QemuOpts *opts, static int vnc_display_get_addresses(QemuOpts *opts,
bool reverse, bool reverse,
SocketAddress ***retsaddr, SocketAddress ***retsaddr,
@ -3538,7 +3552,6 @@ static int vnc_display_get_addresses(QemuOpts *opts,
bool has_ipv6 = qemu_opt_get(opts, "ipv6"); bool has_ipv6 = qemu_opt_get(opts, "ipv6");
bool ipv4 = qemu_opt_get_bool(opts, "ipv4", false); bool ipv4 = qemu_opt_get_bool(opts, "ipv4", false);
bool ipv6 = qemu_opt_get_bool(opts, "ipv6", false); bool ipv6 = qemu_opt_get_bool(opts, "ipv6", false);
size_t i;
int displaynum = -1; int displaynum = -1;
int ret = -1; int ret = -1;
@ -3614,16 +3627,8 @@ static int vnc_display_get_addresses(QemuOpts *opts,
ret = 0; ret = 0;
cleanup: cleanup:
if (ret < 0) { if (ret < 0) {
for (i = 0; i < *retnsaddr; i++) { vnc_free_addresses(retsaddr, retnsaddr);
qapi_free_SocketAddress((*retsaddr)[i]); vnc_free_addresses(retwsaddr, retnwsaddr);
}
g_free(*retsaddr);
for (i = 0; i < *retnwsaddr; i++) {
qapi_free_SocketAddress((*retwsaddr)[i]);
}
g_free(*retwsaddr);
*retsaddr = *retwsaddr = NULL;
*retnsaddr = *retnwsaddr = 0;
} }
return ret; return ret;
} }
@ -3772,7 +3777,6 @@ void vnc_display_open(const char *id, Error **errp)
int acl = 0; int acl = 0;
int lock_key_sync = 1; int lock_key_sync = 1;
int key_delay_ms; int key_delay_ms;
size_t i;
if (!vd) { if (!vd) {
error_setg(errp, "VNC display not active"); error_setg(errp, "VNC display not active");
@ -3993,12 +3997,8 @@ void vnc_display_open(const char *id, Error **errp)
} }
cleanup: cleanup:
for (i = 0; i < nsaddr; i++) { vnc_free_addresses(&saddr, &nsaddr);
qapi_free_SocketAddress(saddr[i]); vnc_free_addresses(&wsaddr, &nwsaddr);
}
for (i = 0; i < nwsaddr; i++) {
qapi_free_SocketAddress(wsaddr[i]);
}
return; return;
fail: fail:

View File

@ -1,4 +1,4 @@
# See docs/tracing.txt for syntax documentation. # See docs/devel/tracing.txt for syntax documentation.
# util/aio-posix.c # util/aio-posix.c
run_poll_handlers_begin(void *ctx, int64_t max_ns) "ctx %p max_ns %"PRId64 run_poll_handlers_begin(void *ctx, int64_t max_ns) "ctx %p max_ns %"PRId64