diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2015-03-10 11:44:59 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2015-03-10 11:44:59 +0000 |
commit | 8437f7be3b1c49631e435c652707f2cee477149d (patch) | |
tree | 0ee51a4ec9a966a780e414f823599aa183865ae7 | |
parent | 277263e1b320d759a760ba6c5ea75ec268f929e5 (diff) | |
parent | 438940cbc2eabbe9e403e5249dfa0be6c792c93b (diff) |
Merge remote-tracking branch 'remotes/mjt/tags/pull-trivial-patches-2015-03-04' into staging
trivial patches for 2015-03-04
# gpg: Signature made Tue Mar 10 05:16:59 2015 GMT using RSA key ID A4C3D7DB
# gpg: Good signature from "Michael Tokarev <mjt@tls.msk.ru>"
# gpg: aka "Michael Tokarev <mjt@corpit.ru>"
# gpg: aka "Michael Tokarev <mjt@debian.org>"
* remotes/mjt/tags/pull-trivial-patches-2015-03-04: (44 commits)
9pfs: remove useless return
gdbstub: avoid possible NULL pointer dereference
milkymist-pfpu: fix GCC 5.0.0 aggressive-loop-optimizations warning
fix GCC 5.0.0 logical-not-parentheses warnings
migration: Fix coding style (whitespace issues)
oslib-posix: Fix compiler warning (-Wclobbered) and simplify the code
disas/microblaze: Fix warnings caused by missing 'static' attribute
disas/arm: Fix warnings caused by missing 'static' attribute
vhost_net: Add missing 'static' attribute
e500: fix memory leak
gitignore: Ignore new tests
gitignore: Track common.env in iotests gitignore
sysbus: fix memory leak
milkymist.c: fix memory leak
macio: fix possible memory leak
sparc/leon3.c: fix memory leak
nbd: fix resource leak
qemu-char: add cyrillic key 'numerosign' to Russian keymap
qemu-char: add cyrillic characters 'numerosign' to VNC keysyms
qapi-schema: Fix SpiceChannel docs
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
59 files changed, 162 insertions, 281 deletions
diff --git a/.gitignore b/.gitignore index 090f974cb9..e32a58417a 100644 --- a/.gitignore +++ b/.gitignore @@ -109,4 +109,3 @@ cscope.* tags TAGS *~ -/tests/qemu-iotests/common.env diff --git a/block/archipelago.c b/block/archipelago.c index a8114b528b..855655c6bd 100644 --- a/block/archipelago.c +++ b/block/archipelago.c @@ -291,7 +291,7 @@ static int qemu_archipelago_init(BDRVArchipelagoState *s) ret = qemu_archipelago_xseg_init(s); if (ret < 0) { - error_report("Cannot initialize XSEG. Aborting...\n"); + error_report("Cannot initialize XSEG. Aborting..."); goto err_exit; } @@ -645,7 +645,7 @@ static int qemu_archipelago_create_volume(Error **errp, const char *volname, target = xseg_get_target(xseg, req); if (!target) { - error_setg(errp, "Cannot get XSEG target.\n"); + error_setg(errp, "Cannot get XSEG target."); goto err_exit; } memcpy(target, volname, targetlen); @@ -889,7 +889,7 @@ static BlockAIOCB *qemu_archipelago_aio_rw(BlockDriverState *bs, return &aio_cb->common; err_exit: - error_report("qemu_archipelago_aio_rw(): I/O Error\n"); + error_report("qemu_archipelago_aio_rw(): I/O Error"); qemu_aio_unref(aio_cb); return NULL; } diff --git a/block/nbd.c b/block/nbd.c index 697c0219b4..6634a69664 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -274,6 +274,7 @@ static int nbd_open(BlockDriverState *bs, QDict *options, int flags, */ sock = nbd_establish_connection(bs, errp); if (sock < 0) { + g_free(export); return sock; } @@ -1474,6 +1474,7 @@ void qmp_memsave(int64_t addr, int64_t size, const char *filename, uint32_t l; CPUState *cpu; uint8_t buf[1024]; + int64_t orig_addr = addr, orig_size = size; if (!has_cpu) { cpu_index = 0; @@ -1497,7 +1498,8 @@ void qmp_memsave(int64_t addr, int64_t size, const char *filename, if (l > size) l = size; if (cpu_memory_rw_debug(cpu, addr, buf, l, 0) != 0) { - error_setg(errp, "Invalid addr 0x%016" PRIx64 "specified", addr); + error_setg(errp, "Invalid addr 0x%016" PRIx64 "/size %" PRId64 + " specified", orig_addr, orig_size); goto exit; } if (fwrite(buf, 1, l, f) != l) { diff --git a/disas/arm.c b/disas/arm.c index 76e97a8957..6165246539 100644 --- a/disas/arm.c +++ b/disas/arm.c @@ -1549,10 +1549,6 @@ enum map_type { MAP_DATA }; -enum map_type last_type; -int last_mapping_sym = -1; -bfd_vma last_mapping_addr = 0; - /* Decode a bitfield of the form matching regexp (N(-N)?,)*N(-N)?. Returns pointer to following character of the format string and fills in *VALUEP and *WIDTHP with the extracted value and number of @@ -3878,135 +3874,11 @@ print_insn_arm (bfd_vma pc, struct disassemble_info *info) int is_data = false; unsigned int size = 4; void (*printer) (bfd_vma, struct disassemble_info *, long); -#if 0 - bfd_boolean found = false; - - if (info->disassembler_options) - { - parse_disassembler_options (info->disassembler_options); - - /* To avoid repeated parsing of these options, we remove them here. */ - info->disassembler_options = NULL; - } - - /* First check the full symtab for a mapping symbol, even if there - are no usable non-mapping symbols for this address. */ - if (info->symtab != NULL - && bfd_asymbol_flavour (*info->symtab) == bfd_target_elf_flavour) - { - bfd_vma addr; - int n; - int last_sym = -1; - enum map_type type = MAP_ARM; - - if (pc <= last_mapping_addr) - last_mapping_sym = -1; - is_thumb = (last_type == MAP_THUMB); - found = false; - /* Start scanning at the start of the function, or wherever - we finished last time. */ - n = info->symtab_pos + 1; - if (n < last_mapping_sym) - n = last_mapping_sym; - - /* Scan up to the location being disassembled. */ - for (; n < info->symtab_size; n++) - { - addr = bfd_asymbol_value (info->symtab[n]); - if (addr > pc) - break; - if ((info->section == NULL - || info->section == info->symtab[n]->section) - && get_sym_code_type (info, n, &type)) - { - last_sym = n; - found = true; - } - } - - if (!found) - { - n = info->symtab_pos; - if (n < last_mapping_sym - 1) - n = last_mapping_sym - 1; - - /* No mapping symbol found at this address. Look backwards - for a preceding one. */ - for (; n >= 0; n--) - { - if (get_sym_code_type (info, n, &type)) - { - last_sym = n; - found = true; - break; - } - } - } - - last_mapping_sym = last_sym; - last_type = type; - is_thumb = (last_type == MAP_THUMB); - is_data = (last_type == MAP_DATA); - - /* Look a little bit ahead to see if we should print out - two or four bytes of data. If there's a symbol, - mapping or otherwise, after two bytes then don't - print more. */ - if (is_data) - { - size = 4 - (pc & 3); - for (n = last_sym + 1; n < info->symtab_size; n++) - { - addr = bfd_asymbol_value (info->symtab[n]); - if (addr > pc) - { - if (addr - pc < size) - size = addr - pc; - break; - } - } - /* If the next symbol is after three bytes, we need to - print only part of the data, so that we can use either - .byte or .short. */ - if (size == 3) - size = (pc & 1) ? 1 : 2; - } - } - - if (info->symbols != NULL) - { - if (bfd_asymbol_flavour (*info->symbols) == bfd_target_coff_flavour) - { - coff_symbol_type * cs; - - cs = coffsymbol (*info->symbols); - is_thumb = ( cs->native->u.syment.n_sclass == C_THUMBEXT - || cs->native->u.syment.n_sclass == C_THUMBSTAT - || cs->native->u.syment.n_sclass == C_THUMBLABEL - || cs->native->u.syment.n_sclass == C_THUMBEXTFUNC - || cs->native->u.syment.n_sclass == C_THUMBSTATFUNC); - } - else if (bfd_asymbol_flavour (*info->symbols) == bfd_target_elf_flavour - && !found) - { - /* If no mapping symbol has been found then fall back to the type - of the function symbol. */ - elf_symbol_type * es; - unsigned int type; - - es = *(elf_symbol_type **)(info->symbols); - type = ELF_ST_TYPE (es->internal_elf_sym.st_info); - - is_thumb = (type == STT_ARM_TFUNC) || (type == STT_ARM_16BIT); - } - } -#else int little; little = (info->endian == BFD_ENDIAN_LITTLE); is_thumb |= (pc & 1); pc &= ~(bfd_vma)1; -#endif if (force_thumb) is_thumb = true; diff --git a/disas/microblaze.c b/disas/microblaze.c index ec91af386d..c14ab89b7c 100644 --- a/disas/microblaze.c +++ b/disas/microblaze.c @@ -275,7 +275,7 @@ enum microblaze_instr_type { #define MAX_OPCODES 280 -struct op_code_struct { +static struct op_code_struct { const char *name; short inst_type; /* registers and immediate values involved */ short inst_offset_type; /* immediate vals offset from PC? (= 1 for branches) */ @@ -567,10 +567,9 @@ struct op_code_struct { }; /* prefix for register names */ -char register_prefix[] = "r"; -char special_register_prefix[] = "spr"; -char fsl_register_prefix[] = "rfsl"; -char pvr_register_prefix[] = "rpvr"; +static const char register_prefix[] = "r"; +static const char fsl_register_prefix[] = "rfsl"; +static const char pvr_register_prefix[] = "rpvr"; /* #defines for valid immediate range */ @@ -738,7 +737,9 @@ get_field_special (long instr, struct op_code_struct * op) default : { if ( ((((instr & IMM_MASK) >> IMM_LOW) ^ op->immval_mask) & 0xE000) == REG_PVR_MASK) { - sprintf(tmpstr, "%spvr%d", register_prefix, (unsigned short)(((instr & IMM_MASK) >> IMM_LOW) ^ op->immval_mask) ^ REG_PVR_MASK); + sprintf(tmpstr, "%s%u", pvr_register_prefix, + (unsigned short)(((instr & IMM_MASK) >> IMM_LOW) ^ + op->immval_mask) ^ REG_PVR_MASK); return(strdup(tmpstr)); } else { strcpy(spr, "pc"); @@ -1188,7 +1188,7 @@ static void *file_ram_alloc(RAMBlock *block, error: if (mem_prealloc) { - error_report("%s\n", error_get_pretty(*errp)); + error_report("%s", error_get_pretty(*errp)); exit(1); } return NULL; @@ -1443,15 +1443,17 @@ void gdb_exit(CPUArchState *env, int code) if (gdbserver_fd < 0 || s->fd < 0) { return; } +#else + if (!s->chr) { + return; + } #endif snprintf(buf, sizeof(buf), "W%02x", (uint8_t)code); put_packet(s, buf); #ifndef CONFIG_USER_ONLY - if (s->chr) { - qemu_chr_delete(s->chr); - } + qemu_chr_delete(s->chr); #endif } diff --git a/hw/9pfs/virtio-9p-local.c b/hw/9pfs/virtio-9p-local.c index a183eee662..d05c91779f 100644 --- a/hw/9pfs/virtio-9p-local.c +++ b/hw/9pfs/virtio-9p-local.c @@ -332,7 +332,6 @@ static ssize_t local_readlink(FsContext *fs_ctx, V9fsPath *fs_path, tsize = read(fd, (void *)buf, bufsz); } while (tsize == -1 && errno == EINTR); close(fd); - return tsize; } else if ((fs_ctx->export_flags & V9FS_SM_PASSTHROUGH) || (fs_ctx->export_flags & V9FS_SM_NONE)) { buffer = rpath(fs_ctx, path); diff --git a/hw/arm/digic_boards.c b/hw/arm/digic_boards.c index 2a4b8720a6..7114c36e38 100644 --- a/hw/arm/digic_boards.c +++ b/hw/arm/digic_boards.c @@ -65,7 +65,7 @@ static void digic4_board_init(DigicBoard *board) s->digic = DIGIC(object_new(TYPE_DIGIC)); object_property_set_bool(OBJECT(s->digic), true, "realized", &err); if (err != NULL) { - error_report("Couldn't realize DIGIC SoC: %s\n", + error_report("Couldn't realize DIGIC SoC: %s", error_get_pretty(err)); exit(1); } @@ -104,13 +104,13 @@ static void digic_load_rom(DigicBoardState *s, hwaddr addr, char *fn = qemu_find_file(QEMU_FILE_TYPE_BIOS, filename); if (!fn) { - error_report("Couldn't find rom image '%s'.\n", filename); + error_report("Couldn't find rom image '%s'.", filename); exit(1); } rom_size = load_image_targphys(fn, addr, max_size); if (rom_size < 0 || rom_size > max_size) { - error_report("Couldn't load rom image '%s'.\n", filename); + error_report("Couldn't load rom image '%s'.", filename); exit(1); } } diff --git a/hw/block/nand.c b/hw/block/nand.c index 1882a0cbeb..61d2cec032 100644 --- a/hw/block/nand.c +++ b/hw/block/nand.c @@ -393,7 +393,7 @@ static void nand_realize(DeviceState *dev, Error **errp) nand_init_2048(s); break; default: - error_setg(errp, "Unsupported NAND block size %#x\n", + error_setg(errp, "Unsupported NAND block size %#x", 1 << s->page_shift); return; } diff --git a/hw/core/sysbus.c b/hw/core/sysbus.c index 84af59379d..b53c351aa4 100644 --- a/hw/core/sysbus.c +++ b/hw/core/sysbus.c @@ -91,6 +91,8 @@ bool sysbus_has_irq(SysBusDevice *dev, int n) ObjectProperty *r; r = object_property_find(OBJECT(dev), prop, NULL); + g_free(prop); + return (r != NULL); } diff --git a/hw/dma/pl330.c b/hw/dma/pl330.c index 16cf77e7b2..5be3df521d 100644 --- a/hw/dma/pl330.c +++ b/hw/dma/pl330.c @@ -1566,7 +1566,7 @@ static void pl330_realize(DeviceState *dev, Error **errp) s->cfg[1] |= 5; break; default: - error_setg(errp, "Bad value for i-cache_len property: %" PRIx8 "\n", + error_setg(errp, "Bad value for i-cache_len property: %" PRIx8, s->i_cache_len); return; } @@ -1601,7 +1601,7 @@ static void pl330_realize(DeviceState *dev, Error **errp) s->cfg[CFG_CRD] |= 0x4; break; default: - error_setg(errp, "Bad value for data_width property: %" PRIx8 "\n", + error_setg(errp, "Bad value for data_width property: %" PRIx8, s->data_width); return; } diff --git a/hw/ide/pci.c b/hw/ide/pci.c index e3f2054a90..913a9762d6 100644 --- a/hw/ide/pci.c +++ b/hw/ide/pci.c @@ -99,7 +99,7 @@ static int32_t bmdma_prepare_buf(IDEDMA *dma, int is_write) * This should accommodate the largest ATA transaction * for LBA48 (65,536 sectors) and 32K sector sizes. */ if (s->sg.size > INT32_MAX) { - error_report("IDE: sglist describes more than 2GiB.\n"); + error_report("IDE: sglist describes more than 2GiB."); break; } bm->cur_prd_addr += l; diff --git a/hw/lm32/milkymist.c b/hw/lm32/milkymist.c index 256c1029ce..7f622610d2 100644 --- a/hw/lm32/milkymist.c +++ b/hw/lm32/milkymist.c @@ -155,6 +155,7 @@ milkymist_init(MachineState *machine) bios_name); exit(1); } + g_free(bios_filename); milkymist_uart_create(0x60000000, irq[0]); milkymist_sysctl_create(0x60001000, irq[1], irq[2], irq[3], diff --git a/hw/microblaze/boot.c b/hw/microblaze/boot.c index a2843cdf99..38c59dbe9d 100644 --- a/hw/microblaze/boot.c +++ b/hw/microblaze/boot.c @@ -185,7 +185,7 @@ void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base, ram_size - initrd_offset); } if (initrd_size < 0) { - error_report("qemu: could not load initrd '%s'\n", + error_report("qemu: could not load initrd '%s'", initrd_filename); exit(EXIT_FAILURE); } diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c index 9bc3f2d908..063ad80412 100644 --- a/hw/misc/macio/macio.c +++ b/hw/misc/macio/macio.c @@ -273,7 +273,7 @@ static int macio_newworld_initfn(PCIDevice *d) MacIOState *s = MACIO(d); NewWorldMacIOState *ns = NEWWORLD_MACIO(d); SysBusDevice *sysbus_dev; - MemoryRegion *timer_memory = g_new(MemoryRegion, 1); + MemoryRegion *timer_memory = NULL; int i; int cur_irq = 0; int ret = macio_common_initfn(d); @@ -301,6 +301,7 @@ static int macio_newworld_initfn(PCIDevice *d) } /* Timer */ + timer_memory = g_new(MemoryRegion, 1); memory_region_init_io(timer_memory, OBJECT(s), &timer_ops, NULL, "timer", 0x1000); memory_region_add_subregion(&s->bar, 0x15000, timer_memory); diff --git a/hw/misc/milkymist-pfpu.c b/hw/misc/milkymist-pfpu.c index 609f33f9cd..08b604f13f 100644 --- a/hw/misc/milkymist-pfpu.c +++ b/hw/misc/milkymist-pfpu.c @@ -362,7 +362,7 @@ static void pfpu_start(MilkymistPFPUState *s) i = 0; while (pfpu_decode_insn(s)) { /* decode at most MICROCODE_WORDS instructions */ - if (i++ >= MICROCODE_WORDS) { + if (++i >= MICROCODE_WORDS) { error_report("milkymist_pfpu: too many instructions " "executed in microcode. No VECTOUT?"); break; diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index 2ea1ef1dd0..cf23335ba2 100644 --- a/hw/net/vhost_net.c +++ b/hw/net/vhost_net.c @@ -56,7 +56,7 @@ static const int kernel_feature_bits[] = { }; /* Features supported by others. */ -const int user_feature_bits[] = { +static const int user_feature_bits[] = { VIRTIO_F_NOTIFY_ON_EMPTY, VIRTIO_RING_F_INDIRECT_DESC, VIRTIO_RING_F_EVENT_IDX, diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 1187ab813b..27adcc5467 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -120,8 +120,8 @@ static void virtio_net_vhost_status(VirtIONet *n, uint8_t status) return; } - if (!!n->vhost_started == - (virtio_net_started(n, status) && !nc->peer->link_down)) { + if ((virtio_net_started(n, status) && !nc->peer->link_down) == + !!n->vhost_started) { return; } if (!n->vhost_started) { diff --git a/hw/net/xilinx_ethlite.c b/hw/net/xilinx_ethlite.c index 9536f64584..ad6b55306d 100644 --- a/hw/net/xilinx_ethlite.c +++ b/hw/net/xilinx_ethlite.c @@ -146,6 +146,7 @@ eth_write(void *opaque, hwaddr addr, if (!(value & CTRL_S)) { qemu_flush_queued_packets(qemu_get_queue(s->nic)); } + /* fall through */ case R_TX_LEN0: case R_TX_LEN1: case R_TX_GIE0: diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index fd0d138a1b..d51fb60f79 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -308,6 +308,7 @@ static int ppce500_load_device_tree(MachineState *machine, } fdt = load_device_tree(filename, &fdt_size); + g_free(filename); if (!fdt) { goto out; } diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c index 618b0af186..335f4429a9 100644 --- a/hw/scsi/vhost-scsi.c +++ b/hw/scsi/vhost-scsi.c @@ -83,7 +83,7 @@ static int vhost_scsi_start(VHostSCSI *s) if (abi_version > VHOST_SCSI_ABI_VERSION) { error_report("vhost-scsi: The running tcm_vhost kernel abi_version:" " %d is greater than vhost_scsi userspace supports: %d, please" - " upgrade your version of QEMU\n", abi_version, + " upgrade your version of QEMU", abi_version, VHOST_SCSI_ABI_VERSION); return -ENOSYS; } @@ -141,7 +141,7 @@ static void vhost_scsi_stop(VHostSCSI *s) if (k->set_guest_notifiers) { ret = k->set_guest_notifiers(qbus->parent, s->dev.nvqs, false); if (ret < 0) { - error_report("vhost guest notifier cleanup failed: %d\n", ret); + error_report("vhost guest notifier cleanup failed: %d", ret); } } assert(ret >= 0); @@ -186,7 +186,7 @@ static void vhost_scsi_set_status(VirtIODevice *vdev, uint8_t val) ret = vhost_scsi_start(s); if (ret < 0) { - error_report("virtio-scsi: unable to start vhost: %s\n", + error_report("virtio-scsi: unable to start vhost: %s", strerror(-ret)); /* There is no userspace virtio-scsi fallback so exit */ diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c index 751392e137..e41ec0bf3a 100644 --- a/hw/sparc/leon3.c +++ b/hw/sparc/leon3.c @@ -186,6 +186,7 @@ static void leon3_generic_hw_init(MachineState *machine) fprintf(stderr, "Can't read bios image %s\n", filename); exit(1); } + g_free(filename); /* Can directly load an application. */ if (kernel_filename != NULL) { diff --git a/hw/timer/a9gtimer.c b/hw/timer/a9gtimer.c index 435142a3c9..b087bbddb8 100644 --- a/hw/timer/a9gtimer.c +++ b/hw/timer/a9gtimer.c @@ -289,7 +289,7 @@ static void a9_gtimer_realize(DeviceState *dev, Error **errp) int i; if (s->num_cpu < 1 || s->num_cpu > A9_GTIMER_MAX_CPUS) { - error_setg(errp, "%s: num-cpu must be between 1 and %d\n", + error_setg(errp, "%s: num-cpu must be between 1 and %d", __func__, A9_GTIMER_MAX_CPUS); return; } diff --git a/hw/tpm/tpm_passthrough.c b/hw/tpm/tpm_passthrough.c index a94c7c5a24..2a45071e36 100644 --- a/hw/tpm/tpm_passthrough.c +++ b/hw/tpm/tpm_passthrough.c @@ -143,7 +143,7 @@ static int tpm_passthrough_unix_tx_bufs(TPMPassthruState *tpm_pt, if (!tpm_pt->tpm_op_canceled || (tpm_pt->tpm_op_canceled && errno != ECANCELED)) { error_report("tpm_passthrough: error while transmitting data " - "to TPM: %s (%i)\n", + "to TPM: %s (%i)", strerror(errno), errno); } goto err_exit; @@ -156,14 +156,14 @@ static int tpm_passthrough_unix_tx_bufs(TPMPassthruState *tpm_pt, if (!tpm_pt->tpm_op_canceled || (tpm_pt->tpm_op_canceled && errno != ECANCELED)) { error_report("tpm_passthrough: error while reading data from " - "TPM: %s (%i)\n", + "TPM: %s (%i)", strerror(errno), errno); } } else if (ret < sizeof(struct tpm_resp_hdr) || tpm_passthrough_get_size_from_buffer(out) != ret) { ret = -1; error_report("tpm_passthrough: received invalid response " - "packet from TPM\n"); + "packet from TPM"); } if (is_selftest && (ret >= sizeof(struct tpm_resp_hdr))) { @@ -309,7 +309,7 @@ static void tpm_passthrough_cancel_cmd(TPMBackend *tb) if (tpm_pt->cancel_fd >= 0) { n = write(tpm_pt->cancel_fd, "-", 1); if (n != 1) { - error_report("Canceling TPM command failed: %s\n", + error_report("Canceling TPM command failed: %s", strerror(errno)); } else { tpm_pt->tpm_op_canceled = true; @@ -440,13 +440,13 @@ static int tpm_passthrough_handle_device_opts(QemuOpts *opts, TPMBackend *tb) tpm_pt->tpm_fd = qemu_open(tpm_pt->tpm_dev, O_RDWR); if (tpm_pt->tpm_fd < 0) { - error_report("Cannot access TPM device using '%s': %s\n", + error_report("Cannot access TPM device using '%s': %s", tpm_pt->tpm_dev, strerror(errno)); goto err_free_parameters; } if (tpm_passthrough_test_tpmdev(tpm_pt->tpm_fd)) { - error_report("'%s' is not a TPM device.\n", + error_report("'%s' is not a TPM device.", tpm_pt->tpm_dev); goto err_close_tpmdev; } diff --git a/hw/vfio/common.c b/hw/vfio/common.c index 148eb53fc6..b01262063d 100644 --- a/hw/vfio/common.c +++ b/hw/vfio/common.c @@ -201,7 +201,7 @@ static int vfio_dma_unmap(VFIOContainer *container, }; if (ioctl(container->fd, VFIO_IOMMU_UNMAP_DMA, &unmap)) { - error_report("VFIO_UNMAP_DMA: %d\n", -errno); + error_report("VFIO_UNMAP_DMA: %d", -errno); return -errno; } @@ -234,7 +234,7 @@ static int vfio_dma_map(VFIOContainer *container, hwaddr iova, return 0; } - error_report("VFIO_MAP_DMA: %d\n", -errno); + error_report("VFIO_MAP_DMA: %d", -errno); return -errno; } @@ -274,7 +274,7 @@ static void vfio_iommu_map_notify(Notifier *n, void *data) iotlb->translated_addr, &xlat, &len, iotlb->perm & IOMMU_WO); if (!memory_region_is_ram(mr)) { - error_report("iommu map to non memory area %"HWADDR_PRIx"\n", + error_report("iommu map to non memory area %"HWADDR_PRIx"", xlat); return; } @@ -283,7 +283,7 @@ static void vfio_iommu_map_notify(Notifier *n, void *data) * check that it did not truncate too much. */ if (len & iotlb->addr_mask) { - error_report("iommu has granularity incompatible with target AS\n"); + error_report("iommu has granularity incompatible with target AS"); return; } @@ -566,7 +566,7 @@ static void vfio_kvm_device_add_group(VFIOGroup *group) }; if (kvm_vm_ioctl(kvm_state, KVM_CREATE_DEVICE, &cd)) { - error_report("Failed to create KVM VFIO device: %m\n"); + error_report("Failed to create KVM VFIO device: %m"); return; } diff --git a/hw/virtio/vhost-backend.c b/hw/virtio/vhost-backend.c index ff4f2001bb..4d68a27658 100644 --- a/hw/virtio/vhost-backend.c +++ b/hw/virtio/vhost-backend.c @@ -61,7 +61,7 @@ int vhost_set_backend_type(struct vhost_dev *dev, VhostBackendType backend_type) dev->vhost_ops = &user_ops; break; default: - error_report("Unknown vhost backend type\n"); + error_report("Unknown vhost backend type"); r = -1; } diff --git a/hw/xen/xen_pt_config_init.c b/hw/xen/xen_pt_config_init.c index de9a20f437..d99c22ef2f 100644 --- a/hw/xen/xen_pt_config_init.c +++ b/hw/xen/xen_pt_config_init.c @@ -360,15 +360,13 @@ static uint64_t xen_pt_get_bar_size(PCIIORegion *r) } static XenPTBarFlag xen_pt_bar_reg_parse(XenPCIPassthroughState *s, - XenPTRegInfo *reg) + int index) { PCIDevice *d = &s->dev; XenPTRegion *region = NULL; PCIIORegion *r; - int index = 0; /* check 64bit BAR */ - index = xen_pt_bar_offset_to_index(reg->offset); if ((0 < index) && (index < PCI_ROM_SLOT)) { int type = s->real_device.io_regions[index - 1].type; @@ -422,7 +420,7 @@ static int xen_pt_bar_reg_init(XenPCIPassthroughState *s, XenPTRegInfo *reg, } /* set BAR flag */ - s->bases[index].bar_flag = xen_pt_bar_reg_parse(s, reg); + s->bases[index].bar_flag = xen_pt_bar_reg_parse(s, index); if (s->bases[index].bar_flag == XEN_PT_BAR_FLAG_UNUSED) { reg_field = XEN_PT_INVALID_REG; } @@ -440,7 +438,7 @@ static int xen_pt_bar_reg_read(XenPCIPassthroughState *s, XenPTReg *cfg_entry, /* get BAR index */ index = xen_pt_bar_offset_to_index(reg->offset); - if (index < 0 || index >= PCI_NUM_REGIONS) { + if (index < 0 || index >= PCI_NUM_REGIONS - 1) { XEN_PT_ERR(&s->dev, "Internal error: Invalid BAR index [%d].\n", index); return -1; } diff --git a/hw/xtensa/sim.c b/hw/xtensa/sim.c index 37ea9ae9c2..328d20975d 100644 --- a/hw/xtensa/sim.c +++ b/hw/xtensa/sim.c @@ -64,7 +64,7 @@ static void xtensa_sim_init(MachineState *machine) for (n = 0; n < smp_cpus; n++) { cpu = cpu_xtensa_init(cpu_model); if (cpu == NULL) { - error_report("unable to find CPU definition '%s'\n", + error_report("unable to find CPU definition '%s'", cpu_model); exit(EXIT_FAILURE); } diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c index d441c024c2..ab4d0e4127 100644 --- a/hw/xtensa/xtfpga.c +++ b/hw/xtensa/xtfpga.c @@ -207,7 +207,7 @@ static void lx_init(const LxBoardDesc *board, MachineState *machine) for (n = 0; n < smp_cpus; n++) { cpu = cpu_xtensa_init(cpu_model); if (cpu == NULL) { - error_report("unable to find CPU definition '%s'\n", + error_report("unable to find CPU definition '%s'", cpu_model); exit(EXIT_FAILURE); } @@ -253,7 +253,7 @@ static void lx_init(const LxBoardDesc *board, MachineState *machine) board->flash_size / board->flash_sector_size, 4, 0x0000, 0x0000, 0x0000, 0x0000, be); if (flash == NULL) { - error_report("unable to mount pflash\n"); + error_report("unable to mount pflash"); exit(EXIT_FAILURE); } } @@ -305,7 +305,7 @@ static void lx_init(const LxBoardDesc *board, MachineState *machine) uint32_t dtb_addr = tswap32(cur_lowmem); if (!fdt) { - error_report("could not load DTB '%s'\n", dtb_filename); + error_report("could not load DTB '%s'", dtb_filename); exit(EXIT_FAILURE); } @@ -325,7 +325,7 @@ static void lx_init(const LxBoardDesc *board, MachineState *machine) lowmem_end - cur_lowmem); } if (initrd_size < 0) { - error_report("could not load initrd '%s'\n", initrd_filename); + error_report("could not load initrd '%s'", initrd_filename); exit(EXIT_FAILURE); } initrd_location.start = tswap32(cur_lowmem); @@ -351,7 +351,7 @@ static void lx_init(const LxBoardDesc *board, MachineState *machine) if (success > 0 && is_linux) { entry_point = ep; } else { - error_report("could not load kernel '%s'\n", + error_report("could not load kernel '%s'", kernel_filename); exit(EXIT_FAILURE); } diff --git a/include/hw/xen/xen.h b/include/hw/xen/xen.h index b0ed04caa9..4356af4560 100644 --- a/include/hw/xen/xen.h +++ b/include/hw/xen/xen.h @@ -32,7 +32,6 @@ int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num); void xen_piix3_set_irq(void *opaque, int irq_num, int level); void xen_piix_pci_write_config_client(uint32_t address, uint32_t val, int len); void xen_hvm_inject_msi(uint64_t addr, uint32_t data); -void xen_cmos_set_s3_resume(void *opaque, int irq, int level); qemu_irq *xen_interrupt_controller_init(void); diff --git a/include/qapi/qmp/qerror.h b/include/qapi/qmp/qerror.h index 986260f466..57a62d4b76 100644 --- a/include/qapi/qmp/qerror.h +++ b/include/qapi/qmp/qerror.h @@ -37,12 +37,12 @@ void qerror_report_err(Error *err); #define QERR_BASE_NOT_FOUND \ ERROR_CLASS_GENERIC_ERROR, "Base '%s' not found" -#define QERR_BLOCK_JOB_NOT_READY \ - ERROR_CLASS_GENERIC_ERROR, "The active block job for device '%s' cannot be completed" - #define QERR_BLOCK_FORMAT_FEATURE_NOT_SUPPORTED \ ERROR_CLASS_GENERIC_ERROR, "Block format '%s' used by device '%s' does not support feature '%s'" +#define QERR_BLOCK_JOB_NOT_READY \ + ERROR_CLASS_GENERIC_ERROR, "The active block job for device '%s' cannot be completed" + #define QERR_BUS_NO_HOTPLUG \ ERROR_CLASS_GENERIC_ERROR, "Bus '%s' does not support hotplugging" diff --git a/include/ui/console.h b/include/ui/console.h index 0f97d86728..6e5a867fec 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -36,7 +36,6 @@ typedef struct QEMUPutLEDEntry QEMUPutLEDEntry; QEMUPutKbdEntry *qemu_add_kbd_event_handler(QEMUPutKBDEvent *func, void *opaque); -void qemu_remove_kbd_event_handler(QEMUPutKbdEntry *entry); QEMUPutMouseEntry *qemu_add_mouse_event_handler(QEMUPutMouseEvent *func, void *opaque, int absolute, const char *name); @@ -194,7 +193,6 @@ DisplaySurface *qemu_create_displaysurface_guestmem(int width, int height, pixman_format_code_t format, int linesize, uint64_t addr); -PixelFormat qemu_different_endianness_pixelformat(int bpp); PixelFormat qemu_default_pixelformat(int bpp); DisplaySurface *qemu_create_displaysurface(int width, int height); @@ -322,7 +320,6 @@ void qemu_console_resize(QemuConsole *con, int width, int height); void qemu_console_copy(QemuConsole *con, int src_x, int src_y, int dst_x, int dst_y, int w, int h); DisplaySurface *qemu_console_surface(QemuConsole *con); -DisplayState *qemu_console_displaystate(QemuConsole *console); /* sdl.c */ void sdl_display_init(DisplayState *ds, int full_screen, int no_frame); @@ -366,7 +366,7 @@ static void kvm_log_stop(MemoryListener *listener, } } -static int kvm_set_migration_log(int enable) +static int kvm_set_migration_log(bool enable) { KVMState *s = kvm_state; KVMSlot *mem; diff --git a/migration/qemu-file-buf.c b/migration/qemu-file-buf.c index e97e0bd655..e56a8ad1e0 100644 --- a/migration/qemu-file-buf.c +++ b/migration/qemu-file-buf.c @@ -2,6 +2,10 @@ * QEMU System Emulator * * Copyright (c) 2003-2008 Fabrice Bellard + * Copyright (c) 2014 IBM Corp. + * + * Authors: + * Stefan Berger <stefanb@linux.vnet.ibm.com> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/migration/rdma.c b/migration/rdma.c index 17d00351b1..42d443cc64 100644 --- a/migration/rdma.c +++ b/migration/rdma.c @@ -702,7 +702,7 @@ static void qemu_rdma_dump_id(const char *who, struct ibv_context *verbs) verbs->device->ibdev_path, port.link_layer, (port.link_layer == IBV_LINK_LAYER_INFINIBAND) ? "Infiniband" : - ((port.link_layer == IBV_LINK_LAYER_ETHERNET) + ((port.link_layer == IBV_LINK_LAYER_ETHERNET) ? "Ethernet" : "Unknown")); } @@ -737,7 +737,7 @@ static void qemu_rdma_dump_gid(const char *who, struct rdma_cm_id *id) * and validate what time of hardware it is. * * Unfortunately, this puts the user in a fix: - * + * * If the source VM connects with an IPv4 address without knowing that the * destination has bound to '[::]' the migration will unconditionally fail * unless the management software is explicitly listening on the the IPv4 @@ -745,13 +745,13 @@ static void qemu_rdma_dump_gid(const char *who, struct rdma_cm_id *id) * * If the source VM connects with an IPv6 address, then we're OK because we can * throw an error on the source (and similarly on the destination). - * + * * But in mixed environments, this will be broken for a while until it is fixed * inside linux. * * We do provide a *tiny* bit of help in this function: We can list all of the * devices in the system and check to see if all the devices are RoCE or - * Infiniband. + * Infiniband. * * If we detect that we have a *pure* RoCE environment, then we can safely * thrown an error even if the management software has specified '[::]' as the @@ -770,17 +770,17 @@ static int qemu_rdma_broken_ipv6_kernel(Error **errp, struct ibv_context *verbs) /* This bug only exists in linux, to our knowledge. */ #ifdef CONFIG_LINUX - /* + /* * Verbs are only NULL if management has bound to '[::]'. - * + * * Let's iterate through all the devices and see if there any pure IB * devices (non-ethernet). - * + * * If not, then we can safely proceed with the migration. * Otherwise, there are no guarantees until the bug is fixed in linux. */ if (!verbs) { - int num_devices, x; + int num_devices, x; struct ibv_device ** dev_list = ibv_get_device_list(&num_devices); bool roce_found = false; bool ib_found = false; @@ -825,8 +825,8 @@ static int qemu_rdma_broken_ipv6_kernel(Error **errp, struct ibv_context *verbs) /* * If we have a verbs context, that means that some other than '[::]' was - * used by the management software for binding. In which case we can actually - * warn the user about a potential broken kernel; + * used by the management software for binding. In which case we can + * actually warn the user about a potentially broken kernel. */ /* IB ports start with 1, not 0 */ @@ -1626,7 +1626,7 @@ static int qemu_rdma_exchange_get_response(RDMAContext *rdma, return -EIO; } if (head->len > RDMA_CONTROL_MAX_BUFFER - sizeof(*head)) { - error_report("too long length: %d\n", head->len); + error_report("too long length: %d", head->len); return -EINVAL; } if (sizeof(*head) + head->len != byte_len) { diff --git a/net/vhost-user.c b/net/vhost-user.c index 2435b0f826..1d86a2be11 100644 --- a/net/vhost-user.c +++ b/net/vhost-user.c @@ -121,12 +121,12 @@ static void net_vhost_user_event(void *opaque, int event) case CHR_EVENT_OPENED: vhost_user_start(s); net_vhost_link_down(s, false); - error_report("chardev \"%s\" went up\n", s->chr->label); + error_report("chardev \"%s\" went up", s->chr->label); break; case CHR_EVENT_CLOSED: net_vhost_link_down(s, true); vhost_user_stop(s); - error_report("chardev \"%s\" went down\n", s->chr->label); + error_report("chardev \"%s\" went down", s->chr->label); break; } } @@ -66,7 +66,7 @@ static void numa_node_parse(NumaNodeOptions *node, QemuOpts *opts, Error **errp) if (nodenr >= MAX_NODES) { error_setg(errp, "Max number of NUMA nodes reached: %" - PRIu16 "\n", nodenr); + PRIu16 "", nodenr); return; } @@ -85,7 +85,7 @@ static void numa_node_parse(NumaNodeOptions *node, QemuOpts *opts, Error **errp) } if (node->has_mem && node->has_memdev) { - error_setg(errp, "qemu: cannot specify both mem= and memdev=\n"); + error_setg(errp, "qemu: cannot specify both mem= and memdev="); return; } @@ -94,7 +94,7 @@ static void numa_node_parse(NumaNodeOptions *node, QemuOpts *opts, Error **errp) } if (node->has_memdev != have_memdevs) { error_setg(errp, "qemu: memdev option must be specified for either " - "all or no nodes\n"); + "all or no nodes"); return; } diff --git a/pc-bios/keymaps/ru b/pc-bios/keymaps/ru index b3e7d24de5..8f652d5a09 100644 --- a/pc-bios/keymaps/ru +++ b/pc-bios/keymaps/ru @@ -4,7 +4,7 @@ map 0x419 exclam 0x02 shift at 0x03 shift quotedbl 0x03 shift altgr -numbersign 0x04 shift +numerosign 0x04 shift dollar 0x05 shift asterisk 0x05 shift altgr percent 0x06 shift diff --git a/qapi-schema.json b/qapi-schema.json index e16f8eb110..8141f71fb3 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -871,9 +871,9 @@ # @connection-id: SPICE connection id number. All channels with the same id # belong to the same SPICE session. # -# @connection-type: SPICE channel type number. "1" is the main control -# channel, filter for this one if you want to track spice -# sessions only +# @channel-type: SPICE channel type number. "1" is the main control +# channel, filter for this one if you want to track spice +# sessions only # # @channel-id: SPICE channel ID number. Usually "0", might be different when # multiple channels of the same type exist, such as multiple diff --git a/qemu-img.c b/qemu-img.c index 7ac7f56c5d..5af6f455df 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -976,7 +976,8 @@ static int is_allocated_sectors_min(const uint8_t *buf, int n, int *pnum, static int compare_sectors(const uint8_t *buf1, const uint8_t *buf2, int n, int *pnum) { - int res, i; + bool res; + int i; if (n <= 0) { *pnum = 0; @@ -1645,7 +1646,7 @@ static int img_convert(int argc, char **argv) if (skip_create) { int64_t output_sectors = blk_nb_sectors(out_blk); if (output_sectors < 0) { - error_report("unable to get output image length: %s\n", + error_report("unable to get output image length: %s", strerror(-output_sectors)); ret = -1; goto out; diff --git a/qemu-options.hx b/qemu-options.hx index b0345aebca..837624db46 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -1376,11 +1376,25 @@ ETEXI DEF("smbios", HAS_ARG, QEMU_OPTION_smbios, "-smbios file=binary\n" " load SMBIOS entry from binary file\n" - "-smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d][,uefi=on|off]\n" + "-smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d]\n" + " [,uefi=on|off]\n" " specify SMBIOS type 0 fields\n" "-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]\n" " [,uuid=uuid][,sku=str][,family=str]\n" - " specify SMBIOS type 1 fields\n", QEMU_ARCH_I386) + " specify SMBIOS type 1 fields\n" + "-smbios type=2[,manufacturer=str][,product=str][,version=str][,serial=str]\n" + " [,asset=str][,location=str]\n" + " specify SMBIOS type 2 fields\n" + "-smbios type=3[,manufacturer=str][,version=str][,serial=str][,asset=str]\n" + " [,sku=str]\n" + " specify SMBIOS type 3 fields\n" + "-smbios type=4[,sock_pfx=str][,manufacturer=str][,version=str][,serial=str]\n" + " [,asset=str][,part=str]\n" + " specify SMBIOS type 4 fields\n" + "-smbios type=17[,loc_pfx=str][,bank=str][,manufacturer=str][,serial=str]\n" + " [,asset=str][,part=str]\n" + " specify SMBIOS type 17 fields\n", + QEMU_ARCH_I386) STEXI @item -smbios file=@var{binary} @findex -smbios @@ -1389,8 +1403,20 @@ Load SMBIOS entry from binary file. @item -smbios type=0[,vendor=@var{str}][,version=@var{str}][,date=@var{str}][,release=@var{%d.%d}][,uefi=on|off] Specify SMBIOS type 0 fields -@item -smbios type=1[,manufacturer=@var{str}][,product=@var{str}] [,version=@var{str}][,serial=@var{str}][,uuid=@var{uuid}][,sku=@var{str}] [,family=@var{str}] +@item -smbios type=1[,manufacturer=@var{str}][,product=@var{str}][,version=@var{str}][,serial=@var{str}][,uuid=@var{uuid}][,sku=@var{str}][,family=@var{str}] Specify SMBIOS type 1 fields + +@item -smbios type=2[,manufacturer=@var{str}][,product=@var{str}][,version=@var{str}][,serial=@var{str}][,asset=@var{str}][,location=@var{str}][,family=@var{str}] +Specify SMBIOS type 2 fields + +@item -smbios type=3[,manufacturer=@var{str}][,version=@var{str}][,serial=@var{str}][,asset=@var{str}][,sku=@var{str}] +Specify SMBIOS type 3 fields + +@item -smbios type=4[,sock_pfx=@var{str}][,manufacturer=@var{str}][,version=@var{str}][,serial=@var{str}][,asset=@var{str}][,part=@var{str}] +Specify SMBIOS type 4 fields + +@item -smbios type=17[,loc_pfx=@var{str}][,bank=@var{str}][,manufacturer=@var{str}][,serial=@var{str}][,asset=@var{str}][,part=@var{str}] +Specify SMBIOS type 17 fields ETEXI STEXI @@ -3181,12 +3207,30 @@ Set TB size. ETEXI DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \ - "-incoming p prepare for incoming migration, listen on port p\n", + "-incoming tcp:[host]:port[,to=maxport][,ipv4][,ipv6]\n" \ + "-incoming rdma:host:port[,ipv4][,ipv6]\n" \ + "-incoming unix:socketpath\n" \ + " prepare for incoming migration, listen on\n" \ + " specified protocol and socket address\n" \ + "-incoming fd:fd\n" \ + "-incoming exec:cmdline\n" \ + " accept incoming migration on given file descriptor\n" \ + " or from given external command\n", QEMU_ARCH_ALL) STEXI -@item -incoming @var{port} +@item -incoming tcp:[@var{host}]:@var{port}[,to=@var{maxport}][,ipv4][,ipv6] +@item -incoming rdma:@var{host}:@var{port}[,ipv4][,ipv6] @findex -incoming -Prepare for incoming migration, listen on @var{port}. +Prepare for incoming migration, listen on a given tcp port. + +@item -incoming unix:@var{socketpath} +Prepare for incoming migration, listen on a given unix socket. + +@item -incoming fd:@var{fd} +Accept incoming migration from a given filedescriptor. + +@item -incoming exec:@var{cmdline} +Accept incoming migration as an output from specified external command. ETEXI DEF("nodefaults", 0, QEMU_OPTION_nodefaults, \ diff --git a/qmp-commands.hx b/qmp-commands.hx index a85d8479e3..c12334a370 100644 --- a/qmp-commands.hx +++ b/qmp-commands.hx @@ -1,5 +1,5 @@ HXCOMM QMP dispatch table and documentation -HXCOMM Text between SQMP and EQMP is copied to the QMP documention file and +HXCOMM Text between SQMP and EQMP is copied to the QMP documentation file and HXCOMM does not show up in the other formats. SQMP @@ -1767,7 +1767,7 @@ Arguments: - "protocol": protocol name (json-string) - "password": password (json-string) -- "connected": [ keep | disconnect | fail ] (josn-string, optional) +- "connected": [ keep | disconnect | fail ] (json-string, optional) Example: @@ -2922,7 +2922,7 @@ Channels are described by a json-object, each one contain the following: - "channel-id": channel id. Usually "0", might be different needed when multiple channels of the same type exist, such as multiple display channels in a multihead setup (json-int) -- "tls": whevener the channel is encrypted (json-bool) +- "tls": whether the channel is encrypted (json-bool) Example: diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c index d7c57d9338..508cc0a082 100644 --- a/target-s390x/kvm.c +++ b/target-s390x/kvm.c @@ -211,7 +211,7 @@ void kvm_s390_reset_vcpu(S390CPU *cpu) * Before this ioctl cpu_synchronize_state() is called in common kvm * code (kvm-all) */ if (kvm_vcpu_ioctl(cs, KVM_S390_INITIAL_RESET, NULL)) { - error_report("Initial CPU reset failed on CPU %i\n", cs->cpu_index); + error_report("Initial CPU reset failed on CPU %i", cs->cpu_index); } } diff --git a/tests/.gitignore b/tests/.gitignore index e2e4957332..0dcb61829c 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -5,6 +5,7 @@ check-qjson check-qlist check-qstring check-qom-interface +rcutorture test-aio test-bitops test-coroutine @@ -26,6 +27,7 @@ test-qmp-input-strict test-qmp-input-visitor test-qmp-marshal.c test-qmp-output-visitor +test-rcu-list test-rfifolock test-string-input-visitor test-string-output-visitor @@ -33,6 +35,7 @@ test-thread-pool test-throttle test-visitor-serialization test-vmstate +test-write-threshold test-x86-cpuid test-xbzrle *-test diff --git a/tests/qemu-iotests/.gitignore b/tests/qemu-iotests/.gitignore index 0541f80daa..0711cbdbf3 100644 --- a/tests/qemu-iotests/.gitignore +++ b/tests/qemu-iotests/.gitignore @@ -1,5 +1,6 @@ check.log check.time +common.env *.out.bad *.notrun socket_scm_helper @@ -134,7 +134,7 @@ static int configure_tpm(QemuOpts *opts) Error *local_err = NULL; if (!QLIST_EMPTY(&tpm_backends)) { - error_report("Only one TPM is allowed.\n"); + error_report("Only one TPM is allowed."); return 1; } diff --git a/trace/control.c b/trace/control.c index 0d308011a2..995beb384c 100644 --- a/trace/control.c +++ b/trace/control.c @@ -126,7 +126,7 @@ static void trace_init_events(const char *fname) error_report("WARNING: trace event '%s' does not exist", line_ptr); } else if (!trace_event_get_state_static(ev)) { - error_report("WARNING: trace event '%s' is not traceable\n", + error_report("WARNING: trace event '%s' is not traceable", line_ptr); } else { trace_event_set_state_dynamic(ev, enable); diff --git a/ui/console.c b/ui/console.c index 87574a73a8..87af6b5b3f 100644 --- a/ui/console.c +++ b/ui/console.c @@ -2005,18 +2005,6 @@ DisplaySurface *qemu_console_surface(QemuConsole *console) return console->surface; } -DisplayState *qemu_console_displaystate(QemuConsole *console) -{ - return console->ds; -} - -PixelFormat qemu_different_endianness_pixelformat(int bpp) -{ - pixman_format_code_t fmt = qemu_default_pixman_format(bpp, false); - PixelFormat pf = qemu_pixelformat_from_pixman(fmt); - return pf; -} - PixelFormat qemu_default_pixelformat(int bpp) { pixman_format_code_t fmt = qemu_default_pixman_format(bpp, true); diff --git a/ui/d3des.c b/ui/d3des.c index 60c840ed53..5bc99b8ad7 100644 --- a/ui/d3des.c +++ b/ui/d3des.c @@ -121,15 +121,6 @@ static void cookey(register unsigned long *raw1) return; } -void cpkey(register unsigned long *into) -{ - register unsigned long *from, *endp; - - from = KnL, endp = &KnL[32]; - while( from < endp ) *into++ = *from++; - return; - } - void usekey(register unsigned long *from) { register unsigned long *to, *endp; diff --git a/ui/d3des.h b/ui/d3des.h index 70cb6b57ea..773667ee79 100644 --- a/ui/d3des.h +++ b/ui/d3des.h @@ -36,12 +36,6 @@ void usekey(unsigned long *); * Loads the internal key register with the data in cookedkey. */ -void cpkey(unsigned long *); -/* cookedkey[32] - * Copies the contents of the internal key register into the storage - * located at &cookedkey[0]. - */ - void des(unsigned char *, unsigned char *); /* from[8] to[8] * Encrypts/Decrypts (according to the key currently loaded in the diff --git a/ui/input-legacy.c b/ui/input-legacy.c index a698a342bc..2d4ca19740 100644 --- a/ui/input-legacy.c +++ b/ui/input-legacy.c @@ -143,12 +143,6 @@ QEMUPutKbdEntry *qemu_add_kbd_event_handler(QEMUPutKBDEvent *func, void *opaque) return entry; } -void qemu_remove_kbd_event_handler(QEMUPutKbdEntry *entry) -{ - qemu_input_handler_unregister(entry->s); - g_free(entry); -} - static void legacy_mouse_event(DeviceState *dev, QemuConsole *src, InputEvent *evt) { diff --git a/ui/vnc-jobs.c b/ui/vnc-jobs.c index 68f3d773d9..c8ee203495 100644 --- a/ui/vnc-jobs.c +++ b/ui/vnc-jobs.c @@ -342,16 +342,3 @@ void vnc_start_worker_thread(void) QEMU_THREAD_DETACHED); queue = q; /* Set global queue */ } - -void vnc_stop_worker_thread(void) -{ - if (!vnc_worker_thread_running()) - return ; - - /* Remove all jobs and wake up the thread */ - vnc_lock_queue(queue); - queue->exit = true; - vnc_unlock_queue(queue); - vnc_jobs_clear(NULL); - qemu_cond_broadcast(&queue->cond); -} diff --git a/ui/vnc-jobs.h b/ui/vnc-jobs.h index 31da103fac..044bf9fbfd 100644 --- a/ui/vnc-jobs.h +++ b/ui/vnc-jobs.h @@ -40,7 +40,6 @@ void vnc_jobs_join(VncState *vs); void vnc_jobs_consume_buffer(VncState *vs); void vnc_start_worker_thread(void); -void vnc_stop_worker_thread(void); /* Locks */ static inline int vnc_trylock_display(VncDisplay *vd) diff --git a/ui/vnc_keysym.h b/ui/vnc_keysym.h index 1dc039f71f..7fa2bc1f1c 100644 --- a/ui/vnc_keysym.h +++ b/ui/vnc_keysym.h @@ -404,6 +404,7 @@ static const name2keysym_t name2keysym[]={ {"breve", 0x01a2}, /* U+02D8 BREVE */ {"caron", 0x01b7}, /* U+02C7 CARON */ {"Ccaron", 0x01c8}, /* U+010C LATIN CAPITAL LETTER C WITH CARON */ +{"numerosign", 0x06b0}, /* U+2116 NUMERO SIGN */ {"Cyrillic_a", 0x06c1}, /* U+0430 CYRILLIC SMALL LETTER A */ {"Cyrillic_A", 0x06e1}, /* U+0410 CYRILLIC CAPITAL LETTER A */ {"Cyrillic_be", 0x06c2}, /* U+0431 CYRILLIC SMALL LETTER BE */ diff --git a/util/cutils.c b/util/cutils.c index c2250d1ba5..144b25c05a 100644 --- a/util/cutils.c +++ b/util/cutils.c @@ -537,16 +537,17 @@ int parse_debug_env(const char *name, int max, int initial) { char *debug_env = getenv(name); char *inv = NULL; - int debug; + long debug; if (!debug_env) { return initial; } + errno = 0; debug = strtol(debug_env, &inv, 10); if (inv == debug_env) { return initial; } - if (debug < 0 || debug > max) { + if (debug < 0 || debug > max || errno != 0) { fprintf(stderr, "warning: %s not in [0, %d]", name, max); return initial; } diff --git a/util/oslib-posix.c b/util/oslib-posix.c index 16fcec2f37..37ffd96245 100644 --- a/util/oslib-posix.c +++ b/util/oslib-posix.c @@ -399,10 +399,10 @@ void os_mem_prealloc(int fd, char *area, size_t memory) } else { int i; size_t hpagesize = fd_getpagesize(fd); + size_t numpages = DIV_ROUND_UP(memory, hpagesize); /* MAP_POPULATE silently ignores failures */ - memory = (memory + hpagesize - 1) & -hpagesize; - for (i = 0; i < (memory / hpagesize); i++) { + for (i = 0; i < numpages; i++) { memset(area + (hpagesize * i), 0, 1); } diff --git a/xen-hvm-stub.c b/xen-hvm-stub.c index 2d98696e72..46867d87d7 100644 --- a/xen-hvm-stub.c +++ b/xen-hvm-stub.c @@ -30,10 +30,6 @@ void xen_hvm_inject_msi(uint64_t addr, uint32_t data) { } -void xen_cmos_set_s3_resume(void *opaque, int irq, int level) -{ -} - void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size, MemoryRegion *mr) { } |