Merge vm1.(none):/home/stever/bk/newmem-head
authorSteve Reinhardt <stever@eecs.umich.edu>
Sat, 19 May 2007 05:37:32 +0000 (22:37 -0700)
committerSteve Reinhardt <stever@eecs.umich.edu>
Sat, 19 May 2007 05:37:32 +0000 (22:37 -0700)
into  vm1.(none):/home/stever/bk/newmem-cache2

src/mem/bridge.cc:
    SCCS merged

--HG--
extra : convert_revision : 9492be56a305afe88f28a77c3b23e80ce6aa81b3

1  2 
src/mem/bridge.cc

index 9509aea387ed394e77224f4f65b8de44cd3b013d,5460c88ddfff4e83405a391f643a8d28ec013d18..d68d4ded059b6c0c8276274761a5da21a9aaf37b
@@@ -253,17 -251,11 +249,15 @@@ Bridge::BridgePort::trySend(
  
      PacketPtr pkt = buf->pkt;
  
-     pkt->flags &= ~SNOOP_COMMIT; //CLear it if it was set
 +    // Ugly! @todo When multilevel coherence works this will be removed
      if (pkt->cmd == MemCmd::WriteInvalidateReq && fixPartialWrite &&
 -            pkt->result != Packet::Nacked && pkt->getOffset(pbs) &&
 -            pkt->getSize() != pbs) {
 -        buf->partialWriteFix(this);
 -        pkt = buf->pkt;
 +            pkt->result != Packet::Nacked) {
 +        PacketPtr funcPkt = new Packet(pkt->req, MemCmd::WriteReq,
 +                            Packet::Broadcast);
 +        funcPkt->dataStatic(pkt->getPtr<uint8_t>());
 +        sendFunctional(funcPkt);
 +        pkt->cmd = MemCmd::WriteReq;
 +        delete funcPkt;
      }
  
      DPRINTF(BusBridge, "trySend: origSrc %d dest %d addr 0x%x\n",