diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2018-10-11 10:43:37 +0100 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2018-10-11 10:43:37 +0100 |
| commit | 75e50c80e051423a6f55a34ee4a1eec842444a5b (patch) | |
| tree | bc52115bc7254051864a725f0d44f2f53511f8e9 /hw/misc/ivshmem.c | |
| parent | 53a19a9a5f9811a911e9b69ef36afb0d66b5d85c (diff) | |
| parent | b266f1d1123396f9f5df865508f7555ab0c9582a (diff) | |
| download | focaccia-qemu-75e50c80e051423a6f55a34ee4a1eec842444a5b.tar.gz focaccia-qemu-75e50c80e051423a6f55a34ee4a1eec842444a5b.zip | |
Merge remote-tracking branch 'remotes/armbru/tags/pull-misc-2018-10-10' into staging
Miscellaneous patches for 2018-10-10 # gpg: Signature made Wed 10 Oct 2018 07:03:10 BST # gpg: using RSA key 3870B400EB918653 # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * remotes/armbru/tags/pull-misc-2018-10-10: ivshmem: Fix unplug of device "ivshmem-plain" libqtest: Inline g_assert_no_errno() tests: Restore check-qdict unit test qapi/misc.json: Remove superfluous words in CpuModelExpansionType tests/check-qjson: fix a leak Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/misc/ivshmem.c')
| -rw-r--r-- | hw/misc/ivshmem.c | 14 |
1 files changed, 5 insertions, 9 deletions
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; } |