diff options
author | Peter Maydell | 2020-01-23 14:41:47 +0100 |
---|---|---|
committer | Peter Maydell | 2020-01-23 14:41:47 +0100 |
commit | 7cea426c1d2e12777a2e61d7970044981ff82aa8 (patch) | |
tree | 21d2f89af23045b0b3a51ea888f057b97395d945 /hw/virtio/vhost.c | |
parent | Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20200121' into staging (diff) | |
parent | vhost: coding style fix (diff) | |
download | qemu-7cea426c1d2e12777a2e61d7970044981ff82aa8.tar.gz qemu-7cea426c1d2e12777a2e61d7970044981ff82aa8.tar.xz qemu-7cea426c1d2e12777a2e61d7970044981ff82aa8.zip |
Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging
virtio, pc: fixes, features
Bugfixes all over the place.
CPU hotplug with secureboot.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
# gpg: Signature made Thu 23 Jan 2020 07:08:32 GMT
# gpg: using RSA key 5D09FD0871C8F85B94CA8A0D281F0DB8D28D5469
# gpg: issuer "mst@redhat.com"
# gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" [full]
# gpg: aka "Michael S. Tsirkin <mst@redhat.com>" [full]
# Primary key fingerprint: 0270 606B 6F3C DF3D 0B17 0970 C350 3912 AFBE 8E67
# Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA 8A0D 281F 0DB8 D28D 5469
* remotes/mst/tags/for_upstream:
vhost: coding style fix
i386:acpi: Remove _HID from the SMBus ACPI entry
vhost: Only align sections for vhost-user
vhost: Add names to section rounded warning
vhost-vsock: delete vqs in vhost_vsock_unrealize to avoid memleaks
virtio-scsi: convert to new virtio_delete_queue
virtio-scsi: delete vqs in unrealize to avoid memleaks
virtio-9p-device: convert to new virtio_delete_queue
virtio-9p-device: fix memleak in virtio_9p_device_unrealize
bios-tables-test: document expected file update
acpi: cpuhp: add CPHP_GET_CPU_ID_CMD command
acpi: cpuhp: spec: add typical usecases
acpi: cpuhp: introduce 'Command data 2' field
acpi: cpuhp: spec: clarify store into 'Command data' when 'Command field' == 0
acpi: cpuhp: spec: fix 'Command data' description
acpi: cpuhp: spec: clarify 'CPU selector' register usage and endianness
tests: q35: MCH: add default SMBASE SMRAM lock test
q35: implement 128K SMRAM at default SMBASE address
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/virtio/vhost.c')
-rw-r--r-- | hw/virtio/vhost.c | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c index 4da0d5a6c5..9edfadc81d 100644 --- a/hw/virtio/vhost.c +++ b/hw/virtio/vhost.c @@ -547,26 +547,28 @@ static void vhost_region_add_section(struct vhost_dev *dev, uintptr_t mrs_host = (uintptr_t)memory_region_get_ram_ptr(section->mr) + section->offset_within_region; RAMBlock *mrs_rb = section->mr->ram_block; - size_t mrs_page = qemu_ram_pagesize(mrs_rb); trace_vhost_region_add_section(section->mr->name, mrs_gpa, mrs_size, mrs_host); - /* Round the section to it's page size */ - /* First align the start down to a page boundary */ - uint64_t alignage = mrs_host & (mrs_page - 1); - if (alignage) { - mrs_host -= alignage; - mrs_size += alignage; - mrs_gpa -= alignage; - } - /* Now align the size up to a page boundary */ - alignage = mrs_size & (mrs_page - 1); - if (alignage) { - mrs_size += mrs_page - alignage; + if (dev->vhost_ops->backend_type == VHOST_BACKEND_TYPE_USER) { + /* Round the section to it's page size */ + /* First align the start down to a page boundary */ + size_t mrs_page = qemu_ram_pagesize(mrs_rb); + uint64_t alignage = mrs_host & (mrs_page - 1); + if (alignage) { + mrs_host -= alignage; + mrs_size += alignage; + mrs_gpa -= alignage; + } + /* Now align the size up to a page boundary */ + alignage = mrs_size & (mrs_page - 1); + if (alignage) { + mrs_size += mrs_page - alignage; + } + trace_vhost_region_add_section_aligned(section->mr->name, mrs_gpa, + mrs_size, mrs_host); } - trace_vhost_region_add_section_aligned(section->mr->name, mrs_gpa, mrs_size, - mrs_host); if (dev->n_tmp_sections) { /* Since we already have at least one section, lets see if @@ -590,9 +592,10 @@ static void vhost_region_add_section(struct vhost_dev *dev, * match up in the same RAMBlock if they do. */ if (mrs_gpa < prev_gpa_start) { - error_report("%s:Section rounded to %"PRIx64 - " prior to previous %"PRIx64, - __func__, mrs_gpa, prev_gpa_start); + error_report("%s:Section '%s' rounded to %"PRIx64 + " prior to previous '%s' %"PRIx64, + __func__, section->mr->name, mrs_gpa, + prev_sec->mr->name, prev_gpa_start); /* A way to cleanly fail here would be better */ return; } |