]> err.no Git - linux-2.6/commit
[SPARC64]: More fully work around Spitfire Errata 51.
authorDavid S. Miller <davem@davemloft.net>
Mon, 29 Aug 2005 19:46:22 +0000 (12:46 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 29 Aug 2005 19:46:22 +0000 (12:46 -0700)
commit4f07118f656c179740cad35b827032e2e29b1210
tree7ddeb17346fe25ae75aa5373659c053afb9ef5f5
parent442464a50077ff00454ff8d7628cbe1b8eacc034
[SPARC64]: More fully work around Spitfire Errata 51.

It appears that a memory barrier soon after a mispredicted
branch, not just in the delay slot, can cause the hang
condition of this cpu errata.

So move them out-of-line, and explicitly put them into
a "branch always, predict taken" delay slot which should
fully kill this problem.

Signed-off-by: David S. Miller <davem@davemloft.net>
14 files changed:
arch/sparc64/kernel/pci_iommu.c
arch/sparc64/kernel/process.c
arch/sparc64/kernel/sbus.c
arch/sparc64/kernel/signal32.c
arch/sparc64/kernel/smp.c
arch/sparc64/kernel/sparc64_ksyms.c
arch/sparc64/lib/Makefile
arch/sparc64/lib/debuglocks.c
arch/sparc64/lib/mb.S [new file with mode: 0644]
arch/sparc64/solaris/misc.c
include/asm-sparc64/atomic.h
include/asm-sparc64/bitops.h
include/asm-sparc64/spinlock.h
include/asm-sparc64/system.h