x86: apic: simplify secondary CPU wakeup methods
Impact: cleanup - rename apic->wakeup_cpu to apic->wakeup_secondary_cpu, to make it apparent that this is an SMP-only method - handle NULL ->wakeup_secondary_cpus to mean the default INIT wakeup sequence - this allows simplification of the APIC driver templates. Cc: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -742,7 +742,8 @@ static void __cpuinit do_fork_idle(struct work_struct *work)
|
||||
/*
|
||||
* NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad
|
||||
* (ie clustered apic addressing mode), this is a LOGICAL apic ID.
|
||||
* Returns zero if CPU booted OK, else error code from ->wakeup_cpu.
|
||||
* Returns zero if CPU booted OK, else error code from
|
||||
* ->wakeup_secondary_cpu.
|
||||
*/
|
||||
static int __cpuinit do_boot_cpu(int apicid, int cpu)
|
||||
{
|
||||
@@ -829,9 +830,13 @@ do_rest:
|
||||
}
|
||||
|
||||
/*
|
||||
* Starting actual IPI sequence...
|
||||
* Kick the secondary CPU. Use the method in the APIC driver
|
||||
* if it's defined - or use an INIT boot APIC message otherwise:
|
||||
*/
|
||||
boot_error = apic->wakeup_cpu(apicid, start_ip);
|
||||
if (apic->wakeup_secondary_cpu)
|
||||
boot_error = apic->wakeup_secondary_cpu(apicid, start_ip);
|
||||
else
|
||||
boot_error = wakeup_secondary_cpu_via_init(apicid, start_ip);
|
||||
|
||||
if (!boot_error) {
|
||||
/*
|
||||
|
Reference in New Issue
Block a user