diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2020-01-23 13:41:47 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2020-01-23 13:41:47 +0000 |
| commit | 7cea426c1d2e12777a2e61d7970044981ff82aa8 (patch) | |
| tree | 21d2f89af23045b0b3a51ea888f057b97395d945 /hw/virtio/vhost.c | |
| parent | be9612e8cbb4b5e5d4c5f66551db2b4d6e76495b (diff) | |
| parent | 8347505640238d3b80f9bb7510fdc1bb574bad19 (diff) | |
| download | focaccia-qemu-7cea426c1d2e12777a2e61d7970044981ff82aa8.tar.gz focaccia-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; } |