misc: Bugfix in TLM integration regarding CleanEvict Command

The CleanEvict command was not considered in /util/tlm/sc_port.cc this could
lead to a simulator crash. This issue is solved by ignoring this special
command type.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>
This commit is contained in:
Abdul Mutaal Ahmad 2015-09-15 08:14:07 -05:00
parent 543efd5ca6
commit 1bb6a100ab
2 changed files with 5 additions and 3 deletions

View file

@ -33,7 +33,7 @@ without python.
> cd ../..
> scons build/ARM/gem5.opt
> scons --with-cxx-config --without-python build/ARM/libgem5_opt.so
> cd util/systemc_tlm
> cd util/tlm
Set a proper LD_LIBRARY_PATH e.g. for bash:
> export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/path/to/gem5/build/ARM/"

View file

@ -30,6 +30,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Authors: Matthias Jung
* Abdul Mutaal Ahmad
*/
#include <cctype>
@ -175,8 +176,9 @@ sc_transactor::recvTimingReq(PacketPtr packet)
* required */
sc_assert(!needToSendRequestRetry);
/* FIXME screw coherency traffic */
if (packet->memInhibitAsserted())
// simply drop inhibited packets and clean evictions
if (packet->memInhibitAsserted() ||
packet->cmd == MemCmd::CleanEvict)
return true;
/* Remember if a request comes in while we're blocked so that a retry