All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Rini <trini@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v4] arm: bugfix: save_boot_params_default accesses uninitalized stack when -O0
Date: Fri, 6 Jul 2012 07:00:11 -0700	[thread overview]
Message-ID: <4FF6EF6B.6060809@ti.com> (raw)
In-Reply-To: <4FF68155.6090103@kmckk.co.jp>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 07/05/2012 11:10 PM, Tetsuyuki Kobayashi wrote:
> save_boot_params_default() in cpu.c accesses uninitialized stack 
> area when it compiled with -O0 (not optimized).
> 
> Signed-off-by: Tetsuyuki Kobayashi <koba@kmckk.co.jp> --- Hi Tom, 
> Albert,
> 
> I rewrite them in asm language and put it to start.S. No warning 
> now. I tested it quickly on my kzm9g board.
> 
> Changes for v2: - include <linux/compiler.h> and use __naked 
> instead of __attribute__((naked))
> 
> Changes for v3: - move __naked after void - reformat comments
> 
> Changes for v4: - v3 causes following warnings cpu.c: In function 
> 'save_boot_params_default': cpu.c:48:1: warning: -fstack-usage not 
> supported for this target [enabled by default] - move 
> save_boot_params_default() and save_boot_params() from cpu.c to 
> start.S and write them in asm language
> 
> arch/arm/cpu/armv7/cpu.c   |    7 ------- 
> arch/arm/cpu/armv7/start.S |   15 +++++++++++++++ 2 files changed, 
> 15 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/arm/cpu/armv7/cpu.c b/arch/arm/cpu/armv7/cpu.c 
> index c6fa8ef..b0677f4 100644 --- a/arch/arm/cpu/armv7/cpu.c +++ 
> b/arch/arm/cpu/armv7/cpu.c @@ -37,13 +37,6 @@ #include 
> <asm/cache.h> #include <asm/armv7.h>
> 
> -void save_boot_params_default(u32 r0, u32 r1, u32 r2, u32 r3) -{ 
> -} - -void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3) - 
> __attribute__((weak, alias("save_boot_params_default"))); - int 
> cleanup_before_linux(void) { /* diff --git 
> a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S index 
> 261835b..4feade5 100644 --- a/arch/arm/cpu/armv7/start.S +++ 
> b/arch/arm/cpu/armv7/start.S @@ -350,6 +350,21 @@ 
> ENTRY(cpu_init_crit) ENDPROC(cpu_init_crit) #endif
> 
> +/*************************************************************************
>
>
> 
+ *
> + * void save_boot_params_default(u32 r0, u32 r1, u32 r2, u32 r3)
> + * + * Stack pointer is not yet initialized + * Don't save
> anything to stack even if compiled with -O0 + * + 
> *************************************************************************/
>
>
> 
+ENTRY(save_boot_params_default)
> +	bx	lr			@ back to my caller +ENDPROC(save_boot_params_default) +
>  +	.weak	save_boot_params +	.set	save_boot_params, 
> save_boot_params_default + #ifndef CONFIG_SPL_BUILD /* 
> *************************************************************************

We
>
> 
shouldn't, I believe, need to call this save_boot_params_default
and then alias it.  We should be able to just call it save_boot_params
and declare it weak, then omap3 for example will override a link time
(this should be easily verifiable with objdump).  Thanks!

- -- 
Tom

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJP9u9rAAoJENk4IS6UOR1W0oAQAJnM2ENHS3yhv3i+bUTJpXjI
sFPiQAd9t/QzDpCr7/xm05+mTciRUmzJ9tIF/XUQbVZPJZvxnfit43EVxaNuyQyZ
RC6Le9RBHzSFXmx2EwCUrNzog7Q3oOjAS6GVa2UaGsLf2lTcJrhomYNtk30cSwUw
sSQobL/jr5668Obuf1WQxEbextTt6JLTeWqCfsEBesg1eENqkskWQHg6zA8HD85i
RLYux9VEhZ/PaunH5K1RNOG3SzXZzhbxTwl4EpQ+6V8ocGqRG2tghWW/o5oG2Mjv
/i65FD0RbQhzqjX4z2far4PYBvVs+LIwPIUKZmP7A3QDrzoapCC7bk2nRBsfLPMX
xN3NeU13KsBre+7IFvMYvCCrZYSSMYRqAjNFxZwEJMeH7p3zGcDPGdAKaqCEDCJU
chNzcfhFiYezGGT4x7Sk5Apw7dj7kReC4mcuXAr9KHDV0tZy78nqqOa8wgxKgsz1
S4fiiDRwIHY+U/KgLW8ayv8VzSnDLTN6GJ23MWQiv1BXHdq77F2vDpytepR9m6BU
JT3Dtesdh5GmA0PSaRq9Wfh0TzTPkYJd91XD8JXulCpRJmxa70O5dVrE6mXWDyAQ
98esMJxyyOEFCcsRb7U2/NsRHLbuLjAKdF3nyzGaBp1qhvY/d5zsYwgNfIx3dpWk
SZohRX5nOA0Y+ZcphGih
=51Xu
-----END PGP SIGNATURE-----

  reply	other threads:[~2012-07-06 14:00 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-25 12:42 [U-Boot] [PATCH] arm: bugfix: save_boot_params_default accesses uninitalized stack when -O0 Tetsuyuki Kobayashi
2012-06-27 17:40 ` Tom Rini
2012-06-28  1:14   ` Tetsuyuki Kobayashi
2012-06-28 11:35     ` [U-Boot] [PATCH v2] " Tetsuyuki Kobayashi
2012-06-28 14:57       ` Tom Rini
2012-06-28 16:00         ` koba
2012-06-29  9:36         ` [U-Boot] [PATCH v3] " Tetsuyuki Kobayashi
2012-06-29 14:21           ` Tom Rini
2012-07-05  9:25             ` Albert ARIBAUD
2012-07-05 11:57           ` Albert ARIBAUD
2012-07-05 16:18             ` Tom Rini
2012-07-05 17:10               ` Albert ARIBAUD
2012-07-06  6:10                 ` [U-Boot] [PATCH v4] " Tetsuyuki Kobayashi
2012-07-06 14:00                   ` Tom Rini [this message]
2012-07-07  7:14                     ` [U-Boot] [PATCH v5] " Tetsuyuki Kobayashi
2012-07-09  8:55                       ` Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FF6EF6B.6060809@ti.com \
    --to=trini@ti.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.