summaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/sparc64_ksyms.c
diff options
context:
space:
mode:
authorDavid S. Miller2005-08-29 21:46:22 +0200
committerDavid S. Miller2005-08-29 21:46:22 +0200
commit4f07118f656c179740cad35b827032e2e29b1210 (patch)
tree7ddeb17346fe25ae75aa5373659c053afb9ef5f5 /arch/sparc64/kernel/sparc64_ksyms.c
parent[SPARC64]: Make debugging spinlocks usable again. (diff)
downloadkernel-qcow2-linux-4f07118f656c179740cad35b827032e2e29b1210.tar.gz
kernel-qcow2-linux-4f07118f656c179740cad35b827032e2e29b1210.tar.xz
kernel-qcow2-linux-4f07118f656c179740cad35b827032e2e29b1210.zip
[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>
Diffstat (limited to 'arch/sparc64/kernel/sparc64_ksyms.c')
-rw-r--r--arch/sparc64/kernel/sparc64_ksyms.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/sparc64_ksyms.c b/arch/sparc64/kernel/sparc64_ksyms.c
index 0764b9330784..a3ea697f1adb 100644
--- a/arch/sparc64/kernel/sparc64_ksyms.c
+++ b/arch/sparc64/kernel/sparc64_ksyms.c
@@ -406,3 +406,12 @@ EXPORT_SYMBOL(xor_vis_4);
EXPORT_SYMBOL(xor_vis_5);
EXPORT_SYMBOL(prom_palette);
+
+/* memory barriers */
+EXPORT_SYMBOL(mb);
+EXPORT_SYMBOL(rmb);
+EXPORT_SYMBOL(wmb);
+EXPORT_SYMBOL(membar_storeload);
+EXPORT_SYMBOL(membar_storeload_storestore);
+EXPORT_SYMBOL(membar_storeload_loadload);
+EXPORT_SYMBOL(membar_storestore_loadstore);