Author: sir_richard
Date: Sat Jun 5 16:59:50 2010
New Revision: 47589
URL:
http://svn.reactos.org/svn/reactos?rev=47589&view=rev
Log:
[NTOS]: Don't assume that ANY fault in the system address range, not associated to a
memory area, might be ARM3. Instead, since this hack only exists for early boot page pool
support, make only treat this as an ARM3 fault when it happens in the paged pool area or
higher. Leads to more direct Mm crashes when invalid page access happens, instead of
infinite "PAGE FAULT ON PAGE TABLES".
Modified:
trunk/reactos/ntoskrnl/mm/mmfault.c
Modified: trunk/reactos/ntoskrnl/mm/mmfault.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/mmfault.c?rev=…
==============================================================================
--- trunk/reactos/ntoskrnl/mm/mmfault.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/mmfault.c [iso-8859-1] Sat Jun 5 16:59:50 2010
@@ -284,13 +284,13 @@
* can go away.
*/
MemoryArea = MmLocateMemoryAreaByAddress(MmGetKernelAddressSpace(), Address);
- if ((!(MemoryArea) && ((ULONG_PTR)Address >=
(ULONG_PTR)MmSystemRangeStart)) ||
+ if ((!(MemoryArea) && ((ULONG_PTR)Address >= (ULONG_PTR)MmPagedPoolStart))
||
((MemoryArea) && (MemoryArea->Type == MEMORY_AREA_OWNED_BY_ARM3)))
{
//
// Hand it off to more competent hands...
//
- DPRINT1("ARM3 fault\n");
+ DPRINT1("ARM3 fault %p\n", MemoryArea);
return MmArmAccessFault(StoreInstruction, Address, Mode, TrapInformation);
}