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
..
2007-06-23 15:43:48 +02:00
2007-05-09 07:12:20 +02:00
2007-06-01 08:18:29 -07:00
2007-06-21 17:46:22 -04:00
2007-07-02 00:04:36 -05:00
2007-06-08 17:23:33 -07:00
2007-05-31 01:52:51 -07:00
2007-06-16 13:16:16 -07:00