308,312c308,322
< for (std::list<M5Port*>::iterator i = retryList.begin();
< i != retryList.end(); ++i) {
< (*i)->sendRetry();
< (*i)->onRetryList(false);
< DPRINTF(MemoryAccess,
---
> //
> // Record the current list of ports to retry on a temporary list before
> // calling sendRetry on those ports. sendRetry will cause an
> // immediate retry, which may result in the ports being put back on the
> // list. Therefore we want to clear the retryList before calling
> // sendRetry.
> //
> std::list<M5Port*> curRetryList(retryList);
>
> retryList.clear();
> waitingOnSequencer = false;
>
> for (std::list<M5Port*>::iterator i = curRetryList.begin();
> i != curRetryList.end(); ++i) {
> DPRINTF(RubyPort,
314a325,326
> (*i)->onRetryList(false);
> (*i)->sendRetry();
316,317d327
< retryList.clear();
< waitingOnSequencer = false;