Author: dgorbachev
Date: Tue Mar 10 20:47:11 2009
New Revision: 39934
URL: 
http://svn.reactos.org/svn/reactos?rev=39934&view=rev
Log:
Fix bug #4249 and crash in QEMU. Alex Ionescu, bug #4249.
Modified:
    trunk/reactos/ntoskrnl/mm/i386/page.c
    trunk/reactos/ntoskrnl/mm/section.c
Modified: trunk/reactos/ntoskrnl/mm/i386/page.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/i386/page.c?re…
==============================================================================
--- trunk/reactos/ntoskrnl/mm/i386/page.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/i386/page.c [iso-8859-1] Tue Mar 10 20:47:11 2009
@@ -1086,7 +1086,7 @@
     if (Process != NULL && Process != PsGetCurrentProcess())
     {
-        Pde =
MmCreateHyperspaceMapping(PTE_TO_PFN(Process->Pcb.DirectoryTableBase[0]));
+        Pde =
MiMapPagesToZeroInHyperSpace(PTE_TO_PFN(Process->Pcb.DirectoryTableBase[0]));
     }
     else
     {
@@ -1101,7 +1101,7 @@
     }
     if (Pde != (PULONG)PAGEDIRECTORY_MAP)
     {
-        MmDeleteHyperspaceMapping(Pde);
+        MiUnmapPagesInZeroSpace(Pde);
     }
 }
Modified: trunk/reactos/ntoskrnl/mm/section.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/section.c?rev=…
==============================================================================
--- trunk/reactos/ntoskrnl/mm/section.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/section.c [iso-8859-1] Tue Mar 10 20:47:11 2009
@@ -691,7 +691,7 @@
             return Status;
          }
       }
-      PageAddr = MmCreateHyperspaceMapping(*Page);
+      PageAddr = MiMapPagesToZeroInHyperSpace(*Page);
       CacheSegOffset = BaseOffset + CacheSeg->Bcb->CacheSegmentSize - FileOffset;
       Length = RawLength - SegOffset;
       if (Length <= CacheSegOffset && Length <= PAGE_SIZE)
@@ -714,7 +714,7 @@
                                        &CacheSeg);
          if (!NT_SUCCESS(Status))
          {
-            MmDeleteHyperspaceMapping(PageAddr);
+            MiUnmapPagesInZeroSpace(PageAddr);
             return(Status);
          }
          if (!UptoDate)
@@ -727,7 +727,7 @@
             if (!NT_SUCCESS(Status))
             {
                CcRosReleaseCacheSegment(Bcb, CacheSeg, FALSE, FALSE, FALSE);
-               MmDeleteHyperspaceMapping(PageAddr);
+               MiUnmapPagesInZeroSpace(PageAddr);
                return Status;
             }
          }
@@ -741,7 +741,7 @@
          }
       }
       CcRosReleaseCacheSegment(Bcb, CacheSeg, TRUE, FALSE, FALSE);
-      MmDeleteHyperspaceMapping(PageAddr);
+      MiUnmapPagesInZeroSpace(PageAddr);
    }
    return(STATUS_SUCCESS);
 }