Fix wrong address mask (page directory vs. page table).
This commit is contained in:
@@ -574,8 +574,7 @@ ARMVMTranslationMap32Bit::Query(addr_t va, phys_addr_t *_physical,
|
|||||||
pd[index] & ARM_PDE_ADDRESS_MASK);
|
pd[index] & ARM_PDE_ADDRESS_MASK);
|
||||||
page_table_entry entry = pt[VADDR_TO_PTENT(va)];
|
page_table_entry entry = pt[VADDR_TO_PTENT(va)];
|
||||||
|
|
||||||
*_physical = (entry & ARM_PDE_ADDRESS_MASK)
|
*_physical = (entry & ARM_PTE_ADDRESS_MASK) | VADDR_TO_PGOFF(va);
|
||||||
| VADDR_TO_PGOFF(va);
|
|
||||||
|
|
||||||
#if 0 //IRA
|
#if 0 //IRA
|
||||||
// read in the page state flags
|
// read in the page state flags
|
||||||
@@ -622,8 +621,8 @@ ARMVMTranslationMap32Bit::QueryInterrupt(addr_t va, phys_addr_t *_physical,
|
|||||||
pd[index] & ARM_PDE_ADDRESS_MASK);
|
pd[index] & ARM_PDE_ADDRESS_MASK);
|
||||||
page_table_entry entry = pt[VADDR_TO_PTENT(va)];
|
page_table_entry entry = pt[VADDR_TO_PTENT(va)];
|
||||||
|
|
||||||
*_physical = (entry & ARM_PDE_ADDRESS_MASK)
|
*_physical = (entry & ARM_PTE_ADDRESS_MASK) | VADDR_TO_PGOFF(va);
|
||||||
| VADDR_TO_PGOFF(va);
|
|
||||||
#if 0
|
#if 0
|
||||||
// read in the page state flags
|
// read in the page state flags
|
||||||
if ((entry & ARM_PTE_USER) != 0) {
|
if ((entry & ARM_PTE_USER) != 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user