Don't try to resolve user mode page faults in the very early boot phase.
Modified: trunk/reactos/ntoskrnl/mm/mm.c

Modified: trunk/reactos/ntoskrnl/mm/mm.c
--- trunk/reactos/ntoskrnl/mm/mm.c	2005-05-28 07:26:38 UTC (rev 15557)
+++ trunk/reactos/ntoskrnl/mm/mm.c	2005-05-28 07:32:23 UTC (rev 15558)
@@ -193,12 +193,12 @@
 
    if (KeGetCurrentIrql() >= DISPATCH_LEVEL)
    {
-      DbgPrint("Page fault at high IRQL was %d\n", KeGetCurrentIrql());
+      CPRINT("Page fault at high IRQL was %d\n", KeGetCurrentIrql());
       return(STATUS_UNSUCCESSFUL);
    }
    if (PsGetCurrentProcess() == NULL)
    {
-      DbgPrint("No current process\n");
+      CPRINT("No current process\n");
       return(STATUS_UNSUCCESSFUL);
    }
 
@@ -316,7 +316,7 @@
 
    if (KeGetCurrentIrql() >= DISPATCH_LEVEL)
    {
-      DbgPrint("Page fault at high IRQL was %d\n", KeGetCurrentIrql());
+      CPRINT("Page fault at high IRQL was %d, address %x\n", KeGetCurrentIrql(), Address);
       return(STATUS_UNSUCCESSFUL);
    }
    if (PsGetCurrentProcess() == NULL)
@@ -324,8 +324,11 @@
       /* Allow this! It lets us page alloc much earlier! It won't be needed 
        * after my init patch anyways
        */
-      DbgPrint("No current process\n");
-      //return(STATUS_UNSUCCESSFUL);
+      CPRINT("No current process\n");
+      if (Address < KERNEL_BASE)
+      {
+         return(STATUS_UNSUCCESSFUL);
+      }
    }
 
    /*
@@ -338,7 +341,7 @@
        */
       if (Mode != KernelMode)
       {
-         DbgPrint("%s:%d\n",__FILE__,__LINE__);
+	 CPRINT("Address: %x\n", Address);
          return(STATUS_UNSUCCESSFUL);
       }
       AddressSpace = MmGetKernelAddressSpace();