X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm_paging.c;h=972c800cb996b3a506a626ef47f3b290d892c6f6;hb=cfd5e43722796b4951faf721c64f3a74ab81ff2b;hp=1030fe229d856e3092081945e8cb726c03ad5235;hpb=14fa18cc54571eaa7aaa0f7d55677bdb4dad81a6;p=palacios.git diff --git a/palacios/src/palacios/vmm_paging.c b/palacios/src/palacios/vmm_paging.c index 1030fe2..972c800 100644 --- a/palacios/src/palacios/vmm_paging.c +++ b/palacios/src/palacios/vmm_paging.c @@ -46,7 +46,7 @@ static pt_entry_type_t pte64_lookup(pte64_t * pt, addr_t addr, addr_t * entry); -#ifndef CONFIG_DEBUG_SHADOW_PAGING +#ifndef V3_CONFIG_DEBUG_SHADOW_PAGING #undef PrintDebug #define PrintDebug(fmt, args...) #endif @@ -67,11 +67,11 @@ void delete_page_tables_32(pde32_t * pde) { // We double cast, first to an addr_t to handle 64 bit issues, then to the pointer PrintDebug("Deleting PT Page %d (%p)\n", i, (void *)(addr_t)BASE_TO_PAGE_ADDR_4KB(pde[i].pt_base_addr)); - V3_FreePage((void *)(addr_t)BASE_TO_PAGE_ADDR_4KB(pde[i].pt_base_addr)); + V3_FreePages((void *)(addr_t)BASE_TO_PAGE_ADDR_4KB(pde[i].pt_base_addr), 1); } } - V3_FreePage(V3_PAddr(pde)); + V3_FreePages(V3_PAddr(pde), 1); } void delete_page_tables_32pae(pdpe32pae_t * pdpe) { @@ -96,13 +96,13 @@ void delete_page_tables_32pae(pdpe32pae_t * pdpe) { continue; } - V3_FreePage((void *)(addr_t)BASE_TO_PAGE_ADDR_4KB(pde[j].pt_base_addr)); + V3_FreePages((void *)(addr_t)BASE_TO_PAGE_ADDR_4KB(pde[j].pt_base_addr), 1); } - V3_FreePage(V3_PAddr(pde)); + V3_FreePages(V3_PAddr(pde), 1); } - V3_FreePage(V3_PAddr(pdpe)); + V3_FreePages(V3_PAddr(pdpe), 1); } void delete_page_tables_64(pml4e64_t * pml4) { @@ -133,16 +133,16 @@ void delete_page_tables_64(pml4e64_t * pml4) { continue; } - V3_FreePage((void *)(addr_t)BASE_TO_PAGE_ADDR_4KB(pde[k].pt_base_addr)); + V3_FreePages((void *)(addr_t)BASE_TO_PAGE_ADDR_4KB(pde[k].pt_base_addr), 1); } - V3_FreePage(V3_PAddr(pde)); + V3_FreePages(V3_PAddr(pde), 1); } - V3_FreePage(V3_PAddr(pdpe)); + V3_FreePages(V3_PAddr(pdpe), 1); } - V3_FreePage(V3_PAddr(pml4)); + V3_FreePages(V3_PAddr(pml4), 1); } @@ -971,9 +971,7 @@ int v3_drill_guest_pt_32(struct guest_info * info, v3_reg_t guest_cr3, addr_t va addr_t large_page_va = 0; if (v3_gpa_to_hva(info, large_page_pa, &large_page_va) == -1) { - PrintError("Could not get virtual address of Guest Page 4MB (PA=%p)\n", - (void *)large_page_va); - return -1; + large_page_va = 0 ; } @@ -1003,9 +1001,7 @@ int v3_drill_guest_pt_32(struct guest_info * info, v3_reg_t guest_cr3, addr_t va addr_t page_va; if (v3_gpa_to_hva(info, page_pa, &page_va) == -1) { - PrintError("Could not get virtual address of Guest Page 4KB (PA=%p)\n", - (void *)page_pa); - return -1; + page_va = 0; } if ((ret = callback(info, PAGE_4KB, vaddr, page_va, page_pa, private_data)) != 0) { @@ -1070,9 +1066,7 @@ int v3_drill_guest_pt_32pae(struct guest_info * info, v3_reg_t guest_cr3, addr_t addr_t large_page_va = 0; if (v3_gpa_to_hva(info, large_page_pa, &large_page_va) == -1) { - PrintDebug("Could not get virtual address of Guest Page 2MB (PA=%p)\n", - (void *)large_page_va); - + large_page_va = 0; } if ((ret == callback(info, PAGE_2MB, vaddr, large_page_va, large_page_pa, private_data)) != 0) { @@ -1101,9 +1095,7 @@ int v3_drill_guest_pt_32pae(struct guest_info * info, v3_reg_t guest_cr3, addr_t addr_t page_va; if (v3_gpa_to_hva(info, page_pa, &page_va) == -1) { - PrintError("Could not get virtual address of Guest Page 4KB (PA=%p)\n", - (void *)page_pa); - return -1; + page_va = 0; } if ((ret = callback(info, PAGE_4KB, vaddr, page_va, page_pa, private_data)) != 0) { @@ -1169,9 +1161,7 @@ int v3_drill_guest_pt_64(struct guest_info * info, v3_reg_t guest_cr3, addr_t va addr_t large_page_va = 0; if (v3_gpa_to_hva(info, large_page_pa, &large_page_va) == -1) { - PrintDebug("Could not get virtual address of Guest Page 1GB (PA=%p)\n", - (void *)large_page_va); - + large_page_va = 0; } if ((ret == callback(info, PAGE_1GB, vaddr, large_page_va, large_page_pa, private_data)) != 0) { @@ -1204,9 +1194,7 @@ int v3_drill_guest_pt_64(struct guest_info * info, v3_reg_t guest_cr3, addr_t va addr_t large_page_va = 0; if (v3_gpa_to_hva(info, large_page_pa, &large_page_va) == -1) { - PrintDebug("Could not get virtual address of Guest Page 2MB (PA=%p)\n", - (void *)large_page_va); - + large_page_va = 0; } if ((ret == callback(info, PAGE_2MB, vaddr, large_page_va, large_page_pa, private_data)) != 0) { @@ -1235,9 +1223,7 @@ int v3_drill_guest_pt_64(struct guest_info * info, v3_reg_t guest_cr3, addr_t va addr_t page_va; if (v3_gpa_to_hva(info, page_pa, &page_va) == -1) { - PrintError("Could not get virtual address of Guest Page 4KB (PA=%p)\n", - (void *)page_pa); - return -1; + page_va = 0; } if ((ret = callback(info, PAGE_4KB, vaddr, page_va, page_pa, private_data)) != 0) {