aboutsummaryrefslogtreecommitdiff
path: root/treesource.c
diff options
context:
space:
mode:
authorDavid Gibson <dgibson@sneetch.(none)>2005-08-29 13:36:15 +1000
committerDavid Gibson <dgibson@sneetch.(none)>2005-08-29 13:36:15 +1000
commit6c0f36769af7e015030d033edf6b10f7ec50318c (patch)
treebb4611ff888253ac459431c4a3c9d9e15315e75f /treesource.c
parent230f253e9b187efd67787f98639aadb15916d0e9 (diff)
downloaddtc-6c0f36769af7e015030d033edf6b10f7ec50318c.tar.gz
Fix endian problems with handling of memreserve entries (bug pointed out
by Pantelis Antoniou). The rule is that the memreserve data in struct boot_info is always stored big-endian.
Diffstat (limited to 'treesource.c')
-rw-r--r--treesource.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/treesource.c b/treesource.c
index 14e9e27..a568bf7 100644
--- a/treesource.c
+++ b/treesource.c
@@ -168,8 +168,9 @@ void write_tree_source(FILE *f, struct boot_info *bi)
bi->mem_reserve_data.val) + i;
fprintf(f, "/memreserve/\t%016llx-%016llx;\n",
- (unsigned long long)re->address,
- (unsigned long long)re->address + re->size - 1);
+ (unsigned long long)be64_to_cpu(re->address),
+ (unsigned long long)(be64_to_cpu(re->address)
+ + be64_to_cpu(re->size) - 1));
}
write_tree_source_node(f, bi->dt, 0);