> ---
> arch/x86/kernel/setup_64.c | 13 +++++++++++++
> include/asm-x86/msr-index.h | 1 +
> 2 files changed, 14 insertions(+)
>
> Index: linux/arch/x86/kernel/setup_64.c
> ===================================================================
> --- linux.orig/arch/x86/kernel/setup_64.c
> +++ linux/arch/x86/kernel/setup_64.c
> @@ -721,6 +721,20 @@ static void __cpuinit init_amd(struct cp
>
> if (amd_apic_timer_broken())
> disable_apic_timer = 1;
> +
> + if (!direct_gbpages &&
> + c == &boot_cpu_data && c->x86 >= 0xf && c->x86 <= 0x11) {
> + unsigned long tseg;
> +
> + /*
> + * Split up direct mapping around the TSEG SMM area.
> + * Don't do it for gbpages because there seems very little
> + * benefit in doing so.
> + */
> + if (!rdmsrl_safe(MSR_K8_TSEG_ADDR, &tseg) &&
> + (tseg >> PMD_SHIFT) < (end_pfn_map >> (PMD_SHIFT-PAGE_SHIFT)))
> + set_memory_4k((unsigned long)__va(tseg), 1);
> + }
> }
>
> void __cpuinit detect_ht(struct cpuinfo_x86 *c)
> Index: linux/include/asm-x86/msr-index.h
> ===================================================================
> --- linux.orig/include/asm-x86/msr-index.h
> +++ linux/include/asm-x86/msr-index.h
> @@ -109,6 +109,7 @@
> #define MSR_K8_SYSCFG 0xc0010010
> #define MSR_K8_HWCR 0xc0010015
> #define MSR_K8_ENABLE_C1E 0xc0010055
> +#define MSR_K8_TSEG_ADDR 0xc0010112
> #define K8_MTRRFIXRANGE_DRAM_ENABLE 0x00040000 /* MtrrFixDramEn bit */
> #define K8_MTRRFIXRANGE_DRAM_MODIFY 0x00080000 /* MtrrFixDramModEn bit */
> #define K8_MTRR_RDMEM_WRMEM_MASK 0x18181818 /* Mask: RdMem|WrMem */
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to
majordomo@vger.kernel.org
> More majordomo info at
http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at
http://www.tux.org/lkml/
>