]> git.baikalelectronics.ru Git - kernel.git/commit
x86: prevent stale state of c1e_mask across CPU offline/online
authorThomas Gleixner <tglx@linutronix.de>
Mon, 22 Sep 2008 16:54:29 +0000 (18:54 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 23 Sep 2008 09:38:52 +0000 (11:38 +0200)
commit6034a662707c636472c6e0a2c8129f9596e57c52
tree680f128d2bf1cec0fdc77f7a8cb3f3f54264d282
parent3e291778df06b656eb7db68da3fb5169f8311740
x86: prevent stale state of c1e_mask across CPU offline/online

Impact: hang which happens across CPU offline/online on AMD C1E systems.

When a CPU goes offline then the corresponding bit in the broadcast
mask is cleared. For AMD C1E enabled CPUs we do not reenable the
broadcast when the CPU comes online again as we do not clear the
corresponding bit in the c1e_mask, which keeps track which CPUs
have been switched to broadcast already. So on those !$@#& machines
we never switch back to broadcasting after a CPU offline/online cycle.

Clear the bit when the CPU plays dead.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/kernel/process.c
arch/x86/kernel/process_32.c
arch/x86/kernel/process_64.c
include/asm-x86/idle.h