misc: missing override specifier
[gem5.git] / src / dev / dma_device.cc
index f6f751c05edb1bb03b7552f95e57b1adebd05aff..047eef1d70d91c256cb8a8623a22191d492ac58d 100644 (file)
@@ -55,7 +55,7 @@
 
 DmaPort::DmaPort(MemObject *dev, System *s)
     : MasterPort(dev->name() + ".dma", dev),
-      device(dev), sys(s), masterId(s->getMasterId(dev->name())),
+      device(dev), sys(s), masterId(s->getMasterId(dev)),
       sendEvent([this]{ sendDma(); }, dev->name()),
       pendingCount(0), inRetry(false)
 { }
@@ -95,8 +95,7 @@ DmaPort::handleResp(PacketPtr pkt, Tick delay)
         delete state;
     }
 
-    // delete the request that we created and also the packet
-    delete pkt->req;
+    // delete the packet
     delete pkt;
 
     // we might be drained at this point, if so signal the drain event
@@ -165,7 +164,10 @@ DmaPort::dmaAction(Packet::Command cmd, Addr addr, int size, Event *event,
             event ? event->scheduled() : -1);
     for (ChunkGenerator gen(addr, size, sys->cacheLineSize());
          !gen.done(); gen.next()) {
-        req = new Request(gen.addr(), gen.size(), flag, masterId);
+
+        req = std::make_shared<Request>(
+            gen.addr(), gen.size(), flag, masterId);
+
         req->taskId(ContextSwitchTaskId::DMA);
         PacketPtr pkt = new Packet(req, cmd);
 
@@ -260,13 +262,13 @@ DmaPort::sendDma()
         panic("Unknown memory mode.");
 }
 
-BaseMasterPort &
-DmaDevice::getMasterPort(const std::string &if_name, PortID idx)
+Port &
+DmaDevice::getPort(const std::string &if_name, PortID idx)
 {
     if (if_name == "dma") {
         return dmaPort;
     }
-    return PioDevice::getMasterPort(if_name, idx);
+    return PioDevice::getPort(if_name, idx);
 }