qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH master,stable] vhost: fix dirty page handling
@ 2011-03-16 10:09 Michael S. Tsirkin
  2011-03-16 12:53 ` [Qemu-devel] Re: [PATCH master, stable] " Juan Quintela
  2011-03-16 14:17 ` Alex Williamson
  0 siblings, 2 replies; 3+ messages in thread
From: Michael S. Tsirkin @ 2011-03-16 10:09 UTC (permalink / raw)
  To: qemu-devel, Anthony Liguori, jmforbes, Juan Quintela,
	Alex Williamson, Jason Wang

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

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-03-16 14:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-16 10:09 [Qemu-devel] [PATCH master,stable] vhost: fix dirty page handling Michael S. Tsirkin
2011-03-16 12:53 ` [Qemu-devel] Re: [PATCH master, stable] " Juan Quintela
2011-03-16 14:17 ` Alex Williamson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).