|
@@ -275,21 +275,23 @@ ia64_phys_addr_valid (unsigned long addr)
|
|
#define pmd_bad(pmd) (!ia64_phys_addr_valid(pmd_val(pmd)))
|
|
#define pmd_bad(pmd) (!ia64_phys_addr_valid(pmd_val(pmd)))
|
|
#define pmd_present(pmd) (pmd_val(pmd) != 0UL)
|
|
#define pmd_present(pmd) (pmd_val(pmd) != 0UL)
|
|
#define pmd_clear(pmdp) (pmd_val(*(pmdp)) = 0UL)
|
|
#define pmd_clear(pmdp) (pmd_val(*(pmdp)) = 0UL)
|
|
-#define pmd_page_kernel(pmd) ((unsigned long) __va(pmd_val(pmd) & _PFN_MASK))
|
|
|
|
|
|
+#define pmd_page_vaddr(pmd) ((unsigned long) __va(pmd_val(pmd) & _PFN_MASK))
|
|
#define pmd_page(pmd) virt_to_page((pmd_val(pmd) + PAGE_OFFSET))
|
|
#define pmd_page(pmd) virt_to_page((pmd_val(pmd) + PAGE_OFFSET))
|
|
|
|
|
|
#define pud_none(pud) (!pud_val(pud))
|
|
#define pud_none(pud) (!pud_val(pud))
|
|
#define pud_bad(pud) (!ia64_phys_addr_valid(pud_val(pud)))
|
|
#define pud_bad(pud) (!ia64_phys_addr_valid(pud_val(pud)))
|
|
#define pud_present(pud) (pud_val(pud) != 0UL)
|
|
#define pud_present(pud) (pud_val(pud) != 0UL)
|
|
#define pud_clear(pudp) (pud_val(*(pudp)) = 0UL)
|
|
#define pud_clear(pudp) (pud_val(*(pudp)) = 0UL)
|
|
-#define pud_page(pud) ((unsigned long) __va(pud_val(pud) & _PFN_MASK))
|
|
|
|
|
|
+#define pud_page_vaddr(pud) ((unsigned long) __va(pud_val(pud) & _PFN_MASK))
|
|
|
|
+#define pud_page(pud) virt_to_page((pud_val(pud) + PAGE_OFFSET))
|
|
|
|
|
|
#ifdef CONFIG_PGTABLE_4
|
|
#ifdef CONFIG_PGTABLE_4
|
|
#define pgd_none(pgd) (!pgd_val(pgd))
|
|
#define pgd_none(pgd) (!pgd_val(pgd))
|
|
#define pgd_bad(pgd) (!ia64_phys_addr_valid(pgd_val(pgd)))
|
|
#define pgd_bad(pgd) (!ia64_phys_addr_valid(pgd_val(pgd)))
|
|
#define pgd_present(pgd) (pgd_val(pgd) != 0UL)
|
|
#define pgd_present(pgd) (pgd_val(pgd) != 0UL)
|
|
#define pgd_clear(pgdp) (pgd_val(*(pgdp)) = 0UL)
|
|
#define pgd_clear(pgdp) (pgd_val(*(pgdp)) = 0UL)
|
|
-#define pgd_page(pgd) ((unsigned long) __va(pgd_val(pgd) & _PFN_MASK))
|
|
|
|
|
|
+#define pgd_page_vaddr(pgd) ((unsigned long) __va(pgd_val(pgd) & _PFN_MASK))
|
|
|
|
+#define pgd_page(pgd) virt_to_page((pgd_val(pgd) + PAGE_OFFSET))
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -360,19 +362,19 @@ pgd_offset (struct mm_struct *mm, unsigned long address)
|
|
#ifdef CONFIG_PGTABLE_4
|
|
#ifdef CONFIG_PGTABLE_4
|
|
/* Find an entry in the second-level page table.. */
|
|
/* Find an entry in the second-level page table.. */
|
|
#define pud_offset(dir,addr) \
|
|
#define pud_offset(dir,addr) \
|
|
- ((pud_t *) pgd_page(*(dir)) + (((addr) >> PUD_SHIFT) & (PTRS_PER_PUD - 1)))
|
|
|
|
|
|
+ ((pud_t *) pgd_page_vaddr(*(dir)) + (((addr) >> PUD_SHIFT) & (PTRS_PER_PUD - 1)))
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/* Find an entry in the third-level page table.. */
|
|
/* Find an entry in the third-level page table.. */
|
|
#define pmd_offset(dir,addr) \
|
|
#define pmd_offset(dir,addr) \
|
|
- ((pmd_t *) pud_page(*(dir)) + (((addr) >> PMD_SHIFT) & (PTRS_PER_PMD - 1)))
|
|
|
|
|
|
+ ((pmd_t *) pud_page_vaddr(*(dir)) + (((addr) >> PMD_SHIFT) & (PTRS_PER_PMD - 1)))
|
|
|
|
|
|
/*
|
|
/*
|
|
* Find an entry in the third-level page table. This looks more complicated than it
|
|
* Find an entry in the third-level page table. This looks more complicated than it
|
|
* should be because some platforms place page tables in high memory.
|
|
* should be because some platforms place page tables in high memory.
|
|
*/
|
|
*/
|
|
#define pte_index(addr) (((addr) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
|
|
#define pte_index(addr) (((addr) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
|
|
-#define pte_offset_kernel(dir,addr) ((pte_t *) pmd_page_kernel(*(dir)) + pte_index(addr))
|
|
|
|
|
|
+#define pte_offset_kernel(dir,addr) ((pte_t *) pmd_page_vaddr(*(dir)) + pte_index(addr))
|
|
#define pte_offset_map(dir,addr) pte_offset_kernel(dir, addr)
|
|
#define pte_offset_map(dir,addr) pte_offset_kernel(dir, addr)
|
|
#define pte_offset_map_nested(dir,addr) pte_offset_map(dir, addr)
|
|
#define pte_offset_map_nested(dir,addr) pte_offset_map(dir, addr)
|
|
#define pte_unmap(pte) do { } while (0)
|
|
#define pte_unmap(pte) do { } while (0)
|