diff options
| author | Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com> | 2015-03-23 11:42:52 -0400 |
|---|---|---|
| committer | Borislav Petkov <bp@suse.de> | 2015-03-24 07:13:34 -0400 |
| commit | bf80bbd7dcf525e41e0673fbaa8cd21d2344b460 (patch) | |
| tree | 5a07598febcb55aa340dc710248f6f22920416b2 /arch/x86/include/asm | |
| parent | c9ce8712838e48bf356144122c5ecdcdac5d1829 (diff) | |
x86/mce: Add an AMD severities-grading function
Add a severities function that caters to AMD processors. This allows us
to do some vendor-specific work within the function if necessary.
Also, introduce a vendor flag bitfield for vendor-specific settings. The
severities code uses this to define error scope based on the prescence
of the flags field.
This is based off of work by Boris Petkov.
Testing details:
Fam10h, Model 9h (Greyhound)
Fam15h: Models 0h-0fh (Orochi), 30h-3fh (Kaveri) and 60h-6fh (Carrizo),
Fam16h Model 00h-0fh (Kabini)
Boris:
Intel SNB
AMD K8 (JH-E0)
Signed-off-by: Aravind Gopalakrishnan <aravind.gopalakrishnan@amd.com>
Acked-by: Tony Luck <tony.luck@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Chen Yucong <slaoub@gmail.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: linux-edac@vger.kernel.org
Link: http://lkml.kernel.org/r/1427125373-2918-2-git-send-email-Aravind.Gopalakrishnan@amd.com
[ Fixup build, clean up comments. ]
Signed-off-by: Borislav Petkov <bp@suse.de>
Diffstat (limited to 'arch/x86/include/asm')
| -rw-r--r-- | arch/x86/include/asm/mce.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h index fd38a23e729f..b574fbf62d39 100644 --- a/arch/x86/include/asm/mce.h +++ b/arch/x86/include/asm/mce.h | |||
| @@ -116,6 +116,12 @@ struct mca_config { | |||
| 116 | u32 rip_msr; | 116 | u32 rip_msr; |
| 117 | }; | 117 | }; |
| 118 | 118 | ||
| 119 | struct mce_vendor_flags { | ||
| 120 | __u64 overflow_recov : 1, /* cpuid_ebx(80000007) */ | ||
| 121 | __reserved_0 : 63; | ||
| 122 | }; | ||
| 123 | extern struct mce_vendor_flags mce_flags; | ||
| 124 | |||
| 119 | extern struct mca_config mca_cfg; | 125 | extern struct mca_config mca_cfg; |
| 120 | extern void mce_register_decode_chain(struct notifier_block *nb); | 126 | extern void mce_register_decode_chain(struct notifier_block *nb); |
| 121 | extern void mce_unregister_decode_chain(struct notifier_block *nb); | 127 | extern void mce_unregister_decode_chain(struct notifier_block *nb); |
