From 0c2ffd2daa5a38b69c2061b304d8998a29343cca Mon Sep 17 00:00:00 2001
From: Andreas Hansson <andreas.hansson@arm.com>
Date: Thu, 22 Jan 2015 05:01:27 -0500
Subject: mem: Remove unused RequestState in the bridge

This patch removes the bridge sender state as the Crossbar now takes
care of remembering its own routing decisions.
---
 src/mem/bridge.cc | 22 ----------------------
 src/mem/bridge.hh | 17 -----------------
 2 files changed, 39 deletions(-)

(limited to 'src/mem')

diff --git a/src/mem/bridge.cc b/src/mem/bridge.cc
index b26da57e3..a21d123a1 100644
--- a/src/mem/bridge.cc
+++ b/src/mem/bridge.cc
@@ -207,15 +207,6 @@ Bridge::BridgeSlavePort::retryStalledReq()
 void
 Bridge::BridgeMasterPort::schedTimingReq(PacketPtr pkt, Tick when)
 {
-    // If we expect to see a response, we need to restore the source
-    // and destination field that is potentially changed by a second
-    // crossbar
-    if (!pkt->memInhibitAsserted() && pkt->needsResponse()) {
-        // Update the sender state so we can deal with the response
-        // appropriately
-        pkt->pushSenderState(new RequestState(pkt->getSrc()));
-    }
-
     // If we're about to put this packet at the head of the queue, we
     // need to schedule an event to do the transmit.  Otherwise there
     // should already be an event scheduled for sending the head
@@ -233,19 +224,6 @@ Bridge::BridgeMasterPort::schedTimingReq(PacketPtr pkt, Tick when)
 void
 Bridge::BridgeSlavePort::schedTimingResp(PacketPtr pkt, Tick when)
 {
-    // This is a response for a request we forwarded earlier.  The
-    // corresponding request state should be stored in the packet's
-    // senderState field.
-    RequestState *req_state =
-        dynamic_cast<RequestState*>(pkt->popSenderState());
-    assert(req_state != NULL);
-    pkt->setDest(req_state->origSrc);
-    delete req_state;
-
-    // the bridge sets the destination irrespective of it is valid or
-    // not, as it is checked in the crossbar
-    DPRINTF(Bridge, "response, new dest %d\n", pkt->getDest());
-
     // If we're about to put this packet at the head of the queue, we
     // need to schedule an event to do the transmit.  Otherwise there
     // should already be an event scheduled for sending the head
diff --git a/src/mem/bridge.hh b/src/mem/bridge.hh
index a79d67484..e6fa498cb 100644
--- a/src/mem/bridge.hh
+++ b/src/mem/bridge.hh
@@ -74,23 +74,6 @@ class Bridge : public MemObject
 {
   protected:
 
-    /**
-     * A bridge request state stores packets along with their sender
-     * state and original source. It has enough information to also
-     * restore the response once it comes back to the bridge.
-     */
-    class RequestState : public Packet::SenderState
-    {
-
-      public:
-
-        const PortID origSrc;
-
-        RequestState(PortID orig_src) : origSrc(orig_src)
-        { }
-
-    };
-
     /**
      * A deferred packet stores a packet along with its scheduled
      * transmission time
-- 
cgit v1.2.3