summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/powerpc/aim/trap_subr32.S2
-rw-r--r--sys/powerpc/aim/trap_subr64.S2
2 files changed, 4 insertions, 0 deletions
diff --git a/sys/powerpc/aim/trap_subr32.S b/sys/powerpc/aim/trap_subr32.S
index 7c154a8..80329cd 100644
--- a/sys/powerpc/aim/trap_subr32.S
+++ b/sys/powerpc/aim/trap_subr32.S
@@ -748,6 +748,8 @@ k_trap:
/* Call C interrupt dispatcher: */
trapagain:
addi %r3,%r1,8
+ addi %r4,%r1,-4 /* Clear any existing reservations */
+ stwcx. %r3,0,%r4
bl CNAME(powerpc_interrupt)
.globl CNAME(trapexit) /* backtrace code sentinel */
CNAME(trapexit):
diff --git a/sys/powerpc/aim/trap_subr64.S b/sys/powerpc/aim/trap_subr64.S
index 5d4148a..66c543f 100644
--- a/sys/powerpc/aim/trap_subr64.S
+++ b/sys/powerpc/aim/trap_subr64.S
@@ -508,6 +508,8 @@ trapagain:
lis %r3,tocbase@ha
ld %r2,tocbase@l(%r3)
addi %r3,%r1,48
+ addi %r4,%r1,-8 /* Clear any existing reservations */
+ stdcx. %r3,0,%r4
bl CNAME(powerpc_interrupt)
nop
OpenPOWER on IntegriCloud