From ee22bb572a701ba2e172d1f95a306f880e38c2cc Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Sun, 27 Mar 2011 17:09:51 -0500 Subject: Make VMM more resilient to different image sizes. --- src/kernel/vmmmgr.C | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/kernel') diff --git a/src/kernel/vmmmgr.C b/src/kernel/vmmmgr.C index f47b92059..34806a19b 100644 --- a/src/kernel/vmmmgr.C +++ b/src/kernel/vmmmgr.C @@ -79,9 +79,9 @@ void VmmManager::initPTEs() { access = READ_O_ACCESS; } - volatile pte_t& pte = getPte(i, 0); + volatile pte_t& pte = getPte(i % PTEG_COUNT, i / PTEG_COUNT); defaultPte(pte); - setTid(LinearSpace, pte); + setTid(i / PTEG_COUNT, pte); setAccess(access, pte); setPage(i, pte); setValid(true, pte); @@ -106,7 +106,7 @@ bool VmmManager::_pteMiss(task_t* t) uint64_t effPid = effAddr / FULL_MEM_SIZE; - if (effPid == LinearSpace) + if (effPid <= LinearSpace) { lock.unlock(); return false; // Should not get this exception in Linear space -- cgit v1.2.1