summaryrefslogtreecommitdiff
path: root/common/fdt_support.c
diff options
context:
space:
mode:
authorGabe Black <gabeblack@chromium.org>2011-11-08 01:05:32 -0800
committerGerald Van Baren <gvb@unssw.com>2011-11-13 11:21:34 -0500
commitde16606ae3445c3822720487178ecf7fbdd0c378 (patch)
tree811b97abbff43a336aa55b9aaf77ad040e48d2eb /common/fdt_support.c
parent5721385b187b3154c7768e6c182501022f4e2e45 (diff)
Add some missing endian conversions in fdt_support.c
Some functions in fdt_support.c use fdt_getprop to read 32 bit values out of the device tree, but then use them directly without doing any endian conversion. Because they check for a value that doesn't actually appear in practice, the functions continued to work even though they're incorrect. This change adds the missing conversions. Signed-off-by: Gabe Black <gabeblack@chromium.org>
Diffstat (limited to 'common/fdt_support.c')
-rw-r--r--common/fdt_support.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/common/fdt_support.c b/common/fdt_support.c
index bdda64d2d7..c501604cba 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -61,7 +61,7 @@ u32 fdt_getprop_u32_default(void *fdt, const char *path, const char *prop,
val = fdt_getprop(fdt, off, prop, NULL);
if (val)
- return *val;
+ return fdt32_to_cpu(*val);
else
return dflt;
}
@@ -372,7 +372,7 @@ static int get_cells_len(void *blob, char *nr_cells_name)
const u32 *cell;
cell = fdt_getprop(blob, 0, nr_cells_name, NULL);
- if (cell && *cell == 2)
+ if (cell && fdt32_to_cpu(*cell) == 2)
return 8;
return 4;