diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2017-07-31 11:27:43 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2017-07-31 11:27:43 +0100 |
commit | 25dd0e77898c3e10796d4cbeb35e8af5ba6ce975 (patch) | |
tree | c92fef1efcce9d5b05927b6df09e28ac45d5ae2f | |
parent | 0c26c080ee592ea47597d3ab8fd712d7d2c4ba0f (diff) | |
parent | 25e11d8774630600ef4c5e9906419a77163a28a1 (diff) | |
download | qemu-25dd0e77898c3e10796d4cbeb35e8af5ba6ce975.zip qemu-25dd0e77898c3e10796d4cbeb35e8af5ba6ce975.tar.gz qemu-25dd0e77898c3e10796d4cbeb35e8af5ba6ce975.tar.bz2 |
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>
74 files changed, 131 insertions, 102 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 5ea273f..577e17b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -353,7 +353,7 @@ NETBSD L: qemu-devel@nongnu.org M: Kamil Rytarowski <kamil@netbsd.org> S: Maintained -K: (?i)NetBSD +K: ^Subject:.*(?i)NetBSD W32, W64 L: qemu-devel@nongnu.org @@ -443,7 +443,7 @@ $(qapi-modules) $(SRC_PATH)/scripts/qapi-introspect.py $(qapi-py) "GEN","$@") 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) $(call LINK, $^) diff --git a/audio/trace-events b/audio/trace-events index 5173590..1226042 100644 --- a/audio/trace-events +++ b/audio/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # audio/alsaaudio.c alsa_revents(int revents) "revents = %d" diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c index c9b0dcb..168fc32 100644 --- a/block/qcow2-refcount.c +++ b/block/qcow2-refcount.c @@ -2189,6 +2189,8 @@ write_refblocks: * this will leak that range, but we can easily fix that by running * a leak-fixing check after this rebuild operation */ reftable_offset = -1; + } else { + assert(on_disk_reftable); } on_disk_reftable[refblock_index] = refblock_offset; @@ -2258,8 +2260,6 @@ write_refblocks: goto write_refblocks; } - assert(on_disk_reftable); - for (refblock_index = 0; refblock_index < reftable_size; refblock_index++) { cpu_to_be64s(&on_disk_reftable[refblock_index]); } diff --git a/block/trace-events b/block/trace-events index 4a4df25..8d10a82 100644 --- a/block/trace-events +++ b/block/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # 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\"" diff --git a/chardev/trace-events b/chardev/trace-events index 822dde6..d0e5f3b 100644 --- a/chardev/trace-events +++ b/chardev/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # chardev/wctablet.c wct_init(void) "" diff --git a/crypto/trace-events b/crypto/trace-events index dc6ddd3..e589990 100644 --- a/crypto/trace-events +++ b/crypto/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # crypto/tlscreds.c qcrypto_tls_creds_load_dh(void *creds, const char *filename) "TLS creds load DH creds=%p filename=%s" diff --git a/docs/devel/lockcnt.txt b/docs/devel/lockcnt.txt index 2a79b32..7c099bc 100644 --- a/docs/devel/lockcnt.txt +++ b/docs/devel/lockcnt.txt @@ -145,7 +145,7 @@ can also be more efficient in two ways: - 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 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. diff --git a/docs/devel/writing-qmp-commands.txt b/docs/devel/writing-qmp-commands.txt index 1e63754..4f5b24c 100644 --- a/docs/devel/writing-qmp-commands.txt +++ b/docs/devel/writing-qmp-commands.txt @@ -7,8 +7,8 @@ This document doesn't discuss QMP protocol level details, nor does it dive into the QAPI framework implementation. For an in-depth introduction to the QAPI framework, please refer to -docs/qapi-code-gen.txt. For documentation about the QMP protocol, -start with docs/qmp-intro.txt. +docs/devel/qapi-code-gen.txt. For documentation about the QMP protocol, +start with docs/interop/qmp-intro.txt. == Overview == diff --git a/docs/qcow2-cache.txt b/docs/qcow2-cache.txt index 1fdd6f9..b0571de 100644 --- a/docs/qcow2-cache.txt +++ b/docs/qcow2-cache.txt @@ -15,7 +15,7 @@ not a straightforward operation. This document attempts to give an overview of the L2 and refcount 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. diff --git a/docs/specs/pci-ids.txt b/docs/specs/pci-ids.txt index 95adee0..bb99a02 100644 --- a/docs/specs/pci-ids.txt +++ b/docs/specs/pci-ids.txt @@ -40,7 +40,7 @@ maintained as part of the virtio specification. 1af4:1100 Used as PCI Subsystem ID for existing hardware devices emulated 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. diff --git a/docs/usb2.txt b/docs/usb2.txt index b9e7548..09df45b 100644 --- a/docs/usb2.txt +++ b/docs/usb2.txt @@ -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 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. diff --git a/hw/9pfs/trace-events b/hw/9pfs/trace-events index fb4de3d..08a4abf 100644 --- a/hw/9pfs/trace-events +++ b/hw/9pfs/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/9pfs/virtio-9p.c v9fs_rerror(uint16_t tag, uint8_t id, int err) "tag %d id %d err %d" diff --git a/hw/acpi/trace-events b/hw/acpi/trace-events index c379607..e3b41e9 100644 --- a/hw/acpi/trace-events +++ b/hw/acpi/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/acpi/memory_hotplug.c mhp_acpi_invalid_slot_selected(uint32_t slot) "0x%"PRIx32 diff --git a/hw/alpha/trace-events b/hw/alpha/trace-events index e44ff01..46024cc 100644 --- a/hw/alpha/trace-events +++ b/hw/alpha/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/alpha/pci.c alpha_pci_iack_write(void) "" diff --git a/hw/arm/trace-events b/hw/arm/trace-events index d5f33a2..193063e 100644 --- a/hw/arm/trace-events +++ b/hw/arm/trace-events @@ -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 virt_acpi_setup(void) "No fw cfg or ACPI disabled. Bailing out." diff --git a/hw/audio/trace-events b/hw/audio/trace-events index 3210386..47e2ed5 100644 --- a/hw/audio/trace-events +++ b/hw/audio/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/audio/cs4231.c cs4231_mem_readl_dreg(uint32_t reg, uint32_t ret) "read dreg %d: 0x%02x" diff --git a/hw/block/dataplane/trace-events b/hw/block/dataplane/trace-events index e07673a..1a7ea27 100644 --- a/hw/block/dataplane/trace-events +++ b/hw/block/dataplane/trace-events @@ -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 virtio_blk_data_plane_start(void *s) "dataplane %p" diff --git a/hw/block/trace-events b/hw/block/trace-events index c332c01..cb6767b 100644 --- a/hw/block/trace-events +++ b/hw/block/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/block/virtio-blk.c virtio_blk_req_complete(void *vdev, void *req, int status) "vdev %p req %p status %d" diff --git a/hw/char/trace-events b/hw/char/trace-events index daf4ee4..eeb1a0a 100644 --- a/hw/char/trace-events +++ b/hw/char/trace-events @@ -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 virtio_serial_send_control_event(unsigned int port, uint16_t event, uint16_t value) "port %u, event %u, value %u" diff --git a/hw/core/loader.c b/hw/core/loader.c index e5e8cbb..ebe574c 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -146,7 +146,7 @@ int load_image_targphys_as(const char *filename, int size; size = get_image_size(filename); - if (size > max_sz) { + if (size < 0 || size > max_sz) { return -1; } if (size > 0) { @@ -168,7 +168,7 @@ int load_image_mr(const char *filename, MemoryRegion *mr) size = get_image_size(filename); - if (size > memory_region_size(mr)) { + if (size < 0 || size > memory_region_size(mr)) { return -1; } if (size > 0) { diff --git a/hw/display/trace-events b/hw/display/trace-events index 3e896d2..02d03a9 100644 --- a/hw/display/trace-events +++ b/hw/display/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/display/jazz_led.c jazz_led_read(uint64_t addr, uint8_t val) "read addr=0x%"PRIx64": 0x%x" diff --git a/hw/dma/trace-events b/hw/dma/trace-events index 22878df..40e9688 100644 --- a/hw/dma/trace-events +++ b/hw/dma/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/dma/rc4030.c jazzio_read(uint64_t addr, uint32_t ret) "read reg[0x%"PRIx64"] = 0x%x" diff --git a/hw/i386/trace-events b/hw/i386/trace-events index 42d8a7e..d43b4b6 100644 --- a/hw/i386/trace-events +++ b/hw/i386/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # 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 diff --git a/hw/input/trace-events b/hw/input/trace-events index 5a87818..e1c8780 100644 --- a/hw/input/trace-events +++ b/hw/input/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/input/ps2.c ps2_put_keycode(void *opaque, int keycode) "%p keycode %d" diff --git a/hw/intc/trace-events b/hw/intc/trace-events index c586714..1788dda 100644 --- a/hw/intc/trace-events +++ b/hw/intc/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/intc/apic_common.c cpu_set_apic_base(uint64_t val) "%016"PRIx64 diff --git a/hw/isa/trace-events b/hw/isa/trace-events index 9faca41..254500a 100644 --- a/hw/isa/trace-events +++ b/hw/isa/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/isa/pc87312.c pc87312_io_read(uint32_t addr, uint32_t val) "read addr=%x val=%x" diff --git a/hw/mem/trace-events b/hw/mem/trace-events index 323c3c1..e150dcc 100644 --- a/hw/mem/trace-events +++ b/hw/mem/trace-events @@ -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 mhp_pc_dimm_assigned_slot(int slot) "%d" diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index a58f9ee..47a015f 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -642,7 +642,10 @@ static int64_t ivshmem_recv_msg(IVShmemState *s, int *pfd, Error **errp) do { ret = qemu_chr_fe_read_all(&s->server_chr, (uint8_t *)&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"); return INT64_MIN; } diff --git a/hw/misc/trace-events b/hw/misc/trace-events index 28b8cd1..56ee4fb 100644 --- a/hw/misc/trace-events +++ b/hw/misc/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/misc/eccmemctl.c ecc_mem_writel_mer(uint32_t val) "Write memory enable %08x" diff --git a/hw/net/trace-events b/hw/net/trace-events index c714805..2535d5b 100644 --- a/hw/net/trace-events +++ b/hw/net/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/net/lance.c lance_mem_readw(uint64_t addr, uint32_t ret) "addr=%"PRIx64"val=0x%04x" diff --git a/hw/nvram/trace-events b/hw/nvram/trace-events index 1f1e05a..f9a778d 100644 --- a/hw/nvram/trace-events +++ b/hw/nvram/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/nvram/ds1225y.c nvram_read(uint32_t addr, uint32_t ret) "read addr %d: 0x%02x" diff --git a/hw/pci/trace-events b/hw/pci/trace-events index 83c8f5a..2f0da76 100644 --- a/hw/pci/trace-events +++ b/hw/pci/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # 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 diff --git a/hw/ppc/trace-events b/hw/ppc/trace-events index 0f7d9be..0501b88 100644 --- a/hw/ppc/trace-events +++ b/hw/ppc/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/ppc/spapr_pci.c spapr_pci_msi(const char *msg, uint32_t ca) "%s (cfg=%x)" diff --git a/hw/s390x/trace-events b/hw/s390x/trace-events index f07e974..5086cd9 100644 --- a/hw/s390x/trace-events +++ b/hw/s390x/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/s390x/css.c css_enable_facility(const char *facility) "CSS: enable %s" diff --git a/hw/scsi/trace-events b/hw/scsi/trace-events index 4a2e5d6..652a815 100644 --- a/hw/scsi/trace-events +++ b/hw/scsi/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/scsi/scsi-bus.c scsi_req_alloc(int target, int lun, int tag) "target %d lun %d tag %d" diff --git a/hw/sd/trace-events b/hw/sd/trace-events index b17e7ba..42ebc2d 100644 --- a/hw/sd/trace-events +++ b/hw/sd/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/sd/milkymist-memcard.c milkymist_memcard_memory_read(uint32_t addr, uint32_t value) "addr %08x value %08x" diff --git a/hw/sparc/trace-events b/hw/sparc/trace-events index 30fb037..efd765c 100644 --- a/hw/sparc/trace-events +++ b/hw/sparc/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/sparc/sun4m.c sun4m_cpu_interrupt(unsigned int level) "Set CPU IRQ %d" diff --git a/hw/timer/trace-events b/hw/timer/trace-events index fd8196b..62c4e0d 100644 --- a/hw/timer/trace-events +++ b/hw/timer/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/timer/slavio_timer.c slavio_timer_get_out(uint64_t limit, uint32_t counthigh, uint32_t count) "limit %"PRIx64" count %x%08x" diff --git a/hw/unicore32/puv3.c b/hw/unicore32/puv3.c index e9d1a60..ff62efb 100644 --- a/hw/unicore32/puv3.c +++ b/hw/unicore32/puv3.c @@ -92,7 +92,10 @@ static void puv3_load_kernel(const char *kernel_filename) if (kernel_filename == NULL && qtest_enabled()) { return; } - assert(kernel_filename != NULL); + if (kernel_filename == NULL) { + error_report("kernel parameter cannot be empty"); + exit(1); + } /* only zImage format supported */ size = load_image_targphys(kernel_filename, KERNEL_LOAD_ADDR, diff --git a/hw/usb/trace-events b/hw/usb/trace-events index 0c323d4..f74cbd5 100644 --- a/hw/usb/trace-events +++ b/hw/usb/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # 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" diff --git a/hw/vfio/trace-events b/hw/vfio/trace-events index 2561c6d..f7f8914 100644 --- a/hw/vfio/trace-events +++ b/hw/vfio/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # hw/vfio/pci.c vfio_intx_interrupt(const char *name, char line) " (%s) Pin %c" diff --git a/hw/virtio/trace-events b/hw/virtio/trace-events index e24d8fa..012bbaa 100644 --- a/hw/virtio/trace-events +++ b/hw/virtio/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # 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" diff --git a/hw/xen/trace-events b/hw/xen/trace-events index 5615dce..bff4f23 100644 --- a/hw/xen/trace-events +++ b/hw/xen/trace-events @@ -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 xen_default_ioreq_server(void) "" diff --git a/include/qapi/visitor.h b/include/qapi/visitor.h index fe9faf4..0f3b8cb 100644 --- a/include/qapi/visitor.h +++ b/include/qapi/visitor.h @@ -36,7 +36,7 @@ * QemuOpts, and clone visitors have some implementation limitations; * see the documentation for each visitor for more details on what it * 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. * * All of the visitors are created via: diff --git a/include/qemu/atomic.h b/include/qemu/atomic.h index e07c797..b6b62fb 100644 --- a/include/qemu/atomic.h +++ b/include/qemu/atomic.h @@ -8,7 +8,7 @@ * 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 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. */ @@ -427,7 +427,7 @@ * sequentially consistent operations. * * 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 diff --git a/io/trace-events b/io/trace-events index ff993be..3d23369 100644 --- a/io/trace-events +++ b/io/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # io/task.c qio_task_new(void *task, void *source, void *func, void *opaque) "Task new task=%p source=%p func=%p opaque=%p" diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 2a902f7..7906288 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -1099,7 +1099,7 @@ static inline void elf_core_copy_regs(target_elf_gregset_t *regs, int 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); diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 003943b..dfc1301 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -1622,6 +1622,7 @@ static inline abi_long host_to_target_sockaddr(abi_ulong target_addr, if (len == 0) { return 0; } + assert(addr); target_saddr = lock_user(VERIFY_WRITE, target_addr, len, 0); if (!target_saddr) @@ -5573,6 +5574,7 @@ static abi_long do_ioctl_rt(const IOCTLEntry *ie, uint8_t *buf_temp, field_types, THUNK_HOST); } unlock_user(argptr, arg, 0); + assert(host_rt_dev_ptr); ret = get_errno(safe_ioctl(fd, ie->host_cmd, buf_temp)); 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) case TARGET_NR_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; #endif #ifdef CONFIG_INOTIFY1 @@ -11748,7 +11752,9 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, case TARGET_NR_inotify_init1: ret = get_errno(sys_inotify_init1(target_to_host_bitmask(arg1, fcntl_flags_tbl))); - fd_trans_register(ret, &target_inotify_trans); + if (ret >= 0) { + fd_trans_register(ret, &target_inotify_trans); + } break; #endif #endif @@ -11914,7 +11920,9 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, #if defined(TARGET_NR_eventfd) case TARGET_NR_eventfd: ret = get_errno(eventfd(arg1, 0)); - fd_trans_register(ret, &target_eventfd_trans); + if (ret >= 0) { + fd_trans_register(ret, &target_eventfd_trans); + } break; #endif #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; } 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; } #endif diff --git a/linux-user/trace-events b/linux-user/trace-events index fc71f91..80ad957 100644 --- a/linux-user/trace-events +++ b/linux-user/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # linux-user/signal.c user_setup_frame(void *env, uint64_t frame_addr) "env=%p frame_addr=%"PRIx64 diff --git a/migration/trace-events b/migration/trace-events index cb2c4b5..a7d546b 100644 --- a/migration/trace-events +++ b/migration/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # migration/savevm.c qemu_loadvm_state_section(unsigned int section_type) "%d" @@ -423,7 +423,7 @@ _eth_get_rss_ex_dst_addr(const struct iovec *pkt, int pkt_frags, rthdr_offset + sizeof(*ext_hdr), dst_addr, sizeof(*dst_addr)); - return bytes_read == sizeof(dst_addr); + return bytes_read == sizeof(*dst_addr); } return false; @@ -472,7 +472,7 @@ _eth_get_rss_ex_src_addr(const struct iovec *pkt, int pkt_frags, opt_offset + sizeof(opthdr), src_addr, sizeof(*src_addr)); - return bytes_read == sizeof(src_addr); + return bytes_read == sizeof(*src_addr); } opt_offset += optlen; diff --git a/net/trace-events b/net/trace-events index 247e5c0..2018139 100644 --- a/net/trace-events +++ b/net/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # net/vhost-user.c vhost_user_event(const char *chr, int event) "chr: %s got event: %d" diff --git a/qapi-schema.json b/qapi-schema.json index c96f0a2..802ea53 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -23,7 +23,7 @@ # | -> data issued by the Client # | <- 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. # # = Stability Considerations @@ -108,7 +108,7 @@ # # 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 -# 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 # diff --git a/qapi/introspect.json b/qapi/introspect.json index 1dbaef5..cf77ff0 100644 --- a/qapi/introspect.json +++ b/qapi/introspect.json @@ -226,7 +226,7 @@ # # @members: the alternate type's members, in no particular order. # 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. # diff --git a/qapi/qapi-util.c b/qapi/qapi-util.c index e28dbd0..46eda7d 100644 --- a/qapi/qapi-util.c +++ b/qapi/qapi-util.c @@ -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 * may contain only letters, digits, hyphen and period. * 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! * If @complete, the parse fails unless it consumes @str completely. * Return its length on success, -1 on failure. diff --git a/qom/trace-events b/qom/trace-events index 97db357..5d86fbf 100644 --- a/qom/trace-events +++ b/qom/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # 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)" diff --git a/scripts/qapi2texi.py b/scripts/qapi2texi.py index 9e01500..a317526 100755 --- a/scripts/qapi2texi.py +++ b/scripts/qapi2texi.py @@ -91,7 +91,7 @@ def texi_format(doc): # doesn't. # # 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('| '): line = EXAMPLE_FMT(code=line[2:]) elif line.startswith('= '): diff --git a/scripts/simpletrace.py b/scripts/simpletrace.py index f1be6e4..2a977e2 100755 --- a/scripts/simpletrace.py +++ b/scripts/simpletrace.py @@ -7,7 +7,7 @@ # This work is licensed under the terms of the GNU GPL, version 2. See # the COPYING file in the top-level directory. # -# For help see docs/tracing.txt +# For help see docs/devel/tracing.txt import struct import re diff --git a/target/arm/trace-events b/target/arm/trace-events index e21c84f..c4fcda5 100644 --- a/target/arm/trace-events +++ b/target/arm/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # target/arm/helper.c arm_gt_recalc(int timer, int irqstate, uint64_t nexttick) "gt recalc: timer %d irqstate %d next tick %" PRIx64 diff --git a/target/i386/trace-events b/target/i386/trace-events index de6a1cf..3153fd4 100644 --- a/target/i386/trace-events +++ b/target/i386/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # target/i386/kvm.c kvm_x86_fixup_msi_error(uint32_t gsi) "VT-d failed to remap interrupt for GSI %" PRIu32 diff --git a/target/m68k/translate.c b/target/m68k/translate.c index ada2a91..be24355 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -1321,7 +1321,7 @@ static void gen_cc_cond(DisasCompare *c, DisasContext *s, int cond) case 5: /* CS (C) */ /* Some cases fold C into X. */ 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; c->v1 = QREG_CC_X; goto done; diff --git a/target/mips/trace-events b/target/mips/trace-events index 4382408..05eafd7 100644 --- a/target/mips/trace-events +++ b/target/mips/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # target/mips/translate.c mips_translate_c0(const char *instr, const char *rn, int reg, int sel) "%s %s (reg %d sel %d)" diff --git a/target/ppc/trace-events b/target/ppc/trace-events index b666156..35ee898 100644 --- a/target/ppc/trace-events +++ b/target/ppc/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # target/ppc/kvm.c kvm_failed_spr_set(int str, const char *msg) "Warning: Unable to set SPR %d to KVM: %s" diff --git a/target/s390x/trace-events b/target/s390x/trace-events index 1574033..852a248 100644 --- a/target/s390x/trace-events +++ b/target/s390x/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # target/s390x/mmu_helper.c get_skeys_nonzero(int rc) "SKEY: Call to get_skeys unexpectedly returned %d" diff --git a/target/sparc/trace-events b/target/sparc/trace-events index 8df178a..8d1ed1b 100644 --- a/target/sparc/trace-events +++ b/target/sparc/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # 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" diff --git a/target/tricore/cpu.c b/target/tricore/cpu.c index 08f50e2..5ab5b56 100644 --- a/target/tricore/cpu.c +++ b/target/tricore/cpu.c @@ -22,6 +22,15 @@ #include "cpu.h" #include "qemu-common.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) { @@ -176,6 +185,7 @@ static void tricore_cpu_class_init(ObjectClass *c, void *data) cc->dump_state = tricore_cpu_dump_state; cc->set_pc = tricore_cpu_set_pc; 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) @@ -446,7 +446,7 @@ when MTTCG is enabled. The guest translators should generate this opcode for all guest instructions 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 diff --git a/tests/Makefile.include b/tests/Makefile.include index 7af278d..59e536b 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -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/bios-tables-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/ipmi-kcs-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),) check-qtest-x86_64-$(CONFIG_VHOST_NET_TEST_x86_64) += tests/vhost-user-test$(EXESUF) 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-redirector$(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/boot-serial-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) gcov-files-ppc64-y += hw/usb/hcd-ohci.c 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) gcov-files-ppc64-y += hw/usb/hcd-xhci.c 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-redirector$(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 .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,) $(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \ QTEST_QEMU_IMG=qemu-img$(EXESUF) \ diff --git a/tests/check-qom-proplist.c b/tests/check-qom-proplist.c index 432b665..c51e6e7 100644 --- a/tests/check-qom-proplist.c +++ b/tests/check-qom-proplist.c @@ -428,6 +428,8 @@ static void test_dummy_createcmdl(void) g_assert(err == NULL); error_free(err); + object_unref(OBJECT(dobj)); + /* * cmdline-parsing via qemu_opts_parse() results in a QemuOpts entry * corresponding to the Object's ID to be added to the QemuOptsList @@ -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; assert(id < max_struct_entries); - se = struct_entries + id; /* first we count the number of fields */ 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); nb_fields++; } + assert(nb_fields > 0); + se = struct_entries + id; se->field_types = types; se->nb_fields = nb_fields; se->name = name; diff --git a/ui/trace-events b/ui/trace-events index 19ce5f8..34c2213 100644 --- a/ui/trace-events +++ b/ui/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # ui/console.c console_gfx_new(void) "" @@ -3521,6 +3521,20 @@ static int vnc_display_get_address(const char *addrstr, 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, bool reverse, SocketAddress ***retsaddr, @@ -3538,7 +3552,6 @@ static int vnc_display_get_addresses(QemuOpts *opts, bool has_ipv6 = qemu_opt_get(opts, "ipv6"); bool ipv4 = qemu_opt_get_bool(opts, "ipv4", false); bool ipv6 = qemu_opt_get_bool(opts, "ipv6", false); - size_t i; int displaynum = -1; int ret = -1; @@ -3614,16 +3627,8 @@ static int vnc_display_get_addresses(QemuOpts *opts, ret = 0; cleanup: if (ret < 0) { - for (i = 0; i < *retnsaddr; i++) { - qapi_free_SocketAddress((*retsaddr)[i]); - } - g_free(*retsaddr); - for (i = 0; i < *retnwsaddr; i++) { - qapi_free_SocketAddress((*retwsaddr)[i]); - } - g_free(*retwsaddr); - *retsaddr = *retwsaddr = NULL; - *retnsaddr = *retnwsaddr = 0; + vnc_free_addresses(retsaddr, retnsaddr); + vnc_free_addresses(retwsaddr, retnwsaddr); } return ret; } @@ -3772,7 +3777,6 @@ void vnc_display_open(const char *id, Error **errp) int acl = 0; int lock_key_sync = 1; int key_delay_ms; - size_t i; if (!vd) { error_setg(errp, "VNC display not active"); @@ -3993,12 +3997,8 @@ void vnc_display_open(const char *id, Error **errp) } cleanup: - for (i = 0; i < nsaddr; i++) { - qapi_free_SocketAddress(saddr[i]); - } - for (i = 0; i < nwsaddr; i++) { - qapi_free_SocketAddress(wsaddr[i]); - } + vnc_free_addresses(&saddr, &nsaddr); + vnc_free_addresses(&wsaddr, &nwsaddr); return; fail: diff --git a/util/trace-events b/util/trace-events index fa540c6..025499f 100644 --- a/util/trace-events +++ b/util/trace-events @@ -1,4 +1,4 @@ -# See docs/tracing.txt for syntax documentation. +# See docs/devel/tracing.txt for syntax documentation. # util/aio-posix.c run_poll_handlers_begin(void *ctx, int64_t max_ns) "ctx %p max_ns %"PRId64 |