X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm_paging.c;h=95240ad1cf814bd6637763b74eba40adb6914a5a;hp=8eefd5373370bdd2fef3bb676d61a21568833c52;hb=858a36782662b04562c0d83db75e11cb55e8b91b;hpb=684409c4ad29c0f06167bebf2bb51e21374a6840 diff --git a/palacios/src/palacios/vmm_paging.c b/palacios/src/palacios/vmm_paging.c index 8eefd53..95240ad 100644 --- a/palacios/src/palacios/vmm_paging.c +++ b/palacios/src/palacios/vmm_paging.c @@ -71,10 +71,12 @@ pde32_entry_type_t pde32_lookup(pde32_t * pd, addr_t addr, addr_t * entry) { *entry = 0; return PDE32_ENTRY_NOT_PRESENT; } else { - *entry = PAGE_ADDR(pde_entry->pt_base_addr); - + if (pde_entry->large_page) { - *entry += PAGE_OFFSET(addr); + pde32_4MB_t * large_pde = (pde32_4MB_t *)pde_entry; + + *entry = PDE32_4MB_T_ADDR(*large_pde); + *entry += PD32_4MB_PAGE_OFFSET(addr); return PDE32_ENTRY_LARGE_PAGE; } else { *entry = PDE32_T_ADDR(*pde_entry);