linux/arch/x86/kernel/cpu
Borislav Petkov 6dcbfe4f0b x86, AMD, MCE thresholding: Fix the MCi_MISCj iteration order
This fixes possible cases of not collecting valid error info in
the MCE error thresholding groups on F10h hardware.

The current code contains a subtle problem of checking only the
Valid bit of MSR0000_0413 (which is MC4_MISC0 - DRAM
thresholding group) in its first iteration and breaking out if
the bit is cleared.

But (!), this MSR contains an offset value, BlkPtr[31:24], which
points to the remaining MSRs in this thresholding group which
might contain valid information too. But if we bail out only
after we checked the valid bit in the first MSR and not the
block pointer too, we miss that other information.

The thing is, MC4_MISC0[BlkPtr] is not predicated on
MCi_STATUS[MiscV] or MC4_MISC0[Valid] and should be checked
prior to iterating over the MCI_MISCj thresholding group,
irrespective of the MC4_MISC0[Valid] setting.

Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Cc: <stable@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2010-10-11 11:04:36 +02:00
..
cpufreq [CPUFREQ] Fix memory leaks in pcc_cpufreq_do_osc 2010-09-30 16:14:23 -04:00
mcheck x86, AMD, MCE thresholding: Fix the MCi_MISCj iteration order 2010-10-11 11:04:36 +02:00
mtrr Merge branches 'x86-cleanups-for-linus', 'x86-vmware-for-linus', 'x86-mtrr-for-linus', 'x86-apic-for-linus', 'x86-fpu-for-linus' and 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 16:22:59 -07:00
.gitignore Update .gitignore files for generated targets 2008-10-20 11:24:31 -07:00
amd.c x86, cpu: Fix regression in AMD errata checking code 2010-08-18 09:16:28 -07:00
bugs_64.c x86/cpu: Clean up various files a bit 2009-07-11 11:24:09 +02:00
bugs.c x86: Avoid check hlt for newer cpus 2010-05-07 15:31:17 -07:00
centaur.c x86, cpu: mv display_cacheinfo -> cpu_detect_cache_sizes 2009-11-23 11:59:53 -08:00
common.c x86, cpu: After uncapping CPUID, re-run CPU feature detection 2010-09-28 16:33:14 -07:00
cpu.h x86, cpu: After uncapping CPUID, re-run CPU feature detection 2010-09-28 16:33:14 -07:00
cyrix.c x86, cpu: mv display_cacheinfo -> cpu_detect_cache_sizes 2009-11-23 11:59:53 -08:00
hypervisor.c Introduce CONFIG_XEN_PVHVM compile option 2010-07-29 11:11:33 -07:00
intel_cacheinfo.c x86, cacheinfo: Carve out L3 cache slot accessors 2010-06-09 15:57:41 -07:00
intel.c x86, cpu: After uncapping CPUID, re-run CPU feature detection 2010-09-28 16:33:14 -07:00
Makefile Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 10:07:34 -07:00
mkcapflags.pl
mshyperv.c x86: Export the symbol ms_hyperv 2010-07-08 14:12:03 -07:00
perf_event_amd.c perf, x86: Fix incorrect branches event on AMD CPUs 2010-07-03 15:19:34 +02:00
perf_event_intel_ds.c perf, x86: Improve the PEBS ABI 2010-05-07 11:31:02 +02:00
perf_event_intel_lbr.c perf, x86: Clean up debugctlmsr bit definitions 2010-03-26 09:41:03 +01:00
perf_event_intel.c perf, x86: Fix handle_irq return values 2010-09-03 08:05:18 +02:00
perf_event_p4.c perf, x86: Handle in flight NMIs on P4 platform 2010-09-30 09:17:59 +02:00
perf_event_p6.c perf, x86: Fix __initconst vs const 2010-04-02 19:52:05 +02:00
perf_event.c perf, x86: Catch spurious interrupts after disabling counters 2010-09-24 12:21:41 +02:00
perfctr-watchdog.c perf, x86: rename macro in ARCH_PERFMON_EVENTSEL_ENABLE 2010-03-01 14:21:23 +01:00
powerflags.c
proc.c Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 07:57:32 -07:00
scattered.c x86/hwmon: fix initialization of coretemp 2010-09-24 11:44:19 -07:00
sched.c sched: x86: Name old_perf in a unique way 2009-09-16 11:21:07 +02:00
topology.c x86, cpu: Split addon_cpuid_features.c 2010-07-19 19:02:41 -07:00
transmeta.c x86, cpu: mv display_cacheinfo -> cpu_detect_cache_sizes 2009-11-23 11:59:53 -08:00
umc.c x86: move various CPU initialization objects into .cpuinit.rodata 2009-03-12 13:13:07 +01:00
vmware.c x86, vmware: Preset lpj values when on VMware. 2010-08-02 17:16:30 -07:00