summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/arm/arm/locore-v6.S6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/arm/arm/locore-v6.S b/sys/arm/arm/locore-v6.S
index 5a52228..6aa61f3 100644
--- a/sys/arm/arm/locore-v6.S
+++ b/sys/arm/arm/locore-v6.S
@@ -74,9 +74,11 @@ __FBSDID("$FreeBSD$");
teq r0, #(PSR_HYP32_MODE) /* Hyp Mode? */ ;\
bne 1f ;\
/* Ensure that IRQ, FIQ and Aborts will be disabled after eret */ ;\
- mrs r0, spsr ;\
+ mrs r0, cpsr ;\
+ bic r0, r0, #(PSR_MODE) ;\
+ orr r0, r0, #(PSR_SVC32_MODE) ;\
orr r0, r0, #(PSR_I | PSR_F | PSR_A) ;\
- msr spsr, r0 ;\
+ msr spsr_cxsf, r0 ;\
/* Exit hypervisor mode */ ;\
adr lr, 1f ;\
MSR_ELR_HYP(14) ;\
OpenPOWER on IntegriCloud