mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +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
|
||||
}
|
||||
|
||||
/* Handle shared user page, which doesn't have a VAD / MemoryArea */
|
||||
if (PAGE_ALIGN(Address) == (PVOID)MM_SHARED_USER_DATA_VA)
|
||||
/* Handle shared user page / page table, which don't have a VAD / MemoryArea */
|
||||
if ((PAGE_ALIGN(Address) == (PVOID)MM_SHARED_USER_DATA_VA) ||
|
||||
MI_IS_PAGE_TABLE_ADDRESS(Address))
|
||||
{
|
||||
/* This is an ARM3 fault */
|
||||
DPRINT("ARM3 fault %p\n", MemoryArea);
|
||||
DPRINT("ARM3 fault %p\n", Address);
|
||||
return MmArmAccessFault(FaultCode, Address, Mode, TrapInformation);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue