linux-sg2042/arch/i386/kernel/cpu/mtrr
Loic Prylli d25c1ba2fa MTRR: Fix race causing set_mtrr to go into infinite loop
Processors synchronization in set_mtrr requires the .gate field to be set
after .count field is properly initialized.  Without an explicit barrier,
the compiler was reordering those memory stores.  That was sometimes
causing a processor (in ipi_handler) to see the .gate change and decrement
.count before the latter is set by set_mtrr() (which then hangs in a
infinite loop with irqs disabled).

Signed-off-by: Loic Prylli <loic@myri.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-06 10:23:43 -07:00
..
Makefile [PATCH] i386: conditionalize inclusion of some MTRR flavors 2006-12-07 02:14:09 +01:00
amd.c [PATCH] i386: fix MTRR code 2006-12-07 02:14:09 +01:00
centaur.c [PATCH] i386: fix MTRR code 2006-12-07 02:14:09 +01:00
cyrix.c mtrr/cyrix: fix sections 2007-06-28 11:34:53 -07:00
generic.c i386: mtrr crash fix 2007-07-01 12:29:44 -07:00
if.c [PATCH] i386: fix 32-bit ioctls on x64_32 2007-02-13 13:26:26 +01:00
main.c MTRR: Fix race causing set_mtrr to go into infinite loop 2007-07-06 10:23:43 -07:00
mtrr.h [PATCH] i386: fix size_or_mask and size_and_mask 2007-02-13 13:26:23 +01:00
state.c i386: fix PGE mask 2007-05-21 09:56:57 -07:00