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 ---