small bus updates for functional accesses
--HG-- extra : convert_revision : c7a6b199c74ed4b4ffab14bbffb51e72d75b7742
This commit is contained in:
parent
2c9d506f46
commit
0615d92d33
|
@ -320,7 +320,7 @@ Bus::functionalSnoop(Packet *pkt)
|
|||
{
|
||||
std::vector<int> ports = findSnoopPorts(pkt->getAddr(), pkt->getSrc());
|
||||
|
||||
while (!ports.empty())
|
||||
while (!ports.empty() && pkt->result != Packet::Success)
|
||||
{
|
||||
interfaces[ports.back()]->sendFunctional(pkt);
|
||||
ports.pop_back();
|
||||
|
@ -367,6 +367,9 @@ Bus::recvFunctional(Packet *pkt)
|
|||
pkt->getSrc(), pkt->getDest(), pkt->getAddr(), pkt->cmdString());
|
||||
assert(pkt->getDest() == Packet::Broadcast);
|
||||
functionalSnoop(pkt);
|
||||
|
||||
// If the snooping found what we were looking for, we're done.
|
||||
if (pkt->result != Packet::Success)
|
||||
findPort(pkt->getAddr(), pkt->getSrc())->sendFunctional(pkt);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue