| .. | .. |
|---|
| 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 | } |
|---|