
Hi Albert,
On 2015年11月26日 00:56, Albert ARIBAUD wrote:
board_init_f_mem() alters the C runtime environment's stack it is actually already using. This is not a valid behaviour within a C runtime environment.
Split board_init_f_mem into C functions which do not alter their own stack and always behave properly with respect to their C runtime environment.
Signed-off-by: Albert ARIBAUD albert.u.boot@aribaud.net
Copying custodians for all architectures which this patch affects.
This patch has been build-tested for all affected architectures except NIOS2, and run-tested on ARM OpenRD Client.
For NIOS2, this patch contains all manual v1 and v2 fixes by Thomas.
For x86, this patch contains all manual v2 fixes by Bin.
Changes in v7: None Changes in v6:
- Switch from size- to address-based reservation
- Add comments on gdp_tr vs gd use wrt arch_setup_gd.
- Clarify that this is about the *early* malloc arena
Changes in v5:
- Reword commit message (including summary/subject)
- Reword comments in ARC code
Changes in v4:
- Add comments on reserving GD at the lowest location
- Add comments on post-incrementing base for each "chunk"
Changes in v3:
- Rebase after commit 9ac4fc82
- Simplify malloc conditional as per commit 9ac4fc82
- Fix NIOS2 return value register (r2, not r4)
- Fix x86 subl argument inversion
- Group allocations in a single function
- Group initializations in a single function
Changes in v2:
Fix all checkpatch issues
Fix board_init_f_malloc prototype mismatch
Fix board_init_[f_]xxx typo in NIOS2
Fix aarch64 asm 'sub' syntax error
arch/arc/lib/start.S | 12 +++-- arch/arm/lib/crt0.S | 3 +- arch/arm/lib/crt0_64.S | 4 +- arch/microblaze/cpu/start.S | 4 +- arch/nios2/cpu/start.S | 14 ++++-- arch/powerpc/cpu/ppc4xx/start.S | 6 ++- arch/x86/cpu/start.S | 3 +- arch/x86/lib/fsp/fsp_common.c | 4 +- common/init/board_init.c | 109 ++++++++++++++++++++++++++++++++++++---- include/common.h | 34 ++++++------- 10 files changed, 144 insertions(+), 49 deletions(-)
Acked-by: Thomas Chou thomas@wytron.com.tw