From: Andi Kleen Apart from some ppc32 specific drivers the only drivers/ change needed for 4level pagetables. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton --- 25-akpm/drivers/char/drm/drm_memory.h | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) diff -puN drivers/char/drm/drm_memory.h~4level-convert-drm-to-4levels drivers/char/drm/drm_memory.h --- 25/drivers/char/drm/drm_memory.h~4level-convert-drm-to-4levels 2004-11-03 21:53:17.911345136 -0800 +++ 25-akpm/drivers/char/drm/drm_memory.h 2004-11-03 21:53:17.914344680 -0800 @@ -121,10 +121,12 @@ agp_remap (unsigned long offset, unsigne return addr; } +/* AK: looks racy */ static inline unsigned long drm_follow_page (void *vaddr) { - pgd_t *pgd = pgd_offset_k((unsigned long) vaddr); + pml4_t *pml4 = pml4_offset_k((unsigned long) vaddr); + pgd_t *pgd = pml4_pgd_offset_k(pml4, (unsigned long) vaddr); pmd_t *pmd = pmd_offset(pgd, (unsigned long) vaddr); pte_t *ptep = pte_offset_kernel(pmd, (unsigned long) vaddr); return pte_pfn(*ptep) << PAGE_SHIFT; _