From patchwork Mon Nov 8 03:57:00 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: pc: Fix e820 fw_cfg for big endian From: Alex Williamson X-Patchwork-Id: 70391 Message-Id: <20101108035143.26532.81891.stgit@s20.home> To: qemu-devel@nongnu.org, blauwirbel@gmail.com Cc: jes.sorensen@redhat.com, alex.williamson@redhat.com Date: Sun, 07 Nov 2010 20:57:00 -0700 Signed-off-by: Alex Williamson --- Compile tested only. Only current user is kvm, no cross-arch users. hw/pc.c | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-) diff --git a/hw/pc.c b/hw/pc.c index 0264e3d..cc8ec14 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -467,19 +467,19 @@ static void bochs_bios_write(void *opaque, uint32_t addr, uint32_t val) int e820_add_entry(uint64_t address, uint64_t length, uint32_t type) { - int index = e820_table.count; + int index = le32_to_cpu(e820_table.count); struct e820_entry *entry; if (index >= E820_NR_ENTRIES) return -EBUSY; - entry = &e820_table.entry[index]; + entry = &e820_table.entry[index++]; - entry->address = address; - entry->length = length; - entry->type = type; + entry->address = cpu_to_le64(address); + entry->length = cpu_to_le64(length); + entry->type = cpu_to_le32(type); - e820_table.count++; - return e820_table.count; + e820_table.count = cpu_to_le32(index); + return index; } static void *bochs_bios_init(void)