kernel_optimize_test/arch/x86/kernel/cpu/mcheck
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
..
Makefile ACPI, APEI, Generic Hardware Error Source memory error support 2010-05-19 22:41:16 -04:00
mce_amd.c x86, AMD, MCE thresholding: Fix the MCi_MISCj iteration order 2010-10-11 11:04:36 +02:00
mce_intel.c x86, mce: Fix MSR_IA32_MCI_CTL2 CMCI threshold setup 2010-06-10 21:27:36 -07:00
mce-apei.c ACPI, APEI, Rename CPER and GHES severity constants 2010-08-08 14:55:26 -04:00
mce-inject.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mce-internal.h ACPI, APEI, Use ERST for persistent storage of MCE 2010-05-19 22:41:40 -04:00
mce-severity.c x86, mce: Fix compilation with !CONFIG_DEBUG_FS in mce-severity.c 2009-09-14 12:01:04 -07:00
mce.c Merge branch 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 16:24:51 -07:00
p5.c x86, mce: make mce_disabled boolean 2009-06-16 16:56:07 -07:00
therm_throt.c x86, mce, therm_throt.c: Fix missing curly braces in error handling logic 2010-10-08 10:29:20 +02:00
threshold.c x86, mce: enable MCE_INTEL for 32bit new MCE 2009-05-28 09:24:13 -07:00
winchip.c x86, mce: unify mce.h 2009-06-16 16:56:07 -07:00