kernel/x86: disable trap and direction flag on signal handler entry

https://github.com/freebsd/freebsd-src/commit/846ac2266b625d13ce6d1fc9370c3c3cc2a960bb
https://github.com/freebsd/freebsd-src/commit/22eca0bf45fa506e27a58007cfc70f08ce4f3538
Change-Id: I19620d15372572ce4498d9145fd6b0df50f91bb9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4043
Reviewed-by: X512 <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
This commit is contained in:
Jérôme Duval
2021-06-04 07:39:58 +00:00
committed by Adrien Destugues
parent 37db8e9aed
commit d9b9a94c4f
2 changed files with 2 additions and 0 deletions
+1
View File
@@ -360,6 +360,7 @@ arch_setup_signal_frame(Thread* thread, struct sigaction* action,
frame->ip = x86_get_user_signal_handler_wrapper(
(action->sa_flags & SA_BEOS_COMPATIBLE_HANDLER) != 0,
thread->team->commpage_address);
frame->flags &= ~(X86_EFLAGS_TRAP | X86_EFLAGS_DIRECTION);
return B_OK;
}
+1
View File
@@ -376,6 +376,7 @@ arch_setup_signal_frame(Thread* thread, struct sigaction* action,
+ (addr_t)commPageAddress;
clear_ac();
frame->di = (addr_t)userSignalFrameData;
frame->flags &= ~(uint64)(X86_EFLAGS_TRAP | X86_EFLAGS_DIRECTION);
return B_OK;
}