diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-05-26 15:01:26 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-05-26 15:01:26 +0200 |
| commit | dd0b266dbe8a5c5d132640ee944f2232f1ff2c1c (patch) | |
| tree | fbe435a7f9c08614fea34109bc95697a90b197fd | |
| parent | 547a6e04c3883eaa958622e1506039ed0a3123bc (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.cc | 3 |
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; } |
