diff options
Diffstat (limited to 'src/cpu/kvm/x86_cpu.cc')
-rw-r--r-- | src/cpu/kvm/x86_cpu.cc | 14 |
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; } |