mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 01:05:42 +00:00
[NTOS:MM] Handle page table faults in MmArmAccessFault
These faults are handled by ARM³ and we don't need to check for a memory area. They can be recursive faults (e.g. from MiDeleteSystemPageableVm), so we might be holding the WS lock already. Passing it straight to ARM³ allows to acquire the WS lock below to look up the memory area.
This commit is contained in:
parent
a8b57f0a6b
commit
84d0586ca4
1 changed files with 4 additions and 3 deletions
|
@ -227,11 +227,12 @@ MmAccessFault(IN ULONG FaultCode,
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle shared user page, which doesn't have a VAD / MemoryArea */
|
/* Handle shared user page / page table, which don't have a VAD / MemoryArea */
|
||||||
if (PAGE_ALIGN(Address) == (PVOID)MM_SHARED_USER_DATA_VA)
|
if ((PAGE_ALIGN(Address) == (PVOID)MM_SHARED_USER_DATA_VA) ||
|
||||||
|
MI_IS_PAGE_TABLE_ADDRESS(Address))
|
||||||
{
|
{
|
||||||
/* This is an ARM3 fault */
|
/* This is an ARM3 fault */
|
||||||
DPRINT("ARM3 fault %p\n", MemoryArea);
|
DPRINT("ARM3 fault %p\n", Address);
|
||||||
return MmArmAccessFault(FaultCode, Address, Mode, TrapInformation);
|
return MmArmAccessFault(FaultCode, Address, Mode, TrapInformation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue