Messages in this thread | | | Date | Thu, 6 Jan 2005 12:17:33 -0500 | From | Jon Smirl <> | Subject | chasing the four level page table |
| |
The DRM driver contains this routine:
drivers/char/drm/drm_memory.h
static inline unsigned long drm_follow_page (void *vaddr) { pgd_t *pgd = pgd_offset_k((unsigned long) vaddr); pud_t *pud = pud_offset(pgd, (unsigned long) vaddr); pmd_t *pmd = pmd_offset(pud, (unsigned long) vaddr); pte_t *ptep = pte_offset_kernel(pmd, (unsigned long) vaddr); return pte_pfn(*ptep) << PAGE_SHIFT; }
No other driver needs to chase the page table like this so there is probably some other way to achieve this. Can someone who knows more about the VM system tell me if there is a way to eliminate this code?
If there are any VM/AGP experts with some free time, drm_memory.h could use some rewriting to make it pass sparse checks.
-- Jon Smirl jonsmirl@gmail.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |