From: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v4] arm: bugfix: save_boot_params_default accesses uninitalized stack when -O0
Date: Fri, 06 Jul 2012 15:10:29 +0900 [thread overview]
Message-ID: <4FF68155.6090103@kmckk.co.jp> (raw)
In-Reply-To: <20120705191048.328459cc@lilith>
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
/*
*************************************************************************
--
1.7.9.5
next prev parent reply other threads:[~2012-07-06 6:10 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 ` Tetsuyuki Kobayashi [this message]
2012-07-06 14:00 ` [U-Boot] [PATCH v4] " Tom Rini
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=4FF68155.6090103@kmckk.co.jp \
--to=koba@kmckk.co.jp \
--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.