diff options
author | Alexander Graf <agraf@suse.de> | 2009-07-25 01:16:44 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-07-27 14:09:14 -0500 |
commit | 1c7936e37730e58a8cc81fea91fd831b1ccf0b73 (patch) | |
tree | c61257129a151b28eebb41ddc999aee6b158f4dd | |
parent | ce536cfd1c33bf1a59a02436a025ddc7ef3a63b6 (diff) |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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); |