mirror of
https://github.com/reactos/reactos.git
synced 2025-07-29 11:52:49 +00:00
[NTOSKRNL]
Fix a bug in MmGetPhysicalAddress, that resulted in unwanted sign extension of physical addresses > 2GB. Will hopefully fix some uniata related issues. svn path=/trunk/; revision=62482
This commit is contained in:
parent
7ceac2f6a4
commit
a0173baa19
1 changed files with 2 additions and 2 deletions
|
@ -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,7 +5293,7 @@ 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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue