aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64/amd64/exception.S
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2009-01-14 14:20:08 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2009-01-14 14:20:08 +0000
commita353a3455eb2fdbcb0aeae2a68b6811c360e17d2 (patch)
tree5fcd1695bc08ec0e51ceb417897269d0e20e0649 /sys/amd64/amd64/exception.S
parent07cd9ab013d70afc8f7ef57279a49adeedb0c7ae (diff)
downloadsrc-a353a3455eb2fdbcb0aeae2a68b6811c360e17d2.tar.gz
src-a353a3455eb2fdbcb0aeae2a68b6811c360e17d2.zip
Disable interrupts, if they were enabled, before doing swapgs.
Otherwise, interrupt may happen while we run with kernel CS and usermode gsbase. Reviewed by: jeff MFC after: 1 week
Notes
Notes: svn path=/head/; revision=187221
Diffstat (limited to 'sys/amd64/amd64/exception.S')
-rw-r--r--sys/amd64/amd64/exception.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/amd64/amd64/exception.S b/sys/amd64/amd64/exception.S
index 80308a90fac7..1c098e4cfdf0 100644
--- a/sys/amd64/amd64/exception.S
+++ b/sys/amd64/amd64/exception.S
@@ -494,6 +494,7 @@ outofnmi:
movq %rsp,%rdx /* frame */
sti
call *%rax
+ cli
nocallchain:
#endif
testl %ebx,%ebx