Page MenuHomeFreeBSD

D3667.diff
No OneTemporary

D3667.diff

Index: head/sys/arm64/arm64/exception.S
===================================================================
--- head/sys/arm64/arm64/exception.S
+++ head/sys/arm64/arm64/exception.S
@@ -100,10 +100,11 @@
.macro do_ast
/* Disable interrupts */
mrs x19, daif
+1:
msr daifset, #2
/* Read the current thread flags */
-1: ldr x1, [x18, #PC_CURTHREAD] /* Load curthread */
+ ldr x1, [x18, #PC_CURTHREAD] /* Load curthread */
ldr x2, [x1, #TD_FLAGS]
/* Check if we have either bits set */
@@ -120,9 +121,8 @@
mov x0, sp
bl _C_LABEL(ast)
- /* Disable interrupts */
- mrs x19, daif
- msr daifset, #2
+ /* Re-check for new ast scheduled */
+ b 1b
2:
/* Restore interrupts */

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 14, 6:16 PM (8 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29649130
Default Alt Text
D3667.diff (693 B)

Event Timeline