diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 6febbabcaa..8cb17b9dd4 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -911,6 +911,7 @@ static void ivshmem_common_realize(PCIDevice *dev, Error **errp) IVSHMEM_DPRINTF("using hostmem\n"); s->ivshmem_bar2 = host_memory_backend_get_memory(s->hostmem); + host_memory_backend_set_mapped(s->hostmem, true); } else { Chardev *chr = qemu_chr_fe_get_driver(&s->server_chr); assert(chr); @@ -993,6 +994,10 @@ static void ivshmem_exit(PCIDevice *dev) vmstate_unregister_ram(s->ivshmem_bar2, DEVICE(dev)); } + if (s->hostmem) { + host_memory_backend_set_mapped(s->hostmem, false); + } + if (s->peers) { for (i = 0; i < s->nb_peers; i++) { close_peer_eventfds(s, i); @@ -1101,14 +1106,6 @@ static void ivshmem_plain_realize(PCIDevice *dev, Error **errp) } ivshmem_common_realize(dev, errp); - host_memory_backend_set_mapped(s->hostmem, true); -} - -static void ivshmem_plain_exit(PCIDevice *pci_dev) -{ - IVShmemState *s = IVSHMEM_COMMON(pci_dev); - - host_memory_backend_set_mapped(s->hostmem, false); } static void ivshmem_plain_class_init(ObjectClass *klass, void *data) @@ -1117,7 +1114,6 @@ static void ivshmem_plain_class_init(ObjectClass *klass, void *data) PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); k->realize = ivshmem_plain_realize; - k->exit = ivshmem_plain_exit; dc->props = ivshmem_plain_properties; dc->vmsd = &ivshmem_plain_vmsd; } diff --git a/qapi/misc.json b/qapi/misc.json index ada9af5add..f98de3a58c 100644 --- a/qapi/misc.json +++ b/qapi/misc.json @@ -2017,7 +2017,7 @@ # # @migration-safe: whether a CPU definition can be safely used for # migration in combination with a QEMU compatibility machine -# when migrating between different QMU versions and between +# when migrating between different QEMU versions and between # hosts with different sets of (hardware or software) # capabilities. If not provided, information is not available # and callers should not assume the CPU definition to be @@ -2126,11 +2126,11 @@ # @static: Expand to a static CPU model, a combination of a static base # model name and property delta changes. As the static base model will # never change, the expanded CPU model will be the same, independent of -# independent of QEMU version, machine type, machine options, and -# accelerator options. Therefore, the resulting model can be used by -# tooling without having to specify a compatibility machine - e.g. when -# displaying the "host" model. static CPU models are migration-safe. -# +# QEMU version, machine type, machine options, and accelerator options. +# Therefore, the resulting model can be used by tooling without having +# to specify a compatibility machine - e.g. when displaying the "host" +# model. The @static CPU models are migration-safe. + # @full: Expand all properties. The produced model is not guaranteed to be # migration-safe, but allows tooling to get an insight and work with # model details. diff --git a/tests/Makefile.include b/tests/Makefile.include index 7a3059bf6c..8264af64a8 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -40,7 +40,7 @@ SYSEMU_TARGET_LIST := $(subst -softmmu.mak,,$(notdir \ check-unit-y = tests/check-qdict$(EXESUF) gcov-files-check-qdict-y = qobject/qdict.c -check-unit-y = tests/check-block-qdict$(EXESUF) +check-unit-y += tests/check-block-qdict$(EXESUF) gcov-files-check-block-qdict-y = qobject/block-qdict.c check-unit-y += tests/test-char$(EXESUF) gcov-files-check-qdict-y = chardev/char.c diff --git a/tests/check-qdict.c b/tests/check-qdict.c index 86e9fe7dc4..a1e8305066 100644 --- a/tests/check-qdict.c +++ b/tests/check-qdict.c @@ -12,6 +12,8 @@ #include "qemu/osdep.h" #include "qapi/qmp/qdict.h" +#include "qapi/qmp/qnum.h" +#include "qapi/qmp/qstring.h" /* * Public Interface test-cases diff --git a/tests/check-qjson.c b/tests/check-qjson.c index cc13f3d41e..d876a7a96e 100644 --- a/tests/check-qjson.c +++ b/tests/check-qjson.c @@ -780,6 +780,7 @@ static void utf8_string(void) if (!strstr(json_out, "\\uFFFD")) { str = from_json_str(json_out, j, &error_abort); g_assert_cmpstr(qstring_get_try_str(str), ==, utf8_in); + qobject_unref(str); } } } diff --git a/tests/libqtest.c b/tests/libqtest.c index 2cd5736642..44ce118cfc 100644 --- a/tests/libqtest.c +++ b/tests/libqtest.c @@ -48,10 +48,6 @@ struct QTestState static GHookList abrt_hooks; static struct sigaction sigact_old; -#define g_assert_no_errno(ret) do { \ - g_assert_cmpint(ret, !=, -1); \ -} while (0) - static int qtest_query_target_endianness(QTestState *s); static int init_socket(const char *socket_path) @@ -61,7 +57,7 @@ static int init_socket(const char *socket_path) int ret; sock = socket(PF_UNIX, SOCK_STREAM, 0); - g_assert_no_errno(sock); + g_assert_cmpint(sock, !=, -1); addr.sun_family = AF_UNIX; snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", socket_path); @@ -70,9 +66,9 @@ static int init_socket(const char *socket_path) do { ret = bind(sock, (struct sockaddr *)&addr, sizeof(addr)); } while (ret == -1 && errno == EINTR); - g_assert_no_errno(ret); + g_assert_cmpint(ret, !=, -1); ret = listen(sock, 1); - g_assert_no_errno(ret); + g_assert_cmpint(ret, !=, -1); return sock; } @@ -325,7 +321,6 @@ static void socket_send(int fd, const char *buf, size_t size) continue; } - g_assert_no_errno(len); g_assert_cmpint(len, >, 0); offset += len;