summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2009-07-25 01:16:44 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2009-07-27 14:09:14 -0500
commit1c7936e37730e58a8cc81fea91fd831b1ccf0b73 (patch)
treec61257129a151b28eebb41ddc999aee6b158f4dd
parentHPET fixes for reg writes (diff)
downloadqemu-kvm-1c7936e37730e58a8cc81fea91fd831b1ccf0b73.tar.gz
qemu-kvm-1c7936e37730e58a8cc81fea91fd831b1ccf0b73.tar.bz2
qemu-kvm-1c7936e37730e58a8cc81fea91fd831b1ccf0b73.zip
Use 64bit pointer for dirty log
Dirty logs currently get written with native "long" size. On little endian it doesn't matter if we use uint64_t instead though, because we'd still end up using the right bytes. On big endian, this does become a bigger problem, so we need to ensure that kernel and userspace talk the same language, which means getting rid of "long" and using a defined size instead. So I decided to use 64 bit types at all times. This doesn't break existing targets but will in conjunction with a patch I'll send to the KVM ML make dirty logs work with 32 bit userspace on 64 kernel with big endian. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--kvm-all.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kvm-all.c b/kvm-all.c
index 824bb4ccb..9d02ce354 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -357,7 +357,7 @@ int kvm_physical_sync_dirty_bitmap(target_phys_addr_t start_addr,
for (phys_addr = mem->start_addr, addr = mem->phys_offset;
phys_addr < mem->start_addr + mem->memory_size;
phys_addr += TARGET_PAGE_SIZE, addr += TARGET_PAGE_SIZE) {
- unsigned long *bitmap = (unsigned long *)d.dirty_bitmap;
+ uint64_t *bitmap = (uint64_t *)d.dirty_bitmap;
unsigned nr = (phys_addr - mem->start_addr) >> TARGET_PAGE_BITS;
unsigned word = nr / (sizeof(*bitmap) * 8);
unsigned bit = nr % (sizeof(*bitmap) * 8);