summaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorMiao Yan <yanmiaobest@gmail.com>2016-01-07 01:32:03 -0800
committerBin Meng <bmeng.cn@gmail.com>2016-01-13 12:20:15 +0800
commitb28cecdfb8976a88d208879df0aff1ca69c07de5 (patch)
treed6aa09d79823ae54cd291cf934442d8b2361b339 /arch/x86
parent24fb49073e3ac3dae0de805de1e961cc9373ffcd (diff)
downloadblackbird-obmc-uboot-b28cecdfb8976a88d208879df0aff1ca69c07de5.tar.gz
blackbird-obmc-uboot-b28cecdfb8976a88d208879df0aff1ca69c07de5.zip
x86: use actual CPU number for allocating memory
Use actual CPU number, instead of maximum cpu configured, to allocate stack memory in 'load_sipi_vector' Signed-off-by: Miao Yan <yanmiaobest@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/cpu/mp_init.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/cpu/mp_init.c b/arch/x86/cpu/mp_init.c
index 2f34317858..2a3ce488a9 100644
--- a/arch/x86/cpu/mp_init.c
+++ b/arch/x86/cpu/mp_init.c
@@ -210,7 +210,7 @@ static int save_bsp_msrs(char *start, int size)
return msr_count;
}
-static int load_sipi_vector(atomic_t **ap_countp)
+static int load_sipi_vector(atomic_t **ap_countp, int num_cpus)
{
struct sipi_params_16bit *params16;
struct sipi_params *params;
@@ -239,7 +239,7 @@ static int load_sipi_vector(atomic_t **ap_countp)
params->idt_ptr = (uint32_t)x86_get_idt();
params->stack_size = CONFIG_AP_STACK_SIZE;
- size = params->stack_size * CONFIG_MAX_CPUS;
+ size = params->stack_size * num_cpus;
stack = memalign(size, 4096);
if (!stack)
return -ENOMEM;
@@ -483,7 +483,7 @@ int mp_init(struct mp_params *p)
mp_info.records = p->flight_plan;
/* Load the SIPI vector */
- ret = load_sipi_vector(&ap_count);
+ ret = load_sipi_vector(&ap_count, num_cpus);
if (ap_count == NULL)
return -1;
OpenPOWER on IntegriCloud