|
From: Rik v. R. <ri...@re...> - 2005-03-28 20:34:55
|
For unknown reasons, this bug doesn't show up when Xen is compiled
with gcc-3.4, so I was off on a wild goose chase for a few days.
With this barrier added, the system boots fine again.
Note that we should probably move barrier into cpu_relax, but that's
a story for another patch.
Signed-off-by: Rik van Riel <ri...@re...>
--- xen-unstable/xen/arch/x86/smpboot.c.barrier 2005-03-28 15:17:11.000000000 -0500
+++ xen-unstable/xen/arch/x86/smpboot.c 2005-03-28 15:32:30.000000000 -0500
@@ -413,8 +413,10 @@ void __init start_secondary(void)
smp_callin();
- while (!atomic_read(&smp_commenced))
- rep_nop();
+ while (!atomic_read(&smp_commenced)) {
+ cpu_relax();
+ barrier();
+ }
#ifdef __i386__
/*
|