From 6dfd65f81fd060a85c961a84f85a286e8e96332c Mon Sep 17 00:00:00 2001 From: Bernhard Messerklinger Date: Thu, 28 Sep 2017 11:29:52 +0200 Subject: [PATCH] cmd/fdt.c align data buffer to avoid unaligned word access Since the compiler is free to place a char array to any address in memory (in this case the stack), also to a non word aligned address the function "fdt_prop_parse" runs into troubles upon it wants to write some (fdt32_t *) to such a variable (if it has been placed to a none word aligned address). To avoid this we tell the compiler to always align this scratchpad to a word aligned address. Signed-off-by: Bernhard Messerklinger Reviewed-by: Hannes Schmelzer Tested-by: Hannes Schmelzer Reviewed-by: Simon Glass --- cmd/fdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/fdt.c b/cmd/fdt.c index 955a008..b783b0d 100644 --- a/cmd/fdt.c +++ b/cmd/fdt.c @@ -256,7 +256,7 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) char *pathp; /* path */ char *prop; /* property */ int nodeoffset; /* node offset from libfdt */ - static char data[SCRATCHPAD]; /* storage for the property */ + static char data[SCRATCHPAD] __aligned(4);/* property storage */ const void *ptmp; int len; /* new length of the property */ int ret; /* return value */ -- 2.7.4