[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>
Showing
- arch/sparc64/kernel/pci_iommu.c 1 addition, 1 deletionarch/sparc64/kernel/pci_iommu.c
- arch/sparc64/kernel/process.c 1 addition, 1 deletionarch/sparc64/kernel/process.c
- arch/sparc64/kernel/sbus.c 1 addition, 1 deletionarch/sparc64/kernel/sbus.c
- arch/sparc64/kernel/signal32.c 12 additions, 10 deletionsarch/sparc64/kernel/signal32.c
- arch/sparc64/kernel/smp.c 15 additions, 15 deletionsarch/sparc64/kernel/smp.c
- arch/sparc64/kernel/sparc64_ksyms.c 9 additions, 0 deletionsarch/sparc64/kernel/sparc64_ksyms.c
- arch/sparc64/lib/Makefile 1 addition, 1 deletionarch/sparc64/lib/Makefile
- arch/sparc64/lib/debuglocks.c 8 additions, 8 deletionsarch/sparc64/lib/debuglocks.c
- arch/sparc64/lib/mb.S 73 additions, 0 deletionsarch/sparc64/lib/mb.S
- arch/sparc64/solaris/misc.c 4 additions, 2 deletionsarch/sparc64/solaris/misc.c
- include/asm-sparc64/atomic.h 4 additions, 4 deletionsinclude/asm-sparc64/atomic.h
- include/asm-sparc64/bitops.h 2 additions, 2 deletionsinclude/asm-sparc64/bitops.h
- include/asm-sparc64/spinlock.h 2 additions, 2 deletionsinclude/asm-sparc64/spinlock.h
- include/asm-sparc64/system.h 10 additions, 7 deletionsinclude/asm-sparc64/system.h
Loading
Please register or sign in to comment