summaryrefslogtreecommitdiff
path: root/src/kern
diff options
context:
space:
mode:
Diffstat (limited to 'src/kern')
-rw-r--r--src/kern/system_events.cc11
-rw-r--r--src/kern/tru64/tru64.hh2
2 files changed, 8 insertions, 5 deletions
diff --git a/src/kern/system_events.cc b/src/kern/system_events.cc
index fd5c12e44..f3b1bf91d 100644
--- a/src/kern/system_events.cc
+++ b/src/kern/system_events.cc
@@ -71,15 +71,17 @@ FnEvent::process(ExecContext *xc)
void
IdleStartEvent::process(ExecContext *xc)
{
- xc->getCpuPtr()->kernelStats->setIdleProcess(
- xc->readMiscReg(AlphaISA::IPR_PALtemp23), xc);
+ if (xc->getKernelStats())
+ xc->getKernelStats()->setIdleProcess(
+ xc->readMiscReg(AlphaISA::IPR_PALtemp23), xc);
remove();
}
void
InterruptStartEvent::process(ExecContext *xc)
{
- xc->getCpuPtr()->kernelStats->mode(Kernel::interrupt, xc);
+ if (xc->getKernelStats())
+ xc->getKernelStats()->mode(Kernel::interrupt, xc);
}
void
@@ -87,5 +89,6 @@ InterruptEndEvent::process(ExecContext *xc)
{
// We go back to kernel, if we are user, inside the rti
// pal code we will get switched to user because of the ICM write
- xc->getCpuPtr()->kernelStats->mode(Kernel::kernel, xc);
+ if (xc->getKernelStats())
+ xc->getKernelStats()->mode(Kernel::kernel, xc);
}
diff --git a/src/kern/tru64/tru64.hh b/src/kern/tru64/tru64.hh
index 91db5bb84..fff91f8ca 100644
--- a/src/kern/tru64/tru64.hh
+++ b/src/kern/tru64/tru64.hh
@@ -922,7 +922,7 @@ class Tru64 {
for (int i = 0; i < process->numCpus(); ++i) {
ExecContext *xc = process->execContexts[i];
- if (xc->status() == ExecContext::Unallocated) {
+ if (xc->status() == ExecContext::Suspended) {
// inactive context... grab it
init_exec_context(xc, attrp, uniq_val);