[U-Boot] [PATCH] common: remove unaligned access error in bootmenu_getoption()
Lan Yixun (dlan)
dennis.yxun at gmail.com
Thu Jun 27 12:58:53 CEST 2013
From: "Lan Yixun (dlan)" <dennis.yxun at gmail.com>
Some ARM compilers may emit code that makes unaligned accesses when
faced with constructs such as:
char name[12] = "bootmenu_";
same fix as commit: 064d55f8bc8d7d205ed0be6abb6717e92eeb7cad
=========================================================
data abort
MAYBE you should read doc/README.arm-unaligned-accesses
pc : [<3ff4b60c>] lr : [<3ff4b7b0>]
sp : 3f346a58 ip : 3ff9c8e6 fp : 02000060
r10: 00000000 r9 : 3df47fc0 r8 : 3f347f40
r7 : 00000000 r6 : 00000000 r5 : 00000003 r4 : 3f759140
r3 : 000003f0 r2 : 00000000 r1 : 000003f1 r0 : 00000000
Flags: nzCv IRQs on FIQs off Mode SVC_32
Resetting CPU ...
======================================================
Signed-off-by: Lan Yixun (dlan) <dennis.yxun at gmail.com>
---
common/cmd_bootmenu.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/common/cmd_bootmenu.c b/common/cmd_bootmenu.c
index 7041273..d414c17 100644
--- a/common/cmd_bootmenu.c
+++ b/common/cmd_bootmenu.c
@@ -65,12 +65,12 @@ enum bootmenu_key {
static char *bootmenu_getoption(unsigned short int n)
{
- char name[MAX_ENV_SIZE] = "bootmenu_";
+ char name[MAX_ENV_SIZE];
if (n > MAX_COUNT)
return NULL;
- sprintf(name + 9, "%d", n);
+ sprintf(name, "bootmenu_%d", n);
return getenv(name);
}
--
1.8.2.1
More information about the U-Boot
mailing list