From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MUU0W-0008QU-Fs for qemu-devel@nongnu.org; Fri, 24 Jul 2009 19:16:56 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MUU0R-0008Mn-B3 for qemu-devel@nongnu.org; Fri, 24 Jul 2009 19:16:55 -0400 Received: from [199.232.76.173] (port=45177 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MUU0R-0008Mc-2n for qemu-devel@nongnu.org; Fri, 24 Jul 2009 19:16:51 -0400 Received: from cantor.suse.de ([195.135.220.2]:43610 helo=mx1.suse.de) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MUU0Q-0001Gk-7I for qemu-devel@nongnu.org; Fri, 24 Jul 2009 19:16:50 -0400 Received: from relay1.suse.de (relay-ext.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.suse.de (Postfix) with ESMTP id CED078D893 for ; Sat, 25 Jul 2009 01:16:48 +0200 (CEST) From: Alexander Graf Date: Sat, 25 Jul 2009 01:16:44 +0200 Message-Id: <1248477406-50728-3-git-send-email-agraf@suse.de> In-Reply-To: <1248477406-50728-2-git-send-email-agraf@suse.de> References: <1248477406-50728-1-git-send-email-agraf@suse.de> <1248477406-50728-2-git-send-email-agraf@suse.de> Subject: [Qemu-devel] [PATCH 2/4] Use 64bit pointer for dirty log List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org 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 --- kvm-all.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/kvm-all.c b/kvm-all.c index 824bb4c..9d02ce3 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); -- 1.6.0.2