
Hi Stephen,
On Sat, Feb 13, 2016 at 5:27 AM, Stephen Warren swarren@wwwdotorg.org wrote:
From: Stephen Warren swarren@nvidia.com
Purely by code inspection, it looks like the parameter order to memalign() is swapped; its parameters are (align, size). 4096 is a likely desired alignment, and a variable named size sounds like a size:-)
Good catch! It was lucky that this did not corrupt any important data before ..
Fixes: 45b5a37836d5 ("x86: Add multi-processor init") Signed-off-by: Stephen Warren swarren@nvidia.com
Reviewed-by: Bin Meng bmeng.cn@gmail.com
I've taken a quick look at all the other memalign() calls in U-Boot, and I /think/ they're all correct.
arch/x86/cpu/mp_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/cpu/mp_init.c b/arch/x86/cpu/mp_init.c index 7917350bff26..fc2fb5bf445c 100644 --- a/arch/x86/cpu/mp_init.c +++ b/arch/x86/cpu/mp_init.c @@ -243,7 +243,7 @@ static int load_sipi_vector(atomic_t **ap_countp, int num_cpus)
params->stack_size = CONFIG_AP_STACK_SIZE; size = params->stack_size * num_cpus;
stack = memalign(size, 4096);
stack = memalign(4096, size); if (!stack) return -ENOMEM; params->stack_top = (u32)(stack + size);
--
Regards, Bin