mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-05 09:46:43 +07:00
f436f8bb73
Make decoding of MCEs happen only on AMD hardware by registering a non-default callback only on CPU families which support it. While looking at the interaction of decode_mce() with the other MCE code i also noticed a few other things and made the following cleanups/fixes: - Fixed the mce_decode() weak alias - a weak alias is really not good here, it should be a proper callback. A weak alias will be overriden if a piece of code is built into the kernel - not good, obviously. - The patch initializes the callback on AMD family 10h and 11h. - Added the more correct fallback printk of: No support for human readable MCE decoding on this CPU type. Transcribe the message and run it through 'mcelog --ascii' to decode. On CPUs that dont have a decoder. - Made the surrounding code more readable. Note that the callback allows us to have a default fallback - without having to check the CPU versions during the printout itself. When an EDAC module registers itself, it can install the decode-print function. (there's no unregister needed as this is core code.) version -v2 by Borislav Petkov: - add K8 to the set of supported CPUs - always build in edac_mce_amd since we use an early_initcall now - fix checkpatch warnings Signed-off-by: Borislav Petkov <borislav.petkov@amd.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andi Kleen <andi@firstfloor.org> LKML-Reference: <20091001141432.GA11410@aftab> Signed-off-by: Ingo Molnar <mingo@elte.hu>
54 lines
1.7 KiB
Makefile
54 lines
1.7 KiB
Makefile
#
|
|
# Makefile for the Linux kernel EDAC drivers.
|
|
#
|
|
# Copyright 02 Jul 2003, Linux Networx (http://lnxi.com)
|
|
# This file may be distributed under the terms of the
|
|
# GNU General Public License.
|
|
#
|
|
|
|
|
|
obj-$(CONFIG_EDAC) := edac_stub.o
|
|
obj-$(CONFIG_EDAC_MM_EDAC) += edac_core.o
|
|
|
|
edac_core-objs := edac_mc.o edac_device.o edac_mc_sysfs.o edac_pci_sysfs.o
|
|
edac_core-objs += edac_module.o edac_device_sysfs.o
|
|
|
|
ifdef CONFIG_PCI
|
|
edac_core-objs += edac_pci.o edac_pci_sysfs.o
|
|
endif
|
|
|
|
ifdef CONFIG_CPU_SUP_AMD
|
|
obj-$(CONFIG_X86_MCE) += edac_mce_amd.o
|
|
endif
|
|
|
|
obj-$(CONFIG_EDAC_AMD76X) += amd76x_edac.o
|
|
obj-$(CONFIG_EDAC_CPC925) += cpc925_edac.o
|
|
obj-$(CONFIG_EDAC_I5000) += i5000_edac.o
|
|
obj-$(CONFIG_EDAC_I5100) += i5100_edac.o
|
|
obj-$(CONFIG_EDAC_I5400) += i5400_edac.o
|
|
obj-$(CONFIG_EDAC_E7XXX) += e7xxx_edac.o
|
|
obj-$(CONFIG_EDAC_E752X) += e752x_edac.o
|
|
obj-$(CONFIG_EDAC_I82443BXGX) += i82443bxgx_edac.o
|
|
obj-$(CONFIG_EDAC_I82875P) += i82875p_edac.o
|
|
obj-$(CONFIG_EDAC_I82975X) += i82975x_edac.o
|
|
obj-$(CONFIG_EDAC_I3000) += i3000_edac.o
|
|
obj-$(CONFIG_EDAC_I3200) += i3200_edac.o
|
|
obj-$(CONFIG_EDAC_X38) += x38_edac.o
|
|
obj-$(CONFIG_EDAC_I82860) += i82860_edac.o
|
|
obj-$(CONFIG_EDAC_R82600) += r82600_edac.o
|
|
|
|
amd64_edac_mod-y := amd64_edac.o
|
|
amd64_edac_mod-$(CONFIG_EDAC_DEBUG) += amd64_edac_dbg.o
|
|
amd64_edac_mod-$(CONFIG_EDAC_AMD64_ERROR_INJECTION) += amd64_edac_inj.o
|
|
|
|
obj-$(CONFIG_EDAC_AMD64) += amd64_edac_mod.o
|
|
|
|
obj-$(CONFIG_EDAC_PASEMI) += pasemi_edac.o
|
|
obj-$(CONFIG_EDAC_MPC85XX) += mpc85xx_edac.o
|
|
obj-$(CONFIG_EDAC_MV64X60) += mv64x60_edac.o
|
|
obj-$(CONFIG_EDAC_CELL) += cell_edac.o
|
|
obj-$(CONFIG_EDAC_PPC4XX) += ppc4xx_edac.o
|
|
obj-$(CONFIG_EDAC_AMD8111) += amd8111_edac.o
|
|
obj-$(CONFIG_EDAC_AMD8131) += amd8131_edac.o
|
|
|