diff options
Diffstat (limited to 'arch/x86/kernel/setup_64.c')
-rw-r--r-- | arch/x86/kernel/setup_64.c | 13 |
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 | ||
734 | void __cpuinit detect_ht(struct cpuinfo_x86 *c) | 747 | void __cpuinit detect_ht(struct cpuinfo_x86 *c) |