![]() | |||||||||||
Messages in this thread Complete thread (EXPERIMENTAL)Patch in this message |
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,
| ||||||||||
![]() | |||||||||||
| Last update: 2008-01-19 18:19 [W:0.525 / U:0.010 seconds] ©2003-2005 Jasper Spaans | |||||||||||