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>
master
Miao Yan 9 years ago committed by Bin Meng
parent 24fb49073e
commit b28cecdfb8
  1. 6
      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;

Loading…
Cancel
Save