Author: ion
Date: Thu Sep 20 07:44:43 2012
New Revision: 57348
URL: http://svn.reactos.org/svn/reactos?rev=57348&view=rev
Log:
[NTOSKRNL]: CORE-6675 #resolve #time 5h #comment Fixed the ASSERTion by increasing system view space to 36MB instead of 20MB. Note that the real bug is that we never free desktop heaps. But why fix the bug when the only thing people care about is "fix the tests!". So let's fix the tests instead of the bug :) Also, fix a bug in MiCheckForSessionPde which broke user32_apitest. All should be good now.
Modified:
trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c
Modified: trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/ARM3/pagfault.…
==============================================================================
--- trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c [iso-8859-1] Thu Sep 20 07:44:43 2012
@@ -153,7 +153,7 @@
{
MMPTE TempPde;
PMMPTE PointerPde;
- PVOID SessionPageTable;
+ PVOID SessionAddress;
ULONG Index;
/* Is this a session PTE? */
@@ -171,12 +171,12 @@
}
/* Now get the session-specific page table for this address */
- SessionPageTable = MiPteToAddress(Address);
- PointerPde = MiPteToAddress(Address);
+ SessionAddress = MiPteToAddress(Address);
+ PointerPde = MiAddressToPde(Address);
if (PointerPde->u.Hard.Valid) return STATUS_WAIT_1;
/* It's not valid, so find it in the page table array */
- Index = ((ULONG_PTR)SessionPageTable - (ULONG_PTR)MmSessionBase) >> 22;
+ Index = ((ULONG_PTR)SessionAddress - (ULONG_PTR)MmSessionBase) >> 22;
TempPde.u.Long = MmSessionSpace->PageTables[Index].u.Long;
if (TempPde.u.Hard.Valid)
{
@@ -187,7 +187,7 @@
/* We don't seem to have allocated a page table for this address yet? */
DbgPrint("MiCheckPdeForSessionSpace: No Session PDE for PTE %p, %p\n",
- PointerPde->u.Long, SessionPageTable);
+ PointerPde->u.Long, SessionAddress);
DbgBreakPoint();
return STATUS_ACCESS_VIOLATION;
}