* Sync up to trunk HEAD (r62502).
[reactos.git] / ntoskrnl / mm / ARM3 / virtual.c
index 5fd8d04..0dc0196 100644 (file)
@@ -5283,7 +5283,7 @@ MmGetPhysicalAddress(PVOID Address)
         if (TempPde.u.Hard.LargePage)
         {
             /* Physical address is base page + large page offset */
-            PhysicalAddress.QuadPart = TempPde.u.Hard.PageFrameNumber << PAGE_SHIFT;
+            PhysicalAddress.QuadPart = (ULONG64)TempPde.u.Hard.PageFrameNumber << PAGE_SHIFT;
             PhysicalAddress.QuadPart += ((ULONG_PTR)Address & (PAGE_SIZE * PTE_PER_PAGE - 1));
             return PhysicalAddress;
         }
@@ -5293,12 +5293,13 @@ MmGetPhysicalAddress(PVOID Address)
         if (TempPte.u.Hard.Valid)
         {
             /* Physical address is base page + page offset */
-            PhysicalAddress.QuadPart = TempPte.u.Hard.PageFrameNumber << PAGE_SHIFT;
+            PhysicalAddress.QuadPart = (ULONG64)TempPte.u.Hard.PageFrameNumber << PAGE_SHIFT;
             PhysicalAddress.QuadPart += ((ULONG_PTR)Address & (PAGE_SIZE - 1));
             return PhysicalAddress;
         }
     }
 
+    KeRosDumpStackFrames(NULL, 20);
     DPRINT1("MM:MmGetPhysicalAddressFailed base address was %p\n", Address);
     PhysicalAddress.QuadPart = 0;
     return PhysicalAddress;