The paravirt interface will export set_pud for 3-level pagetables. Hook it.
Signed-off-by: Marcelo Tosatti <[EMAIL PROTECTED]> Index: kvm.first/arch/x86/kernel/kvm.c =================================================================== --- kvm.first.orig/arch/x86/kernel/kvm.c +++ kvm.first/arch/x86/kernel/kvm.c @@ -296,15 +296,17 @@ static void kvm_pmd_clear(pmd_t *pmdp) } #endif -static void kvm_set_pgd(pgd_t *pgdp, pgd_t pgd) +static void kvm_set_pud(pud_t *pudp, pud_t pud) { - kvm_mmu_write(pgdp, pgd_val(pgd)); + kvm_mmu_write(pudp, pud_val(pud)); } -static void kvm_set_pud(pud_t *pudp, pud_t pud) +#if PAGETABLE_LEVELS == 4 +static void kvm_set_pgd(pgd_t *pgdp, pgd_t pgd) { - kvm_mmu_write(pudp, pud_val(pud)); + kvm_mmu_write(pgdp, pgd_val(pgd)); } +#endif #endif /* PAGETABLE_LEVELS >= 3 */ static void kvm_flush_tlb(void) @@ -363,8 +365,10 @@ static void paravirt_ops_setup(void) pv_mmu_ops.pmd_clear = kvm_pmd_clear; #endif pv_mmu_ops.set_pud = kvm_set_pud; +#if PAGETABLE_LEVELS == 4 pv_mmu_ops.set_pgd = kvm_set_pgd; #endif +#endif pv_mmu_ops.flush_tlb_user = kvm_flush_tlb; pv_mmu_ops.release_pt = kvm_release_pt; pv_mmu_ops.release_pd = kvm_release_pt; -- ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel