diff --git a/src/cpu/o3/commit_impl.hh b/src/cpu/o3/commit_impl.hh index c7b2551236..2c1c9fef20 100644 --- a/src/cpu/o3/commit_impl.hh +++ b/src/cpu/o3/commit_impl.hh @@ -752,8 +752,10 @@ DefaultCommit::handleInterrupt() cpu->checker->handlePendingInt(); } - // CPU will handle interrupt. - cpu->processInterrupts(interrupt); + // CPU will handle interrupt. Note that we ignore the local copy of + // interrupt. This is because the local copy may no longer be the + // interrupt that the interrupt controller thinks is being handled. + cpu->processInterrupts(cpu->getInterrupts()); thread[0]->noSquashFromTC = false;