diff --git a/src/sys/vmm/paging.c b/src/sys/vmm/paging.c index b7916c4..649fbd3 100755 --- a/src/sys/vmm/paging.c +++ b/src/sys/vmm/paging.c @@ -160,11 +160,7 @@ //Check If Page COW Is Greater Then 0 If It Is Dec It If Not Free It if (memoryMap[pageIndex].cowCounter == 0) { //Set Page As Avail So It Can Be Used Again - /* - Here Is The Problem Area I Need To Do Some Extencive Testing - As To Why Im Freeing A Page That Shouldnt Be Freed - */ - //memoryMap[pageIndex].status = memAvail; + memoryMap[pageIndex].status = memAvail; memoryMap[pageIndex].cowCounter = 0x0; memoryMap[pageIndex].pid = -2; freePages++; @@ -205,8 +201,11 @@ pageTable = (uLong *)(tablesBaseAddress + (4096 * pageDirectoryIndex)); //Free The Physical Page If Flags Is 0 if (flags == 0) { - clearVirtualPage(pageAddr); - freePage((uLong)(pageTable[pageTableIndex] & 0xFFFFF000)); + /* ERROR + This is a problem need to figure out why + */ + //clearVirtualPage(pageAddr); + //freePage((uLong)(pageTable[pageTableIndex] & 0xFFFFF000)); } //Unmap The Page pageTable[pageTableIndex] = 0x0;