<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">
From: Andi Kleen &lt;ak@suse.de&gt;

Apart from some ppc32 specific drivers the only drivers/ change needed for
4level pagetables.

Signed-off-by: Andi Kleen &lt;ak@suse.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
---

 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) &lt;&lt; PAGE_SHIFT;
_
</pre></body></html>