diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-06-17 12:21:41 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-06-17 12:21:41 -0400 |
commit | 813400060fe2824163cabd9afed4e476e7ce282e (patch) | |
tree | 22141d6e937991761345a63dd80125be13eb50ea /arch/x86/kernel/cpu | |
parent | 1bf7b31efa0c322d93cb3f772cd9bc743e8bb42d (diff) | |
parent | fe955e5c793aab398794be4c5ede172d48446c4a (diff) |
Merge branch 'x86/urgent' into x86/mce3
Conflicts:
arch/x86/kernel/cpu/mcheck/mce_intel.c
Merge reason: merge with an urgent-branch MCE fix.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/cpu')
-rw-r--r-- | arch/x86/kernel/cpu/common.c | 3 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/mcheck/mce.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/perfctr-watchdog.c | 12 |
3 files changed, 12 insertions, 5 deletions
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index 3ffdcfa9abdf..5b9cb8839cae 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c | |||
@@ -853,6 +853,9 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c) | |||
853 | #if defined(CONFIG_NUMA) && defined(CONFIG_X86_64) | 853 | #if defined(CONFIG_NUMA) && defined(CONFIG_X86_64) |
854 | numa_add_cpu(smp_processor_id()); | 854 | numa_add_cpu(smp_processor_id()); |
855 | #endif | 855 | #endif |
856 | |||
857 | /* Cap the iomem address space to what is addressable on all CPUs */ | ||
858 | iomem_resource.end &= (1ULL << c->x86_phys_bits) - 1; | ||
856 | } | 859 | } |
857 | 860 | ||
858 | #ifdef CONFIG_X86_64 | 861 | #ifdef CONFIG_X86_64 |
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c index 6095e0296abd..2a560cefb675 100644 --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c | |||
@@ -1249,7 +1249,7 @@ static void mce_cpu_quirks(struct cpuinfo_x86 *c) | |||
1249 | * Various K7s with broken bank 0 around. Always disable | 1249 | * Various K7s with broken bank 0 around. Always disable |
1250 | * by default. | 1250 | * by default. |
1251 | */ | 1251 | */ |
1252 | if (c->x86 == 6) | 1252 | if (c->x86 == 6 && banks > 0) |
1253 | bank[0] = 0; | 1253 | bank[0] = 0; |
1254 | } | 1254 | } |
1255 | 1255 | ||
diff --git a/arch/x86/kernel/cpu/perfctr-watchdog.c b/arch/x86/kernel/cpu/perfctr-watchdog.c index d6f5b9fbde32..5c481f6205bf 100644 --- a/arch/x86/kernel/cpu/perfctr-watchdog.c +++ b/arch/x86/kernel/cpu/perfctr-watchdog.c | |||
@@ -716,11 +716,15 @@ static void probe_nmi_watchdog(void) | |||
716 | wd_ops = &k7_wd_ops; | 716 | wd_ops = &k7_wd_ops; |
717 | break; | 717 | break; |
718 | case X86_VENDOR_INTEL: | 718 | case X86_VENDOR_INTEL: |
719 | /* | 719 | /* Work around where perfctr1 doesn't have a working enable |
720 | * Work around Core Duo (Yonah) errata AE49 where perfctr1 | 720 | * bit as described in the following errata: |
721 | * doesn't have a working enable bit. | 721 | * AE49 Core Duo and Intel Core Solo 65 nm |
722 | * AN49 Intel Pentium Dual-Core | ||
723 | * AF49 Dual-Core Intel Xeon Processor LV | ||
722 | */ | 724 | */ |
723 | if (boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model == 14) { | 725 | if ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model == 14) || |
726 | ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model == 15 && | ||
727 | boot_cpu_data.x86_mask == 4))) { | ||
724 | intel_arch_wd_ops.perfctr = MSR_ARCH_PERFMON_PERFCTR0; | 728 | intel_arch_wd_ops.perfctr = MSR_ARCH_PERFMON_PERFCTR0; |
725 | intel_arch_wd_ops.evntsel = MSR_ARCH_PERFMON_EVENTSEL0; | 729 | intel_arch_wd_ops.evntsel = MSR_ARCH_PERFMON_EVENTSEL0; |
726 | } | 730 | } |