Page MenuHomeFreeBSD

D3714.id8897.diff
No OneTemporary

D3714.id8897.diff

Index: head/sys/arm64/arm64/exception.S
===================================================================
--- head/sys/arm64/arm64/exception.S
+++ head/sys/arm64/arm64/exception.S
@@ -63,8 +63,13 @@
.endm
.macro restore_registers el
- msr daifset, #2 /* Disable interrupts, x18 may change
- * in the interrupt exception handler */
+.if \el == 1
+ msr daifset, #2
+ /*
+ * Disable interrupts, x18 may change in the interrupt exception
+ * handler. For EL0 exceptions, do_ast already did this.
+ */
+.endif
ldp x18, lr, [sp], #16
ldp x10, x11, [sp], #16
.if \el == 0
@@ -155,6 +160,7 @@
save_registers 0
mov x0, sp
bl arm_cpu_intr
+ do_ast
restore_registers 0
eret

File Metadata

Mime Type
text/plain
Expires
Mon, Oct 28, 6:34 AM (15 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14365752
Default Alt Text
D3714.id8897.diff (696 B)

Event Timeline