Message ID | 1458175619-32206-4-git-send-email-toshi.kani@hpe.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Mar 16, 2016 at 06:46:58PM -0600, Toshi Kani wrote: > Xen supports PAT without MTRR for its guests. In order to > enable WC attribute, it was necessary for xen_start_kernel() > to call pat_init_cache_modes() to update PAT table before > starting guest kernel. > > Now that the kernel initializes PAT table to the BIOS handoff > state when MTRR is disabled, this Xen-specific PAT init code > is no longer necessary. Delete it from xen_start_kernel(). > > Also change pat_init_cache_modes() to a static function since > PAT table should not be tweaked by other modules. > > Signed-off-by: Toshi Kani <toshi.kani@hpe.com> > Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> > Cc: Borislav Petkov <bp@suse.de> > Cc: Luis R. Rodriguez <mcgrof@suse.com> > Cc: Juergen Gross <jgross@suse.com> > Cc: Ingo Molnar <mingo@kernel.org> > Cc: H. Peter Anvin <hpa@zytor.com> > Cc: Thomas Gleixner <tglx@linutronix.de> > --- > arch/x86/include/asm/pat.h | 1 - > arch/x86/mm/pat.c | 2 +- > arch/x86/xen/enlighten.c | 9 --------- > 3 files changed, 1 insertion(+), 11 deletions(-) Jürgen, ack?
On 22/03/16 18:02, Borislav Petkov wrote: > On Wed, Mar 16, 2016 at 06:46:58PM -0600, Toshi Kani wrote: >> Xen supports PAT without MTRR for its guests. In order to >> enable WC attribute, it was necessary for xen_start_kernel() >> to call pat_init_cache_modes() to update PAT table before >> starting guest kernel. >> >> Now that the kernel initializes PAT table to the BIOS handoff >> state when MTRR is disabled, this Xen-specific PAT init code >> is no longer necessary. Delete it from xen_start_kernel(). >> >> Also change pat_init_cache_modes() to a static function since >> PAT table should not be tweaked by other modules. >> >> Signed-off-by: Toshi Kani <toshi.kani@hpe.com> >> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> >> Cc: Borislav Petkov <bp@suse.de> >> Cc: Luis R. Rodriguez <mcgrof@suse.com> >> Cc: Juergen Gross <jgross@suse.com> >> Cc: Ingo Molnar <mingo@kernel.org> >> Cc: H. Peter Anvin <hpa@zytor.com> >> Cc: Thomas Gleixner <tglx@linutronix.de> >> --- >> arch/x86/include/asm/pat.h | 1 - >> arch/x86/mm/pat.c | 2 +- >> arch/x86/xen/enlighten.c | 9 --------- >> 3 files changed, 1 insertion(+), 11 deletions(-) > > Jürgen, ack? Yes, seems to be okay. Acked-by: Juergen Gross <jgross@suse.com> Juergen
diff --git a/arch/x86/include/asm/pat.h b/arch/x86/include/asm/pat.h index 016142b..0b1ff4c 100644 --- a/arch/x86/include/asm/pat.h +++ b/arch/x86/include/asm/pat.h @@ -7,7 +7,6 @@ bool pat_enabled(void); void pat_disable(const char *reason); extern void pat_init(void); -void pat_init_cache_modes(u64); extern int reserve_memtype(u64 start, u64 end, enum page_cache_mode req_pcm, enum page_cache_mode *ret_pcm); diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c index 48d1619..02bf0e4 100644 --- a/arch/x86/mm/pat.c +++ b/arch/x86/mm/pat.c @@ -196,7 +196,7 @@ static enum page_cache_mode pat_get_cache_mode(unsigned pat_val, char *msg) * configuration. * Using lower indices is preferred, so we start with highest index. */ -void pat_init_cache_modes(u64 pat) +static void pat_init_cache_modes(u64 pat) { enum page_cache_mode cache; char pat_msg[33]; diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index 2c26108..4d21d69 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c @@ -74,7 +74,6 @@ #include <asm/mach_traps.h> #include <asm/mwait.h> #include <asm/pci_x86.h> -#include <asm/pat.h> #include <asm/cpu.h> #ifdef CONFIG_ACPI @@ -1510,7 +1509,6 @@ asmlinkage __visible void __init xen_start_kernel(void) { struct physdev_set_iopl set_iopl; unsigned long initrd_start = 0; - u64 pat; int rc; if (!xen_start_info) @@ -1617,13 +1615,6 @@ asmlinkage __visible void __init xen_start_kernel(void) xen_start_info->nr_pages); xen_reserve_special_pages(); - /* - * Modify the cache mode translation tables to match Xen's PAT - * configuration. - */ - rdmsrl(MSR_IA32_CR_PAT, pat); - pat_init_cache_modes(pat); - /* keep using Xen gdt for now; no urgent need to change it */ #ifdef CONFIG_X86_32
Xen supports PAT without MTRR for its guests. In order to enable WC attribute, it was necessary for xen_start_kernel() to call pat_init_cache_modes() to update PAT table before starting guest kernel. Now that the kernel initializes PAT table to the BIOS handoff state when MTRR is disabled, this Xen-specific PAT init code is no longer necessary. Delete it from xen_start_kernel(). Also change pat_init_cache_modes() to a static function since PAT table should not be tweaked by other modules. Signed-off-by: Toshi Kani <toshi.kani@hpe.com> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Cc: Borislav Petkov <bp@suse.de> Cc: Luis R. Rodriguez <mcgrof@suse.com> Cc: Juergen Gross <jgross@suse.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Thomas Gleixner <tglx@linutronix.de> --- arch/x86/include/asm/pat.h | 1 - arch/x86/mm/pat.c | 2 +- arch/x86/xen/enlighten.c | 9 --------- 3 files changed, 1 insertion(+), 11 deletions(-)