diff options
Diffstat (limited to 'dev/kernel')
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc index 79f25920..0dbd6815 100644 --- a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc +++ b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc @@ -115,6 +115,8 @@ EXTERN_C HAL::StackFramePtr mp_get_current_task(ThreadID thrdid) { EXTERN_C BOOL mp_register_task(HAL::StackFramePtr stack_frame, ThreadID thrdid) { if (!stack_frame) return NO; + if (thrdid > kSMPCount) return NO; + if (!kSMPAware) { sched_jump_to_task(kHWThread[thrdid].mFramePtr); @@ -122,9 +124,7 @@ EXTERN_C BOOL mp_register_task(HAL::StackFramePtr stack_frame, ThreadID thrdid) } HardwareThreadScheduler::The()[thrdid].Leak()->Busy(NO); - kHWThread[thrdid].mFramePtr = stack_frame; - if (thrdid > kSMPCount) return NO; return YES; } |
