arm: Refactor aarch64 table walk logic to remove redundancy

The functional case is already handled within the fetchDescriptor()
function. We can thus use that function for both atomic and functional
mode when we start the table walk.

Change-Id: Iacaed28cd9024d259fd37a58150efd00ff94d86e
This commit is contained in:
Dylan Johnson 2016-08-02 10:38:02 +01:00
parent f9a6f68e0b
commit eac27759e7

View file

@ -992,21 +992,11 @@ TableWalker::processWalkAArch64()
stateQueues[start_lookup_level].size());
stateQueues[start_lookup_level].push_back(currState);
currState = NULL;
} else if (!currState->functional) {
} else {
fetchDescriptor(desc_addr, (uint8_t*)&currState->longDesc.data,
sizeof(uint64_t), flag, -1, NULL,
&TableWalker::doLongDescriptor);
f = currState->fault;
} else {
RequestPtr req = new Request(desc_addr, sizeof(uint64_t), flag,
masterId);
PacketPtr pkt = new Packet(req, MemCmd::ReadReq);
pkt->dataStatic((uint8_t*) &currState->longDesc.data);
port->sendFunctional(pkt);
doLongDescriptor();
delete req;
delete pkt;
f = currState->fault;
}
return f;