diff --git a/src/sys/vmm/memory.c b/src/sys/vmm/memory.c index aab43d1..49c8414 100644 --- a/src/sys/vmm/memory.c +++ b/src/sys/vmm/memory.c @@ -225,7 +225,7 @@ int freePage(uInt32 pageAddr) { int pageIndex = 0x0; - spinLock(&vmmSpinLock); + //spinLock(&vmmSpinLock); /* Find The Page Index To The Memory Map */ pageIndex = (pageAddr / 4096); @@ -242,7 +242,7 @@ /* Adjust The COW Counter */ adjustCowCounter(((uInt32) vmmMemoryMap[pageIndex].pageAddr), -1); } - spinUnlock(&vmmSpinLock); + //spinUnlock(&vmmSpinLock); /* Return */ return (0); } @@ -334,6 +334,9 @@ /*** $Log$ + Revision 1.7 2004/07/19 02:04:32 reddawg + memory.c: added spinlocks to vmmFindFreePage and vmmFreePage to prevent two tasks from possibly allocating the same page + Revision 1.6 2004/06/14 12:20:54 reddawg notes: many bugs repaired and ld works 100% now. diff --git a/src/sys/vmm/pagefault.c b/src/sys/vmm/pagefault.c index 9459937..c4d7a44 100644 --- a/src/sys/vmm/pagefault.c +++ b/src/sys/vmm/pagefault.c @@ -51,8 +51,9 @@ pageDir = (uInt32 *)parentPageDirAddr; //Get Memory Address For Violation asm volatile( - "movl %%cr2,%%eax\n" - "movl %%eax,%0\n" + "movl %%cr2,%%eax \n" + "movl %%eax,%0 \n" + "sti \n" /* Solution suggested by geist */ : "=g" (memAddr) ); @@ -152,6 +153,9 @@ /*** $Log$ + Revision 1.3 2004/07/19 02:05:26 reddawg + vmmPageFault: had a potential memory leak here for one page it was still using sysID on certain COW scenarios + Revision 1.2 2004/06/10 22:23:56 reddawg Volatiles