aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/amd.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/cpu/amd.c')
-rw-r--r--arch/x86/kernel/cpu/amd.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 813d29d00a17..15c5df92f74e 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -566,6 +566,17 @@ static void init_amd_k8(struct cpuinfo_x86 *c)
566 566
567 if (!c->x86_model_id[0]) 567 if (!c->x86_model_id[0])
568 strcpy(c->x86_model_id, "Hammer"); 568 strcpy(c->x86_model_id, "Hammer");
569
570#ifdef CONFIG_SMP
571 /*
572 * Disable TLB flush filter by setting HWCR.FFDIS on K8
573 * bit 6 of msr C001_0015
574 *
575 * Errata 63 for SH-B3 steppings
576 * Errata 122 for all steppings (F+ have it disabled by default)
577 */
578 msr_set_bit(MSR_K7_HWCR, 6);
579#endif
569} 580}
570 581
571static void init_amd_gh(struct cpuinfo_x86 *c) 582static void init_amd_gh(struct cpuinfo_x86 *c)
@@ -636,18 +647,6 @@ static void init_amd(struct cpuinfo_x86 *c)
636{ 647{
637 u32 dummy; 648 u32 dummy;
638 649
639#ifdef CONFIG_SMP
640 /*
641 * Disable TLB flush filter by setting HWCR.FFDIS on K8
642 * bit 6 of msr C001_0015
643 *
644 * Errata 63 for SH-B3 steppings
645 * Errata 122 for all steppings (F+ have it disabled by default)
646 */
647 if (c->x86 == 0xf)
648 msr_set_bit(MSR_K7_HWCR, 6);
649#endif
650
651 early_init_amd(c); 650 early_init_amd(c);
652 651
653 /* 652 /*