diff --git a/backends/hostmem-file.c b/backends/hostmem-file.c index ba601ce940880ceef52d925e00f2e97ae1a9467d..ce5478804804e6cd5d2ef8c82269f723dd0a4b8e 100644 --- a/backends/hostmem-file.c +++ b/backends/hostmem-file.c @@ -41,10 +41,12 @@ struct HostMemoryBackendFile { static void file_backend_memory_alloc(HostMemoryBackend *backend, Error **errp) { +#ifndef CONFIG_POSIX + error_setg(errp, "backend '%s' not supported on this host", + object_get_typename(OBJECT(backend))); +#else HostMemoryBackendFile *fb = MEMORY_BACKEND_FILE(backend); -#ifdef CONFIG_POSIX gchar *name; -#endif if (!backend->size) { error_setg(errp, "can't create backend with size 0"); @@ -54,9 +56,6 @@ file_backend_memory_alloc(HostMemoryBackend *backend, Error **errp) error_setg(errp, "mem-path property not set"); return; } -#ifndef CONFIG_POSIX - error_setg(errp, "-mem-path not supported on this host"); -#else backend->force_prealloc = mem_prealloc; name = host_memory_backend_get_name(backend); memory_region_init_ram_from_file(&backend->mr, OBJECT(backend), diff --git a/docs/COLO-FT.txt b/docs/COLO-FT.txt index e2686bb338826c9143a4d3b0bb30428d10fc037a..ad24680d130e86734d962c6a2701392862d88ba7 100644 --- a/docs/COLO-FT.txt +++ b/docs/COLO-FT.txt @@ -102,7 +102,7 @@ to make sure the state of VM in Secondary side is always consistent with VM in Primary side. COLO Proxy: -Delivers packets to Primary and Seconday, and then compare the responses from +Delivers packets to Primary and Secondary, and then compare the responses from both side. Then decide whether to start a checkpoint according to some rules. Please refer to docs/colo-proxy.txt for more information. diff --git a/docs/amd-memory-encryption.txt b/docs/amd-memory-encryption.txt index f483795eaafed8409b1e96806ca743354338c9dc..43bf3ee6a5a9fdd671376505aa9aa1c49557df79 100644 --- a/docs/amd-memory-encryption.txt +++ b/docs/amd-memory-encryption.txt @@ -97,7 +97,7 @@ References AMD Memory Encryption whitepaper: http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf -Secure Encrypted Virutualization Key Management: +Secure Encrypted Virtualization Key Management: [1] http://support.amd.com/TechDocs/55766_SEV-KM API_Specification.pdf KVM Forum slides: diff --git a/docs/can.txt b/docs/can.txt index 7ba23b259a48c41d8f5bddc3fd8621bd35316475..9fa6ed51c82351240bdbb8777fe141f846edb201 100644 --- a/docs/can.txt +++ b/docs/can.txt @@ -99,7 +99,7 @@ Links to other resources https://gitlab.fel.cvut.cz/canbus/qemu-canbus (3) RTEMS page describing project https://devel.rtems.org/wiki/Developer/Simulators/QEMU/CANEmulation - (4) RTLWS 2015 article about the projevt and its use with CANopen emulation + (4) RTLWS 2015 article about the project and its use with CANopen emulation http://rtime.felk.cvut.cz/publications/public/rtlws2015-qemu-can.pdf Slides http://rtime.felk.cvut.cz/publications/public/rtlws2015-qemu-can-slides.pdf diff --git a/docs/colo-proxy.txt b/docs/colo-proxy.txt index 1f8e4b4e77160f73a88d91982326d9f7ddae41b5..fa1cef0278a5aaa014f9377b6ff179e18a69511f 100644 --- a/docs/colo-proxy.txt +++ b/docs/colo-proxy.txt @@ -41,7 +41,7 @@ Below is a COLO proxy ascii figure: | | +------------------------------------------------------+ | | | | |netfilter| | | | | | netfilter | | | | +----------+ +----------------------------+ | | | +-----------------------------------------------------------+ | -| | | | | | out | | | | | | filter excute order | | +| | | | | | out | | | | | | filter execute order | | | | | | +-----------------------------+ | | | | | | +-------------------> | | | | | | | | | | | | | | | | TCP | | | | +-----+--+-+ +-----v----+ +-----v----+ |pri +----+----+sec| | | | +------------+ +---+----+---v+rewriter++ +------------+ | | @@ -53,7 +53,7 @@ Below is a COLO proxy ascii figure: | | | tx | rx rx | | | | | tx all | rx | | | | | | | | | | +-----------------------------------------------------------+ | | | | +--------------+ | | | | | | -| | | filter excute order | | | | | | | +| | | filter execute order | | | | | | | | | | +----------------> | | | +--------------------------------------------------------+ | | +-----------------------------------------+ | | | | | | | | | @@ -92,7 +92,7 @@ but do nothing, just pass to next filter. Redirect Server Filter --> COLO-Compare COLO-compare receive primary guest packet then -waiting scondary redirect packet to compare it. +waiting secondary redirect packet to compare it. If packet same,send queued primary packet and clear queued secondary packet, Otherwise send primary packet and do checkpoint. diff --git a/docs/cpu-hotplug.rst b/docs/cpu-hotplug.rst index 1c268e00b41a6b4e5af37571031ec89250ec0229..cfeb79f571113ffc06c32d89c0cfaa4a305ceccf 100644 --- a/docs/cpu-hotplug.rst +++ b/docs/cpu-hotplug.rst @@ -137,6 +137,6 @@ From the 'qmp-shell', invoke the QMP ``device_del`` command:: vCPU hot-unplug requires guest cooperation; so the ``device_del`` command above does not guarantee vCPU removal -- it's a "request to unplug". At this point, the guest will get a System Control - Interupt (SCI) and calls the ACPI handler for the affected vCPU + Interrupt (SCI) and calls the ACPI handler for the affected vCPU device. Then the guest kernel will bring the vCPU offline and tell QEMU to unplug it. diff --git a/docs/qcow2-cache.txt b/docs/qcow2-cache.txt index c459bf5dd3b5e157da15c71b31439be8710b292d..c1e7751feae649efe66f0d0b6d36dac89e0668c0 100644 --- a/docs/qcow2-cache.txt +++ b/docs/qcow2-cache.txt @@ -55,7 +55,7 @@ value can improve the I/O performance significantly. The refcount blocks ------------------- -The qcow2 format also mantains a reference count for each cluster. +The qcow2 format also maintains a reference count for each cluster. Reference counts are used for cluster allocation and internal snapshots. The data is stored in a two-level structure similar to the L1/L2 tables described above. diff --git a/docs/qemu-block-drivers.texi b/docs/qemu-block-drivers.texi index 38e9f34cc9b86d55c31d5abe02978ad5042d894f..da06a9bc838d056d6295b0d1c50d5d05d84513f6 100644 --- a/docs/qemu-block-drivers.texi +++ b/docs/qemu-block-drivers.texi @@ -632,7 +632,7 @@ qemu-system-i386 -drive file=iscsi://127.0.0.1/iqn.qemu.test/1 \ @end example -Howto set up a simple iSCSI target on loopback and accessing it via QEMU: +How to set up a simple iSCSI target on loopback and access it via QEMU: @example This example shows how to set up an iSCSI target with one CDROM and one DISK using the Linux STGT software target. This target is available on Red Hat based diff --git a/docs/qemu-cpu-models.texi b/docs/qemu-cpu-models.texi index 475d434d52f3c135d6c15db1fdc1cfd9b999c0bb..1b725841616b0e5f74243822074141b99ceb4b5e 100644 --- a/docs/qemu-cpu-models.texi +++ b/docs/qemu-cpu-models.texi @@ -49,7 +49,7 @@ live migration safe. The information that follows provides recommendations for configuring CPU models on x86 hosts. The goals are to maximise performance, while protecting guest OS against various CPU hardware flaws, and optionally -enabling live migration between hosts with hetergeneous CPU models. +enabling live migration between hosts with heterogeneous CPU models. @menu * preferred_cpu_models_intel_x86:: Preferred CPU models for Intel x86 hosts @@ -287,7 +287,7 @@ Must be explicitly turned on for all AMD CPU models. This provides higher performance than virt-ssbd so should be exposed to guests whenever available in the host. virt-ssbd should none the less also be exposed for maximum guest -compatability as some kernels only know about virt-ssbd. +compatibility as some kernels only know about virt-ssbd. @item @code{amd-no-ssb} @@ -296,7 +296,7 @@ Recommended to indicate the host is not vulnerable CVE-2018-3639 Not included by default in any AMD CPU model. -Future hardware genarations of CPU will not be vulnerable to +Future hardware generations of CPU will not be vulnerable to CVE-2018-3639, and thus the guest should be told not to enable its mitigations, by exposing amd-no-ssb. This is mutually exclusive with virt-ssbd and amd-ssbd. @@ -451,7 +451,7 @@ MIPS64 Processor (Release 6, 2014) @item @code{Loongson-2F} -MIPS64 Processor (Longsoon 2, 2008) +MIPS64 Processor (Loongson 2, 2008) @item @code{Loongson-2E} diff --git a/docs/rdma.txt b/docs/rdma.txt index e6f990261751249a3c602a18c8a41fedb4675a7e..a86e992c84538609876baf26291fb5c3edbd4c9d 100644 --- a/docs/rdma.txt +++ b/docs/rdma.txt @@ -30,7 +30,7 @@ of the significantly lower latency and higher throughput over TCP/IP. This is because the RDMA I/O architecture reduces the number of interrupts and data copies by bypassing the host networking stack. In particular, a TCP-based migration, under certain types of memory-bound workloads, may take a more -unpredicatable amount of time to complete the migration if the amount of +unpredictable amount of time to complete the migration if the amount of memory tracked during each live migration iteration round cannot keep pace with the rate of dirty memory produced by the workload. @@ -408,7 +408,7 @@ socket is broken during a non-RDMA based migration. TODO: ===== 1. Currently, 'ulimit -l' mlock() limits as well as cgroups swap limits - are not compatible with infinband memory pinning and will result in + are not compatible with infiniband memory pinning and will result in an aborted migration (but with the source VM left unaffected). 2. Use of the recent /proc//pagemap would likely speed up the use of KSM and ballooning while using RDMA. diff --git a/docs/replay.txt b/docs/replay.txt index 3497585f5a39b2592230a8a7896eab1f6eeff2f8..ee6aee9861e7a6823f762b51bc7b2dee4d49591e 100644 --- a/docs/replay.txt +++ b/docs/replay.txt @@ -290,7 +290,7 @@ E.g., '-serial stdio' in record mode, and '-serial null' in replay mode. Replay log format ----------------- -Record/replay log consits of the header and the sequence of execution +Record/replay log consists of the header and the sequence of execution events. The header includes 4-byte replay version id and 8-byte reserved field. Version is updated every time replay log format changes to prevent using replay log created by another build of qemu. diff --git a/docs/vfio-ap.txt b/docs/vfio-ap.txt index 8cd060a01e109d81d8232c2008cbda4c32a509ec..b1eb2deeaf2fe771800a80e6fe53e71a65e75749 100644 --- a/docs/vfio-ap.txt +++ b/docs/vfio-ap.txt @@ -671,7 +671,7 @@ These are the steps: -> IOMMU Hardware Support select S390 AP IOMMU Support -> VFIO Non-Privileged userspace driver framework - -> Mediated device driver frramework + -> Mediated device driver framework -> VFIO driver for Mediated devices -> I/O subsystem -> VFIO support for AP devices diff --git a/hw/acpi/core.c b/hw/acpi/core.c index 47877c0ec19623909abd7850b915bde987a16344..9ed1629f36711812a0a761af6d42dc250bb9a084 100644 --- a/hw/acpi/core.c +++ b/hw/acpi/core.c @@ -307,14 +307,6 @@ out: error_propagate(errp, err); } -static bool acpi_table_builtin = false; - -void acpi_table_add_builtin(const QemuOpts *opts, Error **errp) -{ - acpi_table_builtin = true; - acpi_table_add(opts, errp); -} - unsigned acpi_table_len(void *current) { struct acpi_table_header *hdr = current - sizeof(hdr->_length); @@ -330,7 +322,7 @@ void *acpi_table_hdr(void *h) uint8_t *acpi_table_first(void) { - if (acpi_table_builtin || !acpi_tables) { + if (!acpi_tables) { return NULL; } return acpi_table_hdr(acpi_tables + ACPI_TABLE_PFX_SIZE); diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index 0f8b7b8c7b364dfd10c3a022922f6c01270ab2eb..1588aeff5a95a04369ac6915774f51cf1c8125b5 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -84,7 +84,7 @@ struct pflash_t { uint16_t unlock_addr0; uint16_t unlock_addr1; uint8_t cfi_table[0x52]; - QEMUTimer *timer; + QEMUTimer timer; /* The device replicates the flash memory across its memory space. Emulate * that by having a container (.mem) filled with an array of aliases * (.mem_mappings) pointing to the flash memory (.orig_mem). @@ -429,7 +429,7 @@ static void pflash_write (pflash_t *pfl, hwaddr offset, } pfl->status = 0x00; /* Let's wait 5 seconds before chip erase is done */ - timer_mod(pfl->timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + + timer_mod(&pfl->timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + (NANOSECONDS_PER_SECOND * 5)); break; case 0x30: @@ -444,7 +444,7 @@ static void pflash_write (pflash_t *pfl, hwaddr offset, } pfl->status = 0x00; /* Let's wait 1/2 second before sector erase is done */ - timer_mod(pfl->timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + + timer_mod(&pfl->timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + (NANOSECONDS_PER_SECOND / 2)); break; default: @@ -596,7 +596,7 @@ static void pflash_cfi02_realize(DeviceState *dev, Error **errp) pfl->rom_mode = 1; sysbus_init_mmio(SYS_BUS_DEVICE(dev), &pfl->mem); - pfl->timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, pflash_timer, pfl); + timer_init_ns(&pfl->timer, QEMU_CLOCK_VIRTUAL, pflash_timer, pfl); pfl->wcycle = 0; pfl->cmd = 0; pfl->status = 0; @@ -695,11 +695,18 @@ static Property pflash_cfi02_properties[] = { DEFINE_PROP_END_OF_LIST(), }; +static void pflash_cfi02_unrealize(DeviceState *dev, Error **errp) +{ + pflash_t *pfl = CFI_PFLASH02(dev); + timer_del(&pfl->timer); +} + static void pflash_cfi02_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = pflash_cfi02_realize; + dc->unrealize = pflash_cfi02_unrealize; dc->props = pflash_cfi02_properties; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 3889eccdc3225f2944b7a3b9f6679b24ac11110e..578f772e7ce2c1c5510cfdda9db14adaeca12517 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1688,33 +1688,6 @@ void pc_pci_as_mapping_init(Object *owner, MemoryRegion *system_memory, pci_address_space, -1); } -void pc_acpi_init(const char *default_dsdt) -{ - char *filename; - - if (acpi_tables != NULL) { - /* manually set via -acpitable, leave it alone */ - return; - } - - filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, default_dsdt); - if (filename == NULL) { - warn_report("failed to find %s", default_dsdt); - } else { - QemuOpts *opts = qemu_opts_create(qemu_find_opts("acpi"), NULL, 0, - &error_abort); - Error *err = NULL; - - qemu_opt_set(opts, "file", filename, &error_abort); - - acpi_table_add_builtin(opts, &err); - if (err) { - warn_reportf_err(err, "failed to load %s: ", filename); - } - g_free(filename); - } -} - void xen_load_linux(PCMachineState *pcms) { int i; diff --git a/include/hw/acpi/acpi.h b/include/hw/acpi/acpi.h index bbf541263a194dda65e1813951f520fc270fc308..c91e2b9df28b30a646601f23edb2cdddc8f49905 100644 --- a/include/hw/acpi/acpi.h +++ b/include/hw/acpi/acpi.h @@ -190,7 +190,6 @@ uint8_t *acpi_table_first(void); uint8_t *acpi_table_next(uint8_t *current); unsigned acpi_table_len(void *current); void acpi_table_add(const QemuOpts *opts, Error **errp); -void acpi_table_add_builtin(const QemuOpts *opts, Error **errp); typedef struct AcpiSlicOem AcpiSlicOem; struct AcpiSlicOem { diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 3ff127ebd0370fff0131f3040f3dd2068c22536f..54222a202d33186d4431b045147ef946304262b3 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -189,7 +189,6 @@ void pc_acpi_smi_interrupt(void *opaque, int irq, int level); void pc_cpus_init(PCMachineState *pcms); void pc_hot_add_cpu(const int64_t id, Error **errp); -void pc_acpi_init(const char *default_dsdt); void pc_guest_info_init(PCMachineState *pcms); diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h index a684c1a7a2985b6d935a37faceefa3a9be7ae420..5a70f78c0ba444c7316ef44375c0a7e5a55969eb 100644 --- a/include/qemu/bswap.h +++ b/include/qemu/bswap.h @@ -255,9 +255,9 @@ typedef union { /* * the generic syntax is: * - * load: ld{type}{sign}{size}{endian}_p(ptr) + * load: ld{type}{sign}{size}_{endian}_p(ptr) * - * store: st{type}{size}{endian}_p(ptr, val) + * store: st{type}{size}_{endian}_p(ptr, val) * * Note there are small differences with the softmmu access API! * @@ -293,10 +293,10 @@ typedef union { * * For cases where the size to be used is not fixed at compile time, * there are - * stn{endian}_p(ptr, sz, val) + * stn_{endian}_p(ptr, sz, val) * which stores @val to @ptr as an @endian-order number @sz bytes in size * and - * ldn{endian}_p(ptr, sz) + * ldn_{endian}_p(ptr, sz) * which loads @sz bytes from @ptr as an unsigned @endian-order number * and returns it in a uint64_t. */ diff --git a/rules.mak b/rules.mak index 86e033d81565863dfa92c1bf7e549791f4d7aa8b..19f3d2c1261d47305bdffe4017c42d55694b2288 100644 --- a/rules.mak +++ b/rules.mak @@ -327,7 +327,7 @@ endef # ../water/ice.mo-libs = -licemaker # ../water/ice.mo-objs = ../water/ice1.o ../water/ice2.o # -# Note that 'hot' didn't include 'season/' in the input, so 'summer.o' is not +# Note that 'hot' didn't include 'water/' in the input, so 'steam.o' is not # included. # define unnest-vars diff --git a/tests/fdc-test.c b/tests/fdc-test.c index 88f1abfa10e256e16ad76184921d7dcfa84696cb..31cd3295c102f556ea14a1b57967b91f7c7533f9 100644 --- a/tests/fdc-test.c +++ b/tests/fdc-test.c @@ -548,16 +548,9 @@ static void fuzz_registers(void) int main(int argc, char **argv) { - const char *arch = qtest_get_arch(); int fd; int ret; - /* Check architecture */ - if (strcmp(arch, "i386") && strcmp(arch, "x86_64")) { - g_test_message("Skipping test for non-x86\n"); - return 0; - } - /* Create a temporary raw image */ fd = mkstemp(test_image); g_assert(fd >= 0); diff --git a/tests/ide-test.c b/tests/ide-test.c index f0280e636b5d0d62615281fbaba121a2720c0f4c..300d64e77ddf6be63ebc0cd14e89fd38846405f0 100644 --- a/tests/ide-test.c +++ b/tests/ide-test.c @@ -1009,16 +1009,9 @@ static void test_cdrom_dma(void) int main(int argc, char **argv) { - const char *arch = qtest_get_arch(); int fd; int ret; - /* Check architecture */ - if (strcmp(arch, "i386") && strcmp(arch, "x86_64")) { - g_test_message("Skipping test for non-x86\n"); - return 0; - } - /* Create temporary blkdebug instructions */ fd = mkstemp(debug_path); g_assert(fd >= 0); diff --git a/tests/ipmi-bt-test.c b/tests/ipmi-bt-test.c index f4a81b526505f688d0d68f6de96621ed2229f981..fc4c83b5db7c53d6730d3ac5e9facd5a7db14dc4 100644 --- a/tests/ipmi-bt-test.c +++ b/tests/ipmi-bt-test.c @@ -400,15 +400,8 @@ static void open_socket(void) int main(int argc, char **argv) { - const char *arch = qtest_get_arch(); int ret; - /* Check architecture */ - if (strcmp(arch, "i386") && strcmp(arch, "x86_64")) { - g_test_message("Skipping test for non-x86\n"); - return 0; - } - open_socket(); /* Run the tests */ diff --git a/tests/ipmi-kcs-test.c b/tests/ipmi-kcs-test.c index 178ffc1797346ce5229ec470fcc3796c7de6cae9..a2354c10c7fe5e222e45802f6c94c4da2e990eb3 100644 --- a/tests/ipmi-kcs-test.c +++ b/tests/ipmi-kcs-test.c @@ -263,16 +263,9 @@ static void test_enable_irq(void) int main(int argc, char **argv) { - const char *arch = qtest_get_arch(); char *cmdline; int ret; - /* Check architecture */ - if (strcmp(arch, "i386") && strcmp(arch, "x86_64")) { - g_test_message("Skipping test for non-x86\n"); - return 0; - } - /* Run the tests */ g_test_init(&argc, &argv, NULL); diff --git a/thunk.c b/thunk.c index d5d8645cd4f12c5501d7d4632f85bbe97a017d8c..17f3d320bb8eaa4e231ddea7c3e2ba2d374bd0bf 100644 --- a/thunk.c +++ b/thunk.c @@ -89,7 +89,7 @@ void thunk_register_struct(int id, const char *name, const argtype *types) for(i = 0;i < 2; i++) { offset = 0; max_align = 1; - se->field_offsets[i] = malloc(nb_fields * sizeof(int)); + se->field_offsets[i] = g_new(int, nb_fields); type_ptr = se->field_types; for(j = 0;j < nb_fields; j++) { size = thunk_type_size(type_ptr, i);