diff -r b1b7ecd01a7e -r f48b3f34d315 src/mem/coherent_bus.cc --- a/src/mem/coherent_bus.cc Wed Jun 06 17:43:50 2012 +0100 +++ b/src/mem/coherent_bus.cc Wed Jun 06 17:44:25 2012 +0100 @@ -92,7 +92,8 @@ // neighbouring master ports are snooping and add them as snoopers for (SlavePortConstIter p = slavePorts.begin(); p != slavePorts.end(); ++p) { - if ((*p)->getMasterPort().isSnooping()) { + // check if the connected master port is snooping + if ((*p)->isSnooping()) { DPRINTF(BusAddrRanges, "Adding snooping master %s\n", (*p)->getMasterPort().name()); snoopPorts.push_back(*p); diff -r b1b7ecd01a7e -r f48b3f34d315 src/mem/comm_monitor.cc --- a/src/mem/comm_monitor.cc Wed Jun 06 17:43:50 2012 +0100 +++ b/src/mem/comm_monitor.cc Wed Jun 06 17:44:25 2012 +0100 @@ -328,7 +328,8 @@ bool CommMonitor::isSnooping() const { - return slavePort.getMasterPort().isSnooping(); + // check if the connected master port is snooping + return slavePort.isSnooping(); } unsigned diff -r b1b7ecd01a7e -r f48b3f34d315 src/mem/port.hh --- a/src/mem/port.hh Wed Jun 06 17:43:50 2012 +0100 +++ b/src/mem/port.hh Wed Jun 06 17:44:25 2012 +0100 @@ -356,6 +356,13 @@ unsigned peerBlockSize() const; /** + * Find out if the peer master port is snooping or not. + * + * @return true if the peer master port is snooping + */ + bool isSnooping() const { return _masterPort->isSnooping(); } + + /** * Called by the owner to send a range change */ void sendRangeChange() const { _masterPort->recvRangeChange(); } diff -r b1b7ecd01a7e -r f48b3f34d315 src/mem/ruby/system/RubyPort.cc --- a/src/mem/ruby/system/RubyPort.cc Wed Jun 06 17:43:50 2012 +0100 +++ b/src/mem/ruby/system/RubyPort.cc Wed Jun 06 17:44:25 2012 +0100 @@ -695,7 +695,8 @@ // should this really be using funcMasterId? Request req(address.getAddress(), 0, 0, Request::funcMasterId); for (CpuPortIter p = slave_ports.begin(); p != slave_ports.end(); ++p) { - if ((*p)->getMasterPort().isSnooping()) { + // check if the connected master port is snooping + if ((*p)->isSnooping()) { Packet *pkt = new Packet(&req, MemCmd::InvalidationReq); // send as a snoop request (*p)->sendTimingSnoopReq(pkt);