diff options
-rw-r--r-- | sys/arm/arm/locore-v6.S | 6 |
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) ;\ |