diff options
author | Bernhard Messerklinger <bernhard.messerklinger@br-automation.com> | 2017-09-28 11:29:52 +0200 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2017-11-16 18:45:05 -0700 |
commit | 6dfd65f81fd060a85c961a84f85a286e8e96332c (patch) | |
tree | 1b4ac320e97f0783e5da9c88efe8e31eb409f636 /cmd | |
parent | c253573f3e269fd9a24ee6684d87dd91106018a5 (diff) | |
download | u-boot-6dfd65f81fd060a85c961a84f85a286e8e96332c.zip u-boot-6dfd65f81fd060a85c961a84f85a286e8e96332c.tar.gz u-boot-6dfd65f81fd060a85c961a84f85a286e8e96332c.tar.bz2 |
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 <bernhard.messerklinger@br-automation.com>
Reviewed-by: Hannes Schmelzer <oe5hpm@oevsv.at>
Tested-by: Hannes Schmelzer <oe5hpm@oevsv.at>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/fdt.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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 */ |