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__ /* |