summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'dev/kernel')
-rw-r--r--dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc4
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;
}