x86_cpu.cc (11793:ef606668d247) | x86_cpu.cc (12155:5dc92ea01323) |
---|---|
1/* 2 * Copyright (c) 2013 Andreas Sandberg 3 * All rights reserved 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 1332 unchanged lines hidden (view full) --- 1341 } else { 1342 pAddr = X86ISA::x86IOAddress(port); 1343 } 1344 } else { 1345 pAddr = X86ISA::x86IOAddress(port); 1346 } 1347 1348 const MemCmd cmd(isWrite ? MemCmd::WriteReq : MemCmd::ReadReq); | 1/* 2 * Copyright (c) 2013 Andreas Sandberg 3 * All rights reserved 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 1332 unchanged lines hidden (view full) --- 1341 } else { 1342 pAddr = X86ISA::x86IOAddress(port); 1343 } 1344 } else { 1345 pAddr = X86ISA::x86IOAddress(port); 1346 } 1347 1348 const MemCmd cmd(isWrite ? MemCmd::WriteReq : MemCmd::ReadReq); |
1349 // Temporarily lock and migrate to the event queue of the 1350 // VM. This queue is assumed to "own" all devices we need to 1351 // access if running in multi-core mode. 1352 EventQueue::ScopedMigration migrate(vm.eventQueue()); | 1349 // Temporarily lock and migrate to the device event queue to 1350 // prevent races in multi-core mode. 1351 EventQueue::ScopedMigration migrate(deviceEventQueue()); |
1353 for (int i = 0; i < count; ++i) { 1354 RequestPtr io_req = new Request(pAddr, kvm_run.io.size, 1355 Request::UNCACHEABLE, dataMasterId()); 1356 io_req->setContext(tc->contextId()); 1357 1358 PacketPtr pkt = new Packet(io_req, cmd); 1359 1360 pkt->dataStatic(guestData); --- 269 unchanged lines hidden --- | 1352 for (int i = 0; i < count; ++i) { 1353 RequestPtr io_req = new Request(pAddr, kvm_run.io.size, 1354 Request::UNCACHEABLE, dataMasterId()); 1355 io_req->setContext(tc->contextId()); 1356 1357 PacketPtr pkt = new Packet(io_req, cmd); 1358 1359 pkt->dataStatic(guestData); --- 269 unchanged lines hidden --- |