Patchwork [U-Boot,v2] arm: fix bd pointer dereference prior initialization

login
register
mail settings
Submitter Igor Grinberg
Date Aug. 17, 2011, 9:48 a.m.
Message ID <1313574503-8762-1-git-send-email-grinberg@compulab.co.il>
Download mbox | patch
Permalink /patch/110301/
State Accepted
Commit 15c2e2c0ea64a0ab10b6765e2b0ab46d99d9ac34
Delegated to: Albert ARIBAUD
Headers show

Comments

Igor Grinberg - Aug. 17, 2011, 9:48 a.m.
gd->bd pointer has been used prior been initialized.
Move the relevant code after the initialization.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
---
v2:	move it closer to the bd pointer set up as for Albert's suggestion.

 arch/arm/lib/board.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)
Albert ARIBAUD - Aug. 17, 2011, 4:13 p.m.
Hi Igor,

Le 17/08/2011 11:48, Igor Grinberg a écrit :
> gd->bd pointer has been used prior been initialized.
> Move the relevant code after the initialization.
>
> Signed-off-by: Igor Grinberg<grinberg@compulab.co.il>
> ---
> v2:	move it closer to the bd pointer set up as for Albert's suggestion.
>
>   arch/arm/lib/board.c |    9 +++++----
>   1 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
> index 646cf45..c899839 100644
> --- a/arch/arm/lib/board.c
> +++ b/arch/arm/lib/board.c
> @@ -275,10 +275,6 @@ void board_init_f(ulong bootflag)
>
>   	gd->mon_len = _bss_end_ofs;
>
> -#ifdef CONFIG_MACH_TYPE
> -	gd->bd->bi_arch_number = CONFIG_MACH_TYPE; /* board id for Linux */
> -#endif
> -
>   	for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
>   		if ((*init_fnc_ptr)() != 0) {
>   			hang ();
> @@ -376,6 +372,11 @@ void board_init_f(ulong bootflag)
>   	gd->bd = bd;
>   	debug("Reserving %zu Bytes for Board Info at: %08lx\n",
>   			sizeof (bd_t), addr_sp);
> +
> +#ifdef CONFIG_MACH_TYPE
> +	gd->bd->bi_arch_number = CONFIG_MACH_TYPE; /* board id for Linux */
> +#endif
> +
>   	addr_sp -= sizeof (gd_t);
>   	id = (gd_t *) addr_sp;
>   	debug("Reserving %zu Bytes for Global Data at: %08lx\n",

Applied to u-boot-arm/master, thanks!

Amicalement,

Patch

diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
index 646cf45..c899839 100644
--- a/arch/arm/lib/board.c
+++ b/arch/arm/lib/board.c
@@ -275,10 +275,6 @@  void board_init_f(ulong bootflag)
 
 	gd->mon_len = _bss_end_ofs;
 
-#ifdef CONFIG_MACH_TYPE
-	gd->bd->bi_arch_number = CONFIG_MACH_TYPE; /* board id for Linux */
-#endif
-
 	for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
 		if ((*init_fnc_ptr)() != 0) {
 			hang ();
@@ -376,6 +372,11 @@  void board_init_f(ulong bootflag)
 	gd->bd = bd;
 	debug("Reserving %zu Bytes for Board Info at: %08lx\n",
 			sizeof (bd_t), addr_sp);
+
+#ifdef CONFIG_MACH_TYPE
+	gd->bd->bi_arch_number = CONFIG_MACH_TYPE; /* board id for Linux */
+#endif
+
 	addr_sp -= sizeof (gd_t);
 	id = (gd_t *) addr_sp;
 	debug("Reserving %zu Bytes for Global Data at: %08lx\n",