]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/paravirt: Restrict PARAVIRT_XXL to 64-bit only
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>
Fri, 16 May 2025 12:33:06 +0000 (15:33 +0300)
committerIngo Molnar <mingo@kernel.org>
Sat, 17 May 2025 08:38:29 +0000 (10:38 +0200)
PARAVIRT_XXL is exclusively utilized by XEN_PV, which is only compatible
with 64-bit machines.

Clearly designate PARAVIRT_XXL as 64-bit only and remove ifdefs to
support CONFIG_PGTABLE_LEVELS < 5.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Juergen Gross <jgross@suse.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/20250516123306.3812286-5-kirill.shutemov@linux.intel.com
arch/x86/Kconfig
arch/x86/include/asm/paravirt.h
arch/x86/include/asm/paravirt_types.h
arch/x86/kernel/paravirt.c

index bae3e97482f11aa655dc7dde1e4a1b9da083b15c..121f9f03bd5c8e88e3dca82055143da09753be9d 100644 (file)
@@ -799,6 +799,7 @@ config PARAVIRT
 
 config PARAVIRT_XXL
        bool
+       depends on X86_64
 
 config PARAVIRT_DEBUG
        bool "paravirt-ops debugging"
index 03f680d1057a1c32f37a2d9387cf8cc9da2c5149..b5e59a7ba0d0e206e01a2f63b2dfa3dbbe6ef81d 100644 (file)
@@ -463,8 +463,6 @@ static inline void set_p4d(p4d_t *p4dp, p4d_t p4d)
        PVOP_VCALL2(mmu.set_p4d, p4dp, val);
 }
 
-#if CONFIG_PGTABLE_LEVELS >= 5
-
 static inline p4d_t __p4d(p4dval_t val)
 {
        p4dval_t ret = PVOP_ALT_CALLEE1(p4dval_t, mmu.make_p4d, val,
@@ -496,8 +494,6 @@ static inline void __set_pgd(pgd_t *pgdp, pgd_t pgd)
                set_pgd(pgdp, native_make_pgd(0));                      \
 } while (0)
 
-#endif  /* CONFIG_PGTABLE_LEVELS == 5 */
-
 static inline void p4d_clear(p4d_t *p4dp)
 {
        set_p4d(p4dp, native_make_p4d(0));
index b08b9d3122d670b38b7e1e936297220f62f12102..37a8627d8277fbf2c1f9f1a4f4e3f2180596de1c 100644 (file)
@@ -189,12 +189,10 @@ struct pv_mmu_ops {
 
        void (*set_p4d)(p4d_t *p4dp, p4d_t p4dval);
 
-#if CONFIG_PGTABLE_LEVELS >= 5
        struct paravirt_callee_save p4d_val;
        struct paravirt_callee_save make_p4d;
 
        void (*set_pgd)(pgd_t *pgdp, pgd_t pgdval);
-#endif /* CONFIG_PGTABLE_LEVELS >= 5 */
 
        struct pv_lazy_ops lazy_mode;
 
index 015bf298434fbd068e813a9057fe680cea537f55..ab3e172dcc693120cf05eb530082c22aab0e9e85 100644 (file)
@@ -211,12 +211,10 @@ struct paravirt_patch_template pv_ops = {
 
        .mmu.set_p4d            = native_set_p4d,
 
-#if CONFIG_PGTABLE_LEVELS >= 5
        .mmu.p4d_val            = PTE_IDENT,
        .mmu.make_p4d           = PTE_IDENT,
 
        .mmu.set_pgd            = native_set_pgd,
-#endif /* CONFIG_PGTABLE_LEVELS >= 5 */
 
        .mmu.pte_val            = PTE_IDENT,
        .mmu.pgd_val            = PTE_IDENT,