update for HEAD-2002110701
[reactos.git] / ntoskrnl / mm / ncache.c
index 2ff2129..d013d53 100644 (file)
@@ -71,7 +71,7 @@ MmAllocateNonCachedMemory(IN ULONG NumberOfBytes)
      }
    Attributes = PAGE_READWRITE | PAGE_SYSTEM | PAGE_NOCACHE | 
      PAGE_WRITETHROUGH;
-   for (i = 0; i <= (NumberOfBytes / PAGE_SIZE); i++)
+   for (i = 0; i < (PAGE_ROUND_UP(NumberOfBytes) / PAGE_SIZE); i++)
      {
        PHYSICAL_ADDRESS NPage;
 
@@ -125,11 +125,13 @@ MmFreeNonCachedPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address,
 VOID STDCALL MmFreeNonCachedMemory (IN PVOID BaseAddress,
                                    IN ULONG NumberOfBytes)
 {
+  MmLockAddressSpace(MmGetKernelAddressSpace());
   MmFreeMemoryArea (MmGetKernelAddressSpace(),
                    BaseAddress,
                    NumberOfBytes,
                    MmFreeNonCachedPage,
                    NULL);
+  MmUnlockAddressSpace(MmGetKernelAddressSpace());
 }