summaryrefslogtreecommitdiff
path: root/x86_64
diff options
context:
space:
mode:
authorLuca Dariz <luca@orpolo.org>2023-05-18 23:08:39 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-05-18 23:12:21 +0200
commitd680b2d515b4aef4639efe892e3c30ccf00681a6 (patch)
tree0ad64870116de3be80cb026b5c96df350c629872 /x86_64
parentb93c1df404032839fc2d46580c20ee4b8bf2072c (diff)
fix fs/gs save/restore and USER32
* x86_64/locore.S: fix PUSH_FSGS -> _ISR and always make room for fsgsbase on a 64-bit kernel. Message-Id: <20230518210839.655403-1-luca@orpolo.org>
Diffstat (limited to 'x86_64')
-rw-r--r--x86_64/locore.S4
1 files changed, 1 insertions, 3 deletions
diff --git a/x86_64/locore.S b/x86_64/locore.S
index 4e341860..4d61d618 100644
--- a/x86_64/locore.S
+++ b/x86_64/locore.S
@@ -446,11 +446,9 @@ push_fs:
pushq %fs /* restore fs, */
push_gs:
pushq %gs /* restore gs. */
-#ifdef USER32
push_gsbase:
pushq $0
pushq $0
-#endif
push_segregs:
movq %rax,R_TRAPNO(%rsp) /* set trap number */
movq %rdx,R_ERR(%rsp) /* set error code */
@@ -870,7 +868,7 @@ ast_from_interrupt:
push %rdx
mov %es,%rdx
push %rdx
- PUSH_FSGS
+ PUSH_FSGS_ISR
mov %ss,%dx /* switch to kernel segments */
mov %dx,%ds