diff --git a/reactos/ntoskrnl/mm/ARM3/arm/init.c b/reactos/ntoskrnl/mm/ARM3/arm/init.c index e16b7b83441..091d0cb7b5e 100644 --- a/reactos/ntoskrnl/mm/ARM3/arm/init.c +++ b/reactos/ntoskrnl/mm/ARM3/arm/init.c @@ -41,7 +41,7 @@ ULONG MmSessionPoolSize; ULONG MmSessionImageSize; PVOID MiSystemViewStart; ULONG MmSystemViewSize; -PFN_NUMBER MmSystemPageDirectory; +PFN_NUMBER MmSystemPageDirectory[PD_COUNT]; PMMPTE MmSystemPagePtes; ULONG MmNumberOfSystemPtes; ULONG MxPfnAllocation; diff --git a/reactos/ntoskrnl/mm/ARM3/mminit.c b/reactos/ntoskrnl/mm/ARM3/mminit.c index d21adc08758..82efa5c5075 100644 --- a/reactos/ntoskrnl/mm/ARM3/mminit.c +++ b/reactos/ntoskrnl/mm/ARM3/mminit.c @@ -151,7 +151,7 @@ ULONG MmSystemViewSize; // map paged pool PDEs into external processes when they fault on a paged pool // address. // -PFN_NUMBER MmSystemPageDirectory; +PFN_NUMBER MmSystemPageDirectory[PD_COUNT]; PMMPTE MmSystemPagePtes; // @@ -1483,7 +1483,8 @@ MiBuildPagedPool(VOID) // Get the page frame number for the system page directory // PointerPte = MiAddressToPte(PDE_BASE); - MmSystemPageDirectory = PFN_FROM_PTE(PointerPte); + ASSERT(PD_COUNT == 1); + MmSystemPageDirectory[0] = PFN_FROM_PTE(PointerPte); // // Allocate a system PTE which will hold a copy of the page directory @@ -1500,7 +1501,8 @@ MiBuildPagedPool(VOID) // way). // TempPte = ValidKernelPte; - TempPte.u.Hard.PageFrameNumber = MmSystemPageDirectory; + ASSERT(PD_COUNT == 1); + TempPte.u.Hard.PageFrameNumber = MmSystemPageDirectory[0]; ASSERT(PointerPte->u.Hard.Valid == 0); ASSERT(TempPte.u.Hard.Valid == 1); *PointerPte = TempPte;