From 1d8973528475d9669617c1f4f83ef551989a3b68 Mon Sep 17 00:00:00 2001 From: acevest Date: Tue, 16 May 2023 09:00:00 +0800 Subject: [PATCH] =?utf8?q?sysenter=E5=90=8E=E5=86=85=E6=A0=B8=E5=9C=A8?= =?utf8?q?=E5=BC=80=E4=B8=AD=E6=96=AD=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B?= =?utf8?q?=E6=89=A7=E8=A1=8C=E7=B3=BB=E7=BB=9F=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- kernel/syscall.S | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel/syscall.S b/kernel/syscall.S index b11cdee..6526d45 100644 --- a/kernel/syscall.S +++ b/kernel/syscall.S @@ -33,6 +33,10 @@ syscall_entry: #if FIX_SYSENTER_ESP_MODE movl (%esp),%esp #endif + + // sysenter have cleared IF, and sysexit will not set IF. + sti + // 这段代码纯是为了pt_regs_t准备的 // 后续看看直接优化掉 pushl $(SELECTOR_USER_SS) @@ -82,7 +86,6 @@ ret_from_fork_user: // sysexit指令从ecx中恢复用户态esp xchgl %ebp, %ecx - sti /* sysenter have cleared IF, and sysexit will not set IF. */ sysexit -- 2.44.0