VMM: check if the entry is already present
This commit is contained in:
parent
682be58d97
commit
b334e1cd50
@ -275,13 +275,19 @@ void VMM::install_kernel_page_directory_into_address_space(AddressSpace& space)
|
||||
PageTable* kernel_last_pdp = (PageTable*)kernel_pml4->entries[511].get_address();
|
||||
PageTable* kernel_last_pd = (PageTable*)kernel_last_pdp->entries[511].get_address();
|
||||
|
||||
PageTable* space_last_pdp = (PageTable*)PMM::request_page();
|
||||
|
||||
PageDirectoryEntry& space_last_pdp_pde = space_pml4->entries[511];
|
||||
|
||||
PageTable* space_last_pdp;
|
||||
|
||||
if (!space_last_pdp_pde.present)
|
||||
{
|
||||
space_last_pdp = (PageTable*)PMM::request_page();
|
||||
|
||||
space_last_pdp_pde.present = true;
|
||||
space_last_pdp_pde.read_write = true;
|
||||
space_last_pdp_pde.set_address((uint64_t)space_last_pdp);
|
||||
}
|
||||
else { space_last_pdp = (PageTable*)space_last_pdp_pde.get_address(); }
|
||||
|
||||
PageDirectoryEntry& space_last_pd_pde = space_last_pdp->entries[511];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user