diff -r f73034ecbeff -r b30da8fd99c0 src/mem/ruby/slicc_interface/AbstractController.cc --- a/src/mem/ruby/slicc_interface/AbstractController.cc Mon Feb 09 14:08:33 2015 -0600 +++ b/src/mem/ruby/slicc_interface/AbstractController.cc Mon Feb 09 16:08:34 2015 -0600 @@ -247,7 +247,7 @@ const DataBlock &block, int size) { RequestPtr req = new Request(addr.getAddress(), - RubySystem::getBlockSizeBytes(), 0, + size, 0, m_masterId); PacketPtr pkt = Packet::createWrite(req); @@ -293,6 +293,12 @@ std::shared_ptr msg = std::make_shared(clockEdge()); (*msg).m_Addr.setAddress(pkt->getAddr()); + + if (pkt->isWrite()) { + (*msg).m_Addr.makeLineAddress(); // Align addresses with partial writes + } + assert((*msg).m_Addr.getAddress() == (*msg).m_Addr.getLineAddress()); + (*msg).m_Sender = m_machineID; SenderState *s = dynamic_cast(pkt->senderState);