Changeset 79


Ignore:
Timestamp:
Jun 27, 2017, 5:20:55 PM (4 years ago)
Author:
max@…
Message:

invalidate the page directly

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/hal/x86_64/core/hal_gpt.c

    r51 r79  
    8181        XASSERT(va == tmpva || PTE_BASE[pl1_i(va)] == 0);
    8282        PTE_BASE[pl1_i(va)] = (pa & PG_FRAME) | PG_V | PG_KW | PG_NX;
     83        invlpg(va);
    8384}
    8485
     
    8889        for (i = 0; i < n; i++) {
    8990                hal_gpt_enter(va + i * PAGE_SIZE, pa + i * PAGE_SIZE);
    90                 invlpg(va + i * PAGE_SIZE);
    9191        }
    9292}
     
    9797        XASSERT(PTE_BASE[pl1_i(va)] != 0);
    9898        PTE_BASE[pl1_i(va)] = 0;
     99        invlpg(va);
    99100}
    100101
     
    104105        for (i = 0; i < n; i++) {
    105106                hal_gpt_leave(va + i * PAGE_SIZE);
    106                 invlpg(va + i * PAGE_SIZE);
    107107        }
    108108}
     
    146146                pa = L1page + i * PAGE_SIZE;
    147147                hal_gpt_enter(tmpva, pa);
    148                 invlpg(tmpva);
    149148
    150149                memset((void *)tmpva, 0, PAGE_SIZE);
     
    155154                pa = L2page + i * PAGE_SIZE;
    156155                hal_gpt_enter(tmpva, pa);
    157                 invlpg(tmpva);
    158156
    159157                memset((void *)tmpva, 0, PAGE_SIZE);
     
    164162                pa = L3page + i * PAGE_SIZE;
    165163                hal_gpt_enter(tmpva, pa);
    166                 invlpg(tmpva);
    167164
    168165                memset((void *)tmpva, 0, PAGE_SIZE);
     
    176173                pa &= PG_FRAME; /* rounddown to a page boundary */
    177174                hal_gpt_enter(tmpva, pa);
    178                 invlpg(tmpva);
    179175
    180176                pde = (pt_entry_t *)tmpva;
     
    190186                pa &= PG_FRAME; /* rounddown to a page boundary */
    191187                hal_gpt_enter(tmpva, pa);
    192                 invlpg(tmpva);
    193188
    194189                pde = (pt_entry_t *)tmpva;
Note: See TracChangeset for help on using the changeset viewer.