]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - arch/x86/kernel/paravirt.c
x86/paravirt: Add 5-level support to the paravirt code
[mirror_ubuntu-bionic-kernel.git] / arch / x86 / kernel / paravirt.c
index 110daf22f5c77fbdda77c6137d7d2e7cc22ed767..3586996fc50d3d790c98419920c5c80341882f98 100644 (file)
@@ -405,9 +405,11 @@ struct pv_mmu_ops pv_mmu_ops __ro_after_init = {
        .alloc_pte = paravirt_nop,
        .alloc_pmd = paravirt_nop,
        .alloc_pud = paravirt_nop,
+       .alloc_p4d = paravirt_nop,
        .release_pte = paravirt_nop,
        .release_pmd = paravirt_nop,
        .release_pud = paravirt_nop,
+       .release_p4d = paravirt_nop,
 
        .set_pte = native_set_pte,
        .set_pte_at = native_set_pte_at,
@@ -437,8 +439,11 @@ struct pv_mmu_ops pv_mmu_ops __ro_after_init = {
        .set_p4d = native_set_p4d,
 
 #if CONFIG_PGTABLE_LEVELS >= 5
-#error FIXME
-#endif /* CONFIG_PGTABLE_LEVELS >= 4 */
+       .p4d_val = PTE_IDENT,
+       .make_p4d = PTE_IDENT,
+
+       .set_pgd = native_set_pgd,
+#endif /* CONFIG_PGTABLE_LEVELS >= 5 */
 #endif /* CONFIG_PGTABLE_LEVELS >= 4 */
 #endif /* CONFIG_PGTABLE_LEVELS >= 3 */