mirror of
https://github.com/torvalds/linux.git
synced 2024-11-18 01:51:53 +00:00
x86: use cpumask_var_t in acpi/boot.c
Impact: reduce stack size, use new API. Replace cpumask_t with cpumask_var_t. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Mike Travis <travis@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
9628937d5b
commit
ee943a82b6
@ -538,9 +538,10 @@ static int __cpuinit _acpi_map_lsapic(acpi_handle handle, int *pcpu)
|
|||||||
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
|
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
|
||||||
union acpi_object *obj;
|
union acpi_object *obj;
|
||||||
struct acpi_madt_local_apic *lapic;
|
struct acpi_madt_local_apic *lapic;
|
||||||
cpumask_t tmp_map, new_map;
|
cpumask_var_t tmp_map, new_map;
|
||||||
u8 physid;
|
u8 physid;
|
||||||
int cpu;
|
int cpu;
|
||||||
|
int retval = -ENOMEM;
|
||||||
|
|
||||||
if (ACPI_FAILURE(acpi_evaluate_object(handle, "_MAT", NULL, &buffer)))
|
if (ACPI_FAILURE(acpi_evaluate_object(handle, "_MAT", NULL, &buffer)))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -569,23 +570,37 @@ static int __cpuinit _acpi_map_lsapic(acpi_handle handle, int *pcpu)
|
|||||||
buffer.length = ACPI_ALLOCATE_BUFFER;
|
buffer.length = ACPI_ALLOCATE_BUFFER;
|
||||||
buffer.pointer = NULL;
|
buffer.pointer = NULL;
|
||||||
|
|
||||||
tmp_map = cpu_present_map;
|
if (!alloc_cpumask_var(&tmp_map, GFP_KERNEL))
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
if (!alloc_cpumask_var(&new_map, GFP_KERNEL))
|
||||||
|
goto free_tmp_map;
|
||||||
|
|
||||||
|
cpumask_copy(tmp_map, cpu_present_mask);
|
||||||
acpi_register_lapic(physid, lapic->lapic_flags & ACPI_MADT_ENABLED);
|
acpi_register_lapic(physid, lapic->lapic_flags & ACPI_MADT_ENABLED);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If mp_register_lapic successfully generates a new logical cpu
|
* If mp_register_lapic successfully generates a new logical cpu
|
||||||
* number, then the following will get us exactly what was mapped
|
* number, then the following will get us exactly what was mapped
|
||||||
*/
|
*/
|
||||||
cpus_andnot(new_map, cpu_present_map, tmp_map);
|
cpumask_andnot(new_map, cpu_present_mask, tmp_map);
|
||||||
if (cpus_empty(new_map)) {
|
if (cpumask_empty(new_map)) {
|
||||||
printk ("Unable to map lapic to logical cpu number\n");
|
printk ("Unable to map lapic to logical cpu number\n");
|
||||||
return -EINVAL;
|
retval = -EINVAL;
|
||||||
|
goto free_new_map;
|
||||||
}
|
}
|
||||||
|
|
||||||
cpu = first_cpu(new_map);
|
cpu = cpumask_first(new_map);
|
||||||
|
|
||||||
*pcpu = cpu;
|
*pcpu = cpu;
|
||||||
return 0;
|
retval = 0;
|
||||||
|
|
||||||
|
free_new_map:
|
||||||
|
free_cpumask_var(new_map);
|
||||||
|
free_tmp_map:
|
||||||
|
free_cpumask_var(tmp_map);
|
||||||
|
out:
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* wrapper to silence section mismatch warning */
|
/* wrapper to silence section mismatch warning */
|
||||||
|
Loading…
Reference in New Issue
Block a user