diff options
| author | Loic Prylli <[email protected]> | 2007-07-06 02:39:52 -0700 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2007-07-06 10:23:43 -0700 |
| commit | d25c1ba2fa1a9a1a4f68bef8edb0efefd79f0012 (patch) | |
| tree | 105a72189d2783bfbca1ffda4f5ebf968ac69496 /include/linux/stacktrace.h | |
| parent | 1e2e99f0e4aa6363e8515ed17011c210c8f1b52a (diff) | |
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 <[email protected]>
Cc: Andi Kleen <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'include/linux/stacktrace.h')
0 files changed, 0 insertions, 0 deletions