diff options
Diffstat (limited to 'cpu/cpu_exec_context.cc')
-rw-r--r-- | cpu/cpu_exec_context.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/cpu/cpu_exec_context.cc b/cpu/cpu_exec_context.cc index e15ba7e66..3d047856a 100644 --- a/cpu/cpu_exec_context.cc +++ b/cpu/cpu_exec_context.cc @@ -159,6 +159,16 @@ CPUExecContext::takeOverFrom(ExecContext *oldContext) func_exe_inst = oldContext->readFuncExeInst(); #endif + EndQuiesceEvent *quiesce = oldContext->getQuiesceEvent(); + if (quiesce) { + // Point the quiesce event's XC at this XC so that it wakes up + // the proper CPU. + quiesce->xc = proxy; + } + if (quiesceEvent) { + quiesceEvent->xc = proxy; + } + storeCondFailures = 0; oldContext->setStatus(ExecContext::Unallocated); |