From: Bernhard Messerklinger Date: Thu, 28 Sep 2017 09:29:52 +0000 (+0200) Subject: cmd/fdt.c align data buffer to avoid unaligned word access X-Git-Tag: v2018.01-rc1~89^2~8 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=6dfd65f81fd060a85c961a84f85a286e8e96332c;p=oweals%2Fu-boot.git 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 --- diff --git a/cmd/fdt.c b/cmd/fdt.c index 955a0088c6..b783b0df42 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 */