From 8ca209ad90bdb678932a6b18caf32b461dbe5eee Mon Sep 17 00:00:00 2001 From: Alex Williamson Date: Sun, 7 Nov 2010 20:57:00 -0700 Subject: [PATCH] pc: Fix e820 fw_cfg for big endian Signed-off-by: Alex Williamson Signed-off-by: Anthony Liguori --- hw/pc.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/hw/pc.c b/hw/pc.c index e7f7ac6b0e..c34d194c25 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)