diff -r bd376adfb7d4 -r b87ca279e34d src/mem/coherent_xbar.cc --- a/src/mem/coherent_xbar.cc Thu Jan 22 05:01:14 2015 -0500 +++ b/src/mem/coherent_xbar.cc Mon Jan 26 14:35:49 2015 -0600 @@ -308,6 +308,10 @@ snoopFilter->updateResponse(pkt, *slavePorts[slave_port_id]); } + // remove the request from the routing table + // must remove before sending the response in case this pointer gets re-used + routeTo.erase(route_lookup); + // send the packet through the destination slave port bool success M5_VAR_USED = slavePorts[slave_port_id]->sendTimingResp(pkt); @@ -315,9 +319,6 @@ // deadlock assert(success); - // remove the request from the routing table - routeTo.erase(route_lookup); - respLayers[slave_port_id]->succeededTiming(packetFinishTime); // stats updates