x86/paravirt: Move items in pv_info under PARAVIRT_XXL umbrella
authorJuergen Gross <jgross@suse.com>
Tue, 28 Aug 2018 07:40:22 +0000 (09:40 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 3 Sep 2018 14:50:36 +0000 (16:50 +0200)
All items but name in pv_info are needed by Xen PV only. Define them
with CONFIG_PARAVIRT_XXL set only.

Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: xen-devel@lists.xenproject.org
Cc: virtualization@lists.linux-foundation.org
Cc: akataria@vmware.com
Cc: rusty@rustcorp.com.au
Cc: boris.ostrovsky@oracle.com
Cc: hpa@zytor.com
Link: https://lkml.kernel.org/r/20180828074026.820-12-jgross@suse.com
arch/x86/include/asm/paravirt.h
arch/x86/include/asm/paravirt_types.h
arch/x86/include/asm/pgtable-3level_types.h
arch/x86/include/asm/ptrace.h
arch/x86/include/asm/segment.h
arch/x86/kernel/paravirt.c

index 2ba23e98c5cdbb8512d8c55bb171f3e927964117..dbaedf1ed622e5a2b9cbb779cdb088fb14e7f7ec 100644 (file)
@@ -104,7 +104,9 @@ static inline void wbinvd(void)
        PVOP_VCALL0(cpu.wbinvd);
 }
 
+#ifdef CONFIG_PARAVIRT_XXL
 #define get_kernel_rpl()  (pv_info.kernel_rpl)
+#endif
 
 static inline u64 paravirt_read_msr(unsigned msr)
 {
index cee91a33762020ffdd88a4b945f6fe1452b09e43..5bfed396c6b410ddd4032d85e4fdf2657ea1f7cd 100644 (file)
@@ -66,11 +66,13 @@ struct paravirt_callee_save {
 
 /* general info */
 struct pv_info {
+#ifdef CONFIG_PARAVIRT_XXL
        unsigned int kernel_rpl;
        int shared_kernel_pmd;
 
 #ifdef CONFIG_X86_64
        u16 extra_user_64bit_cs;  /* __USER_CS if none */
+#endif
 #endif
 
        const char *name;
index 858358a82b14f4624c9a4805be04b438ae57dda4..33845d36897c843480f20e12afe224e3463e3666 100644 (file)
@@ -20,7 +20,7 @@ typedef union {
 } pte_t;
 #endif /* !__ASSEMBLY__ */
 
-#ifdef CONFIG_PARAVIRT
+#ifdef CONFIG_PARAVIRT_XXL
 #define SHARED_KERNEL_PMD      ((!static_cpu_has(X86_FEATURE_PTI) &&   \
                                 (pv_info.shared_kernel_pmd)))
 #else
index 6de1fd3d009744277c0be1593daaa380e1f0fedb..250be50aa2577b402c746f6d0c8f9336317e5d2a 100644 (file)
@@ -144,7 +144,7 @@ static inline int v8086_mode(struct pt_regs *regs)
 static inline bool user_64bit_mode(struct pt_regs *regs)
 {
 #ifdef CONFIG_X86_64
-#ifndef CONFIG_PARAVIRT
+#ifndef CONFIG_PARAVIRT_XXL
        /*
         * On non-paravirt systems, this is the only long mode CPL 3
         * selector.  We do not allow long mode selectors in the LDT.
index e293c122d0d54fbc802c1212edc9ed099be582f0..0ffbe9519e68ab26717bd46ae2e3c8fc331893be 100644 (file)
 
 #endif
 
-#ifndef CONFIG_PARAVIRT
+#ifndef CONFIG_PARAVIRT_XXL
 # define get_kernel_rpl()              0
 #endif
 
index 0ca0576c88ff8709983bc295bec4cdf544ba57d6..ce0e28506942ab507d8818a3059c6c7cfb225a18 100644 (file)
@@ -293,12 +293,14 @@ enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
 
 struct pv_info pv_info = {
        .name = "bare hardware",
+#ifdef CONFIG_PARAVIRT_XXL
        .kernel_rpl = 0,
        .shared_kernel_pmd = 1, /* Only used when CONFIG_X86_PAE is set */
 
 #ifdef CONFIG_X86_64
        .extra_user_64bit_cs = __USER_CS,
 #endif
+#endif
 };
 
 #if defined(CONFIG_X86_32) && !defined(CONFIG_X86_PAE)