summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-05-26 15:01:26 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-05-26 15:01:26 +0200
commitdd0b266dbe8a5c5d132640ee944f2232f1ff2c1c (patch)
treefbe435a7f9c08614fea34109bc95697a90b197fd
parent547a6e04c3883eaa958622e1506039ed0a3123bc (diff)
feat: Validate stack_ptr and task switch.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
-rw-r--r--dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
index fe3ee89b..1fbf9fea 100644
--- a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
+++ b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
@@ -114,12 +114,15 @@ EXTERN_C HAL::StackFramePtr mp_get_current_task(Int64 thrdid) {
EXTERN_C BOOL mp_register_task(HAL::StackFramePtr stack_frame, ProcessID thrdid) {
if (thrdid > kSMPCount) return NO;
+ if (!stack_frame) return NO;
kHWThread[thrdid].mFramePtr = stack_frame;
kHWThread[thrdid].mThreadID = thrdid;
HardwareThreadScheduler::The()[thrdid].Leak()->Busy(NO);
+ sched_jump_to_task(kHWThread[thrdid].mFramePtr);
+
return YES;
}