[PATCH 5/17] Fix DRM to support 4level page tables

From: Andreas Kleen
Date: Mon Oct 25 2004 - 02:34:22 EST


Fix DRM to support 4level page tables

Except for some ppc32 low level drivers DRM was the only code
in drivers that needed changes for 4levels.

Signed-off-by: Andi Kleen <ak@xxxxxxx>

diff -urpN -X ../KDIFX linux-2.6.10rc1/drivers/char/drm/drm_memory.h linux-2.6.10rc1-4level/drivers/char/drm/drm_memory.h
--- linux-2.6.10rc1/drivers/char/drm/drm_memory.h 2004-10-19 01:55:10.000000000 +0200
+++ linux-2.6.10rc1-4level/drivers/char/drm/drm_memory.h 2004-10-25 04:48:10.000000000 +0200
@@ -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;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/