aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2013-11-22 17:17:09 +0000
committerPeter Maydell <peter.maydell@linaro.org>2013-12-10 13:28:30 +0000
commitef6de70ea811d66ebb6b9b6046e304f588e754bb (patch)
treee81104037874f82750875b669247b6efabdedbd2
parent72b0cd35ad3e216a1db7f6a08a2ff65bb577c119 (diff)
device_tree.c: Terminate the empty reservemap in create_device_tree()
Device trees created with create_device_tree() may not have any entries in their reservemap, because the FDT API requires that the reservemap is completed before any FDT nodes are added, and create_device_tree() itself creates a node. However we were not calling fdt_finish_reservemap(), which meant that there was no terminator in the reservemap list and whatever happened to be at the start of the FDT data section would end up being interpreted as reservemap entries. Avoid this by calling fdt_finish_reservemap() to add the terminator. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Alexander Graf <agraf@suse.de> Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Message-id: 1385140638-10444-3-git-send-email-peter.maydell@linaro.org
-rw-r--r--device_tree.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/device_tree.c b/device_tree.c
index ffec99ae29..391da8c45e 100644
--- a/device_tree.c
+++ b/device_tree.c
@@ -41,6 +41,10 @@ void *create_device_tree(int *sizep)
if (ret < 0) {
goto fail;
}
+ ret = fdt_finish_reservemap(fdt);
+ if (ret < 0) {
+ goto fail;
+ }
ret = fdt_begin_node(fdt, "");
if (ret < 0) {
goto fail;