diff options
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc | 4 | ||||
| -rw-r--r-- | dev/kernel/src/HardwareThreadScheduler.cc | 2 | ||||
| -rw-r--r-- | dev/kernel/src/UserProcessScheduler.cc | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc index 5bdfd863..24a81af9 100644 --- a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc +++ b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc @@ -120,7 +120,9 @@ EXTERN_C BOOL mp_register_task(HAL::StackFramePtr stack_frame, ThreadID thrdid) HardwareThreadScheduler::The()[thrdid].Leak()->Busy(NO); - sched_jump_to_task(kHWThread[thrdid].mFramePtr); + if (!kSMPAware) { + sched_jump_to_task(kHWThread[thrdid].mFramePtr); + } return YES; } diff --git a/dev/kernel/src/HardwareThreadScheduler.cc b/dev/kernel/src/HardwareThreadScheduler.cc index e3255326..86f46718 100644 --- a/dev/kernel/src/HardwareThreadScheduler.cc +++ b/dev/kernel/src/HardwareThreadScheduler.cc @@ -145,7 +145,7 @@ HAL::StackFramePtr HardwareThreadScheduler::Leak() noexcept { */ /***********************************************************************************/ Ref<HardwareThread*> HardwareThreadScheduler::operator[](SizeT idx) { - if (idx >= kMaxAPInsideSched) { + if (idx > kMaxAPInsideSched) { HardwareThread* kFakeThread = nullptr; return {kFakeThread}; } diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc index f76d4821..e417cc8d 100644 --- a/dev/kernel/src/UserProcessScheduler.cc +++ b/dev/kernel/src/UserProcessScheduler.cc @@ -444,7 +444,7 @@ UserProcessScheduler& UserProcessScheduler::The() { /***********************************************************************************/ Void UserProcessScheduler::Remove(ProcessID process_id) { - if (process_id < 0 || process_id >= kSchedProcessLimitPerTeam) { + if (process_id < 0 || process_id > kSchedProcessLimitPerTeam) { return; } |
