lkml.org 
[lkml]   [2008]   [Jan]   [19]   [last100]   RSS-feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Complete thread (EXPERIMENTAL)
Patch in this message
/
DateSat, 19 Jan 2008 16:19:09 -0200
FromMarcelo Tosatti <>
Subject[PATCH] fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS >= 3
Digg This
On Fri, Jan 18, 2008 at 03:20:15PM -0200, Glauber de Oliveira Costa wrote:
Hi,

This small series provides some more fixes towards the goal to have the PARAVIRT selectable for x86_64. After that, just some more small steps are needed.

The first fix is not even specific for PARAVIRT, and it's actually preventing the whole tree from booting.


And the following allows PARAVIRT kernels to boot on x86_64.
-----
Fill in missing pagetable manipulation entries in pv_mmu_ops for PAGETABLE_LEVELS >= 3.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

Index: linux-2.6-x86/arch/x86/kernel/paravirt.c

[view this diff only]
===================================================================
--- linux-2.6-x86.orig/arch/x86/kernel/paravirt.c
+++ linux-2.6-x86/arch/x86/kernel/paravirt.c
@@ -396,16 +396,25 @@ struct pv_mmu_ops pv_mmu_ops = {
 	.kmap_atomic_pte = kmap_atomic,
 #endif
 
+#if PAGETABLE_LEVELS >= 3
 #ifdef CONFIG_X86_PAE
 	.set_pte_atomic = native_set_pte_atomic,
 	.set_pte_present = native_set_pte_present,
-	.set_pud = native_set_pud,
 	.pte_clear = native_pte_clear,
 	.pmd_clear = native_pmd_clear,
-
+#endif
+	.set_pud = native_set_pud,
+	.set_pgd = native_set_pgd,
+	.pgd_clear = native_pgd_clear,
 	.pmd_val = native_pmd_val,
 	.make_pmd = native_make_pmd,
+
+#if PAGETABLE_LEVELS == 4
+	.pud_val = native_pud_val,
+	.make_pud = native_make_pud,
+	.pud_clear = native_pud_clear,
 #endif
+#endif /* PAGETABLE_LEVELS >= 3 */
 
 	.pte_val = native_pte_val,
 	.pgd_val = native_pgd_val,





\
ISP Services
Valid XHTML 1.0!\ /
Valid CSS! Last update: 2008-01-19 18:19    [W:0.525 / U:0.010 seconds]
©2003-2005 Jasper Spaans