mem: Make functional request a response when satisfied by queue

In the memory controller, MemCtrl::MemoryPort::recvFunctional,
when the functional request is satisfied by the ctrl-response queue,
correctly make the packet a response.

This change mirrors AbstractMemory::functionalAccess, which uses
Packet::makeResponse() after satisfying the request.

Change-Id: I47917062d3270915a97eed2c9fade66ba17019eb
This commit is contained in:
Atri Bhattacharyya
2023-07-26 17:34:24 +02:00
parent 7601fcfba6
commit 256729a40c

View File

@@ -1496,6 +1496,11 @@ MemCtrl::MemoryPort::recvFunctional(PacketPtr pkt)
// calls recvAtomic() and throws away the latency; we can save a
// little here by just not calculating the latency.
ctrl.recvFunctional(pkt);
} else {
// The packet's request is satisfied by the queue, but queue
// does not call makeResponse.
// Here, change the packet to the corresponding response
pkt->makeResponse();
}
pkt->popLabel();