From: Gabe Black Date: Tue, 8 Nov 2011 09:05:32 +0000 (-0800) Subject: Add some missing endian conversions in fdt_support.c X-Git-Tag: v2011.12-rc1~221^2^2~1 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=de16606ae3445c3822720487178ecf7fbdd0c378;p=u-boot 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 --- 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;