.. | .. |
---|
241 | 241 | #define pud_page(pud) (mem_map + ((pud_val(pud) & _PFN_MASK) >> 32)) |
---|
242 | 242 | #endif |
---|
243 | 243 | |
---|
244 | | -extern inline unsigned long pud_page_vaddr(pud_t pgd) |
---|
245 | | -{ return PAGE_OFFSET + ((pud_val(pgd) & _PFN_MASK) >> (32-PAGE_SHIFT)); } |
---|
| 244 | +extern inline pmd_t *pud_pgtable(pud_t pgd) |
---|
| 245 | +{ |
---|
| 246 | + return (pmd_t *)(PAGE_OFFSET + ((pud_val(pgd) & _PFN_MASK) >> (32-PAGE_SHIFT))); |
---|
| 247 | +} |
---|
246 | 248 | |
---|
247 | 249 | extern inline int pte_none(pte_t pte) { return !pte_val(pte); } |
---|
248 | 250 | extern inline int pte_present(pte_t pte) { return pte_val(pte) & _PAGE_VALID; } |
---|
.. | .. |
---|
292 | 294 | /* Find an entry in the second-level page table.. */ |
---|
293 | 295 | extern inline pmd_t * pmd_offset(pud_t * dir, unsigned long address) |
---|
294 | 296 | { |
---|
295 | | - pmd_t *ret = (pmd_t *) pud_page_vaddr(*dir) + ((address >> PMD_SHIFT) & (PTRS_PER_PAGE - 1)); |
---|
| 297 | + pmd_t *ret = pud_pgtable(*dir) + ((address >> PMD_SHIFT) & (PTRS_PER_PAGE - 1)); |
---|
296 | 298 | smp_rmb(); /* see above */ |
---|
297 | 299 | return ret; |
---|
298 | 300 | } |
---|