aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/setup_64.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/setup_64.c')
-rw-r--r--arch/x86/kernel/setup_64.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
index 3d76dbd9f2c0..b5425979501c 100644
--- a/arch/x86/kernel/setup_64.c
+++ b/arch/x86/kernel/setup_64.c
@@ -729,6 +729,19 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c)
729 729
730 if (amd_apic_timer_broken()) 730 if (amd_apic_timer_broken())
731 disable_apic_timer = 1; 731 disable_apic_timer = 1;
732
733 if (c == &boot_cpu_data && c->x86 >= 0xf && c->x86 <= 0x11) {
734 unsigned long long tseg;
735
736 /*
737 * Split up direct mapping around the TSEG SMM area.
738 * Don't do it for gbpages because there seems very little
739 * benefit in doing so.
740 */
741 if (!rdmsrl_safe(MSR_K8_TSEG_ADDR, &tseg) &&
742 (tseg >> PMD_SHIFT) < (max_pfn_mapped >> (PMD_SHIFT-PAGE_SHIFT)))
743 set_memory_4k((unsigned long)__va(tseg), 1);
744 }
732} 745}
733 746
734void __cpuinit detect_ht(struct cpuinfo_x86 *c) 747void __cpuinit detect_ht(struct cpuinfo_x86 *c)