6f08fa6f4d
Add in upstream stable patches. Also a new more minor tweaks. OBS-URL: https://build.opensuse.org/request/show/734440 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=492
43 lines
1.6 KiB
Diff
43 lines
1.6 KiB
Diff
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
|
|
Date: Wed, 14 Aug 2019 18:55:35 +0100
|
|
Subject: vhost: Fix memory region section comparison
|
|
|
|
Git-commit: 3fc4a64cbaed2ddee4c60ddc06740b320e18ab82
|
|
|
|
Using memcmp to compare structures wasn't safe,
|
|
as I found out on ARM when I was getting falce miscompares.
|
|
|
|
Use the helper function for comparing the MRSs.
|
|
|
|
Fixes: ade6d081fc33948e56e6 ("vhost: Regenerate region list from changed sections list")
|
|
Cc: qemu-stable@nongnu.org
|
|
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
|
Message-Id: <20190814175535.2023-4-dgilbert@redhat.com>
|
|
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
|
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
|
---
|
|
hw/virtio/vhost.c | 9 +++++++--
|
|
1 file changed, 7 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
|
|
index bc899fc60e8bad1651340910c1ca..2ef4bc720f04ddadca3305a73df2 100644
|
|
--- a/hw/virtio/vhost.c
|
|
+++ b/hw/virtio/vhost.c
|
|
@@ -451,8 +451,13 @@ static void vhost_commit(MemoryListener *listener)
|
|
changed = true;
|
|
} else {
|
|
/* Same size, lets check the contents */
|
|
- changed = n_old_sections && memcmp(dev->mem_sections, old_sections,
|
|
- n_old_sections * sizeof(old_sections[0])) != 0;
|
|
+ for (int i = 0; i < n_old_sections; i++) {
|
|
+ if (!MemoryRegionSection_eq(&old_sections[i],
|
|
+ &dev->mem_sections[i])) {
|
|
+ changed = true;
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
}
|
|
|
|
trace_vhost_commit(dev->started, changed);
|