summaryrefslogtreecommitdiffstats
path: root/src/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/cpumgr.C3
-rw-r--r--src/kernel/taskmgr.C3
2 files changed, 3 insertions, 3 deletions
diff --git a/src/kernel/cpumgr.C b/src/kernel/cpumgr.C
index 0f225fc13..984396020 100644
--- a/src/kernel/cpumgr.C
+++ b/src/kernel/cpumgr.C
@@ -19,8 +19,7 @@ CpuManager::CpuManager()
cpu_t* CpuManager::getCurrentCPU()
{
- register task_t* current_task = (task_t*) getSPRG3();
- return current_task->cpu;
+ return cv_cpus[getPIR()];
}
void CpuManager::init()
diff --git a/src/kernel/taskmgr.C b/src/kernel/taskmgr.C
index f5aa62ceb..0ddc3918a 100644
--- a/src/kernel/taskmgr.C
+++ b/src/kernel/taskmgr.C
@@ -2,6 +2,7 @@
#include <kernel/taskmgr.H>
#include <kernel/task.H>
#include <kernel/pagemgr.H>
+#include <kernel/cpumgr.H>
#include <arch/ppc.H>
void TaskManager::idleTaskLoop(void* unused)
@@ -20,7 +21,7 @@ task_t* TaskManager::getCurrentTask()
void TaskManager::setCurrentTask(task_t* t)
{
- t->cpu = getCurrentTask()->cpu;
+ t->cpu = CpuManager::getCurrentCPU();
setSPRG3((uint64_t)t);
return;
}
OpenPOWER on IntegriCloud