summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/aim
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2012-04-20 23:01:36 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2012-04-20 23:01:36 +0000
commit8f2d167ee3384a1ea35ebbf014d8f022d332df59 (patch)
tree667f2d9ed9a29010d338ae215a9d827d59de4fb3 /sys/powerpc/aim
parent02336162cdc01550209fb04b5e543777ce6fe70c (diff)
downloadFreeBSD-src-8f2d167ee3384a1ea35ebbf014d8f022d332df59.zip
FreeBSD-src-8f2d167ee3384a1ea35ebbf014d8f022d332df59.tar.gz
Make sure all pending operations have completed on the existing thread
before (potentially) migrating it to a different CPU. MFC after: 5 days
Diffstat (limited to 'sys/powerpc/aim')
-rw-r--r--sys/powerpc/aim/swtch32.S1
-rw-r--r--sys/powerpc/aim/swtch64.S1
2 files changed, 2 insertions, 0 deletions
diff --git a/sys/powerpc/aim/swtch32.S b/sys/powerpc/aim/swtch32.S
index a44b861..76bb0f4 100644
--- a/sys/powerpc/aim/swtch32.S
+++ b/sys/powerpc/aim/swtch32.S
@@ -113,6 +113,7 @@ ENTRY(cpu_switch)
mr %r3,%r14 /* restore old thread ptr */
bl pmap_deactivate /* Deactivate the current pmap */
+ sync /* Make sure all of that finished */
stw %r16,TD_LOCK(%r14) /* ULE: update old thread's lock */
cpu_switchin:
diff --git a/sys/powerpc/aim/swtch64.S b/sys/powerpc/aim/swtch64.S
index 3b09adf..857ae40 100644
--- a/sys/powerpc/aim/swtch64.S
+++ b/sys/powerpc/aim/swtch64.S
@@ -139,6 +139,7 @@ ENTRY(cpu_switch)
addi %r1,%r1,48
+ sync /* Make sure all of that finished */
std %r16,TD_LOCK(%r14) /* ULE: update old thread's lock */
cpu_switchin:
OpenPOWER on IntegriCloud