mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-18 17:54:13 +08:00
x86: use wait_for_init_deassert in x86_64
wraps the busy loop for wait_for_init_deasserted() in a function, so smp_callin in x86_64 looks like more i386 Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
91718e8d13
commit
e90009bcc1
@ -100,6 +100,13 @@ static void __cpuinit smp_store_cpu_info(int id)
|
|||||||
print_cpu_info(c);
|
print_cpu_info(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void wait_for_init_deassert(atomic_t *deassert)
|
||||||
|
{
|
||||||
|
while (!atomic_read(deassert))
|
||||||
|
cpu_relax();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
static atomic_t init_deasserted __cpuinitdata;
|
static atomic_t init_deasserted __cpuinitdata;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -117,8 +124,7 @@ void __cpuinit smp_callin(void)
|
|||||||
* our local APIC. We have to wait for the IPI or we'll
|
* our local APIC. We have to wait for the IPI or we'll
|
||||||
* lock up on an APIC access.
|
* lock up on an APIC access.
|
||||||
*/
|
*/
|
||||||
while (!atomic_read(&init_deasserted))
|
wait_for_init_deassert(&init_deasserted);
|
||||||
cpu_relax();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (This works even if the APIC is not enabled.)
|
* (This works even if the APIC is not enabled.)
|
||||||
|
Loading…
Reference in New Issue
Block a user