summaryrefslogtreecommitdiff
path: root/src/cpu/kvm/x86_cpu.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/kvm/x86_cpu.cc')
-rw-r--r--src/cpu/kvm/x86_cpu.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/cpu/kvm/x86_cpu.cc b/src/cpu/kvm/x86_cpu.cc
index 9e9115ef5..f8f66af2f 100644
--- a/src/cpu/kvm/x86_cpu.cc
+++ b/src/cpu/kvm/x86_cpu.cc
@@ -1344,20 +1344,20 @@ X86KvmCPU::handleKvmExitIO()
pAddr = X86ISA::x86IOAddress(port);
}
- Request io_req(pAddr, kvm_run.io.size, Request::UNCACHEABLE,
- dataMasterId());
- io_req.setContext(tc->contextId());
-
const MemCmd cmd(isWrite ? MemCmd::WriteReq : MemCmd::ReadReq);
// Temporarily lock and migrate to the event queue of the
// VM. This queue is assumed to "own" all devices we need to
// access if running in multi-core mode.
EventQueue::ScopedMigration migrate(vm.eventQueue());
for (int i = 0; i < count; ++i) {
- Packet pkt(&io_req, cmd);
+ RequestPtr io_req = new Request(pAddr, kvm_run.io.size,
+ Request::UNCACHEABLE, dataMasterId());
+ io_req->setContext(tc->contextId());
+
+ PacketPtr pkt = new Packet(io_req, cmd);
- pkt.dataStatic(guestData);
- delay += dataPort.sendAtomic(&pkt);
+ pkt->dataStatic(guestData);
+ delay += dataPort.submitIO(pkt);
guestData += kvm_run.io.size;
}