From 8e723650586e9d902d4b462ddf5bb067e5eb0757 Mon Sep 17 00:00:00 2001 From: Nikos Nikoleris Date: Tue, 22 Jan 2019 17:40:17 +0000 Subject: mem-cache: Copy over flags to forwarded response A cache that forwards a request to the memory below does not fill and forwards the response with the data to cache above. This change ensures that the flags of the original response are also preserved. Change-Id: I244b20b073c31b976358816c5b14bba413b8271f Signed-off-by: Nikos Nikoleris Reviewed-on: https://gem5-review.googlesource.com/c/16182 Reviewed-by: Daniel Carvalho --- src/mem/packet.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/mem/packet.cc') diff --git a/src/mem/packet.cc b/src/mem/packet.cc index 4369e168f..e1c760cd0 100644 --- a/src/mem/packet.cc +++ b/src/mem/packet.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2018 ARM Limited + * Copyright (c) 2011-2019 ARM Limited * All rights reserved * * The license below extends only to copyright in the software and shall @@ -302,6 +302,16 @@ Packet::trySatisfyFunctional(Printable *obj, Addr addr, bool is_secure, int size return false; } +void +Packet::copyResponderFlags(const PacketPtr pkt) +{ + assert(isRequest()); + // If we have already found a responder, no other cache should + // commit to responding + assert(!pkt->cacheResponding() || !cacheResponding()); + flags.set(pkt->flags & RESPONDER_FLAGS); +} + void Packet::pushSenderState(Packet::SenderState *sender_state) { -- cgit v1.2.3