svn commit: r288115 - head/sys/arm64/arm64
Konstantin Belousov
kib at FreeBSD.org
Tue Sep 22 16:29:56 UTC 2015
Author: kib
Date: Tue Sep 22 16:29:55 2015
New Revision: 288115
URL: https://svnweb.freebsd.org/changeset/base/288115
Log:
Re-check for new ast after ast was handled. We should not return to
usermode with pending asts.
Reviewed by: andrew
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D3667
Modified:
head/sys/arm64/arm64/exception.S
Modified: head/sys/arm64/arm64/exception.S
==============================================================================
--- head/sys/arm64/arm64/exception.S Tue Sep 22 15:57:26 2015 (r288114)
+++ head/sys/arm64/arm64/exception.S Tue Sep 22 16:29:55 2015 (r288115)
@@ -100,10 +100,11 @@ __FBSDID("$FreeBSD$");
.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 @@ __FBSDID("$FreeBSD$");
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 */
More information about the svn-src-head
mailing list