X-Git-Url: http://git.jankratochvil.net/?p=reactos.git;a=blobdiff_plain;f=ntoskrnl%2Fmm%2Fiospace.c;fp=ntoskrnl%2Fmm%2Fiospace.c;h=645a778dbd75050ffce3f2bdd084d4c9e5e7bbc9;hp=a1b55a9f0fc77de3e09213540ada1d65b269915e;hb=d378c68f5a9bb25c9e671dacd482d2e25d211df3;hpb=83300d602d72c8c64d110c3086f98fd970d3ba07 diff --git a/ntoskrnl/mm/iospace.c b/ntoskrnl/mm/iospace.c index a1b55a9..645a778 100644 --- a/ntoskrnl/mm/iospace.c +++ b/ntoskrnl/mm/iospace.c @@ -96,7 +96,7 @@ MmMapIoSpace (IN PHYSICAL_ADDRESS PhysicalAddress, { Attributes |= (PAGE_NOCACHE | PAGE_WRITETHROUGH); } - for (i = 0; (i < ((NumberOfBytes + PAGE_SIZE - 1) / PAGE_SIZE)); i++) + for (i = 0; (i < (PAGE_ROUND_UP(NumberOfBytes) / PAGE_SIZE)); i++) { Status = MmCreateVirtualMappingForKernel(Result + (i * PAGE_SIZE), @@ -141,11 +141,13 @@ VOID STDCALL MmUnmapIoSpace (IN PVOID BaseAddress, IN ULONG NumberOfBytes) { - (VOID)MmFreeMemoryArea(&PsGetCurrentProcess()->AddressSpace, - (PVOID)(((ULONG)BaseAddress / PAGE_SIZE) * PAGE_SIZE), - NumberOfBytes, - NULL, - NULL); + MmLockAddressSpace(MmGetKernelAddressSpace()); + MmFreeMemoryArea(MmGetKernelAddressSpace(), + (PVOID)(((ULONG)BaseAddress / PAGE_SIZE) * PAGE_SIZE), + NumberOfBytes, + NULL, + NULL); + MmUnlockAddressSpace(MmGetKernelAddressSpace()); }