summaryrefslogtreecommitdiffstats
path: root/main/qemu/qemu-vhost-fix-dirty-page-handling.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/qemu/qemu-vhost-fix-dirty-page-handling.patch')
-rw-r--r--main/qemu/qemu-vhost-fix-dirty-page-handling.patch31
1 files changed, 0 insertions, 31 deletions
diff --git a/main/qemu/qemu-vhost-fix-dirty-page-handling.patch b/main/qemu/qemu-vhost-fix-dirty-page-handling.patch
deleted file mode 100644
index e3fabb74a..000000000
--- a/main/qemu/qemu-vhost-fix-dirty-page-handling.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-vhost was passing a physical address to cpu_physical_memory_set_dirty,
-which is wrong: we need to translate to ram address first.
-
-Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-
-Note: this lead to crashes during migration, so the patch
-is needed on the stable branch too.
-
----
- hw/vhost.c | 4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/hw/vhost.c b/hw/vhost.c
-index aaa34e4..97a1299 100644
---- a/hw/vhost.c
-+++ b/hw/vhost.c
-@@ -49,8 +49,10 @@ static void vhost_dev_sync_region(struct vhost_dev *dev,
- log = __sync_fetch_and_and(from, 0);
- while ((bit = sizeof(log) > sizeof(int) ?
- ffsll(log) : ffs(log))) {
-+ ram_addr_t ram_addr;
- bit -= 1;
-- cpu_physical_memory_set_dirty(addr + bit * VHOST_LOG_PAGE);
-+ ram_addr = cpu_get_physical_page_desc(addr + bit * VHOST_LOG_PAGE);
-+ cpu_physical_memory_set_dirty(ram_addr);
- log &= ~(0x1ull << bit);
- }
- addr += VHOST_LOG_CHUNK;
---
-1.7.3.2.91.g446ac
-