diff --git a/reactos/ntoskrnl/include/internal/mm.h b/reactos/ntoskrnl/include/internal/mm.h index 8141b827264..698fa5a4dac 100644 --- a/reactos/ntoskrnl/include/internal/mm.h +++ b/reactos/ntoskrnl/include/internal/mm.h @@ -1569,7 +1569,7 @@ MiSyncThreadProcessViews(IN PVOID Process, } -extern MADDRESS_SPACE MmKernelAddressSpace; +extern PMADDRESS_SPACE MmKernelAddressSpace; FORCEINLINE VOID @@ -1591,7 +1591,7 @@ FORCEINLINE PEPROCESS MmGetAddressSpaceOwner(IN PMADDRESS_SPACE AddressSpace) { - if (AddressSpace == &MmKernelAddressSpace) return NULL; + if (AddressSpace == MmKernelAddressSpace) return NULL; return CONTAINING_RECORD(AddressSpace, EPROCESS, VadRoot); } @@ -1606,7 +1606,7 @@ FORCEINLINE PMADDRESS_SPACE MmGetKernelAddressSpace(VOID) { - return &MmKernelAddressSpace; + return MmKernelAddressSpace; } #endif diff --git a/reactos/ntoskrnl/mm/aspace.c b/reactos/ntoskrnl/mm/aspace.c index d6d0ccf2128..56b880ad26c 100644 --- a/reactos/ntoskrnl/mm/aspace.c +++ b/reactos/ntoskrnl/mm/aspace.c @@ -19,39 +19,21 @@ /* GLOBALS ******************************************************************/ -MADDRESS_SPACE MmKernelAddressSpace; +PMADDRESS_SPACE MmKernelAddressSpace; ULONGLONG Cycles; ULONG TimeDelta; /* FUNCTIONS *****************************************************************/ -VOID -INIT_FUNCTION -NTAPI -MmInitializeKernelAddressSpace(VOID) -{ - MmInitializeAddressSpace(NULL, &MmKernelAddressSpace); -} - NTSTATUS NTAPI MmInitializeAddressSpace(PEPROCESS Process, PMADDRESS_SPACE AddressSpace) { AddressSpace->MemoryAreaRoot = NULL; - - if (Process != NULL) - { - AddressSpace->Lock = (PEX_PUSH_LOCK)&Process->AddressCreationLock; - ExInitializePushLock((PULONG_PTR)AddressSpace->Lock); - } - else - { - AddressSpace->Lock = (PEX_PUSH_LOCK)&PsGetCurrentProcess()->AddressCreationLock; - ExInitializePushLock((PULONG_PTR)AddressSpace->Lock); - } - + AddressSpace->Lock = (PEX_PUSH_LOCK)&Process->AddressCreationLock; + ExInitializePushLock((PULONG_PTR)AddressSpace->Lock); return STATUS_SUCCESS; } diff --git a/reactos/ntoskrnl/mm/mminit.c b/reactos/ntoskrnl/mm/mminit.c index c1bcd3349bf..b606a086a3b 100644 --- a/reactos/ntoskrnl/mm/mminit.c +++ b/reactos/ntoskrnl/mm/mminit.c @@ -368,6 +368,7 @@ NTAPI MmInit1(VOID) { PLDR_DATA_TABLE_ENTRY LdrEntry; + LARGE_INTEGER Dummy; /* Dump memory descriptors */ if (MiDbgEnableMdDump) MiDbgDumpMemoryDescriptors(); @@ -395,7 +396,8 @@ MmInit1(VOID) DbgPrint("Used memory %dKb\n", (MmNumberOfPhysicalPages * PAGE_SIZE) / 1024); /* Initialize the kernel address space */ - MmInitializeKernelAddressSpace(); + MmInitializeHandBuiltProcess(PsGetCurrentProcess(), &Dummy); + MmKernelAddressSpace = MmGetCurrentAddressSpace(); MmInitGlobalKernelPageDirectory(); /* Get kernel address boundaries */ @@ -456,7 +458,6 @@ NTAPI MmInitSystem(IN ULONG Phase, IN PLOADER_PARAMETER_BLOCK LoaderBlock) { - ULONG Flags = 0; if (Phase == 0) { /* Initialize Mm bootstrap */ @@ -465,13 +466,6 @@ MmInitSystem(IN ULONG Phase, /* Initialize the Loader Lock */ KeInitializeMutant(&MmSystemLoadLock, FALSE); - /* Initialize the address space for the system process */ - MmInitializeProcessAddressSpace(PsGetCurrentProcess(), - NULL, - NULL, - &Flags, - NULL); - /* Reload boot drivers */ MiReloadBootLoadedDrivers(LoaderBlock);