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>
This commit is contained in:
parent
5721385b18
commit
de16606ae3
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user