83c83,84
< NoncoherentCache::access(PacketPtr pkt, CacheBlk *&blk, Cycles &lat)
---
> NoncoherentCache::access(PacketPtr pkt, CacheBlk *&blk, Cycles &lat,
> PacketList &writebacks)
85c86
< bool success = BaseCache::access(pkt, blk, lat);
---
> bool success = BaseCache::access(pkt, blk, lat, writebacks);
100c101
< NoncoherentCache::doWritebacks(PacketPtr pkt, Tick forward_time)
---
> NoncoherentCache::doWritebacks(PacketList& writebacks, Tick forward_time)
102c103,107
< allocateWriteBuffer(pkt, forward_time);
---
> while (!writebacks.empty()) {
> PacketPtr wb_pkt = writebacks.front();
> allocateWriteBuffer(wb_pkt, forward_time);
> writebacks.pop_front();
> }
106c111
< NoncoherentCache::doWritebacksAtomic(PacketPtr pkt)
---
> NoncoherentCache::doWritebacksAtomic(PacketList& writebacks)
108,109c113,118
< memSidePort.sendAtomic(pkt);
< delete pkt;
---
> while (!writebacks.empty()) {
> PacketPtr wb_pkt = writebacks.front();
> memSidePort.sendAtomic(wb_pkt);
> writebacks.pop_front();
> delete wb_pkt;
> }
165c174,175
< NoncoherentCache::handleAtomicReqMiss(PacketPtr pkt, CacheBlk *&blk)
---
> NoncoherentCache::handleAtomicReqMiss(PacketPtr pkt, CacheBlk *&blk,
> PacketList &writebacks)
190c200
< blk = handleFill(bus_pkt, blk, allocOnFill(bus_pkt->cmd));
---
> blk = handleFill(bus_pkt, blk, writebacks, allocOnFill(bus_pkt->cmd));