X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm_direct_paging_64.h;h=c428352dcd85dae0261c606a3ab7a17f3daa10a6;hb=40d79cccadcdeb5b4744bf965030b40b0d5cb1fb;hp=baae5d54d223b792df8f25e42b85bdfeaf574009;hpb=fcc9962fe5d3b877f8f25de8745d0d4d1eaf394e;p=palacios.git diff --git a/palacios/src/palacios/vmm_direct_paging_64.h b/palacios/src/palacios/vmm_direct_paging_64.h index baae5d5..c428352 100644 --- a/palacios/src/palacios/vmm_direct_paging_64.h +++ b/palacios/src/palacios/vmm_direct_paging_64.h @@ -218,6 +218,8 @@ static inline int invalidate_addr_64(struct guest_info * core, addr_t inv_addr) return 0; } else if (pdpe[pdpe_index].large_page == 1) { // 1GiB pdpe[pdpe_index].present = 0; + pdpe[pdpe_index].writable = 0; + pdpe[pdpe_index].user_page = 0; return 0; } @@ -227,12 +229,16 @@ static inline int invalidate_addr_64(struct guest_info * core, addr_t inv_addr) return 0; } else if (pde[pde_index].large_page == 1) { // 2MiB pde[pde_index].present = 0; + pde[pde_index].writable = 0; + pde[pde_index].user_page = 0; return 0; } pte = V3_VAddr((void*)BASE_TO_PAGE_ADDR(pde[pde_index].pt_base_addr)); pte[pte_index].present = 0; // 4KiB + pte[pte_index].writable = 0; + pte[pte_index].user_page = 0; return 0; }