|
@@ -196,10 +196,10 @@ extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
|
|
|
|
|
|
static inline pte_t *pmd_page_vaddr(pmd_t pmd)
|
|
static inline pte_t *pmd_page_vaddr(pmd_t pmd)
|
|
{
|
|
{
|
|
- return __va(pmd_val(pmd) & PAGE_MASK);
|
|
|
|
|
|
+ return __va(pmd_val(pmd) & PHYS_MASK & (s32)PAGE_MASK);
|
|
}
|
|
}
|
|
|
|
|
|
-#define pmd_page(pmd) pfn_to_page(__phys_to_pfn(pmd_val(pmd)))
|
|
|
|
|
|
+#define pmd_page(pmd) pfn_to_page(__phys_to_pfn(pmd_val(pmd) & PHYS_MASK))
|
|
|
|
|
|
/* we don't need complex calculations here as the pmd is folded into the pgd */
|
|
/* we don't need complex calculations here as the pmd is folded into the pgd */
|
|
#define pmd_addr_end(addr,end) (end)
|
|
#define pmd_addr_end(addr,end) (end)
|
|
@@ -220,7 +220,7 @@ static inline pte_t *pmd_page_vaddr(pmd_t pmd)
|
|
#define pte_offset_map(pmd,addr) (__pte_map(pmd) + pte_index(addr))
|
|
#define pte_offset_map(pmd,addr) (__pte_map(pmd) + pte_index(addr))
|
|
#define pte_unmap(pte) __pte_unmap(pte)
|
|
#define pte_unmap(pte) __pte_unmap(pte)
|
|
|
|
|
|
-#define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT)
|
|
|
|
|
|
+#define pte_pfn(pte) ((pte_val(pte) & PHYS_MASK) >> PAGE_SHIFT)
|
|
#define pfn_pte(pfn,prot) __pte(__pfn_to_phys(pfn) | pgprot_val(prot))
|
|
#define pfn_pte(pfn,prot) __pte(__pfn_to_phys(pfn) | pgprot_val(prot))
|
|
|
|
|
|
#define pte_page(pte) pfn_to_page(pte_pfn(pte))
|
|
#define pte_page(pte) pfn_to_page(pte_pfn(pte))
|