forked from Minki/linux
x86/mce: Add a Scalable MCA vendor flags bit
Scalable MCA (SMCA) is a new feature in AMD Fam17h processors which indicates presence of MCA extensions. MCA extensions expands existing register space for the MCE banks and also introduces a new MSR range to accommodate new banks. Add the detection bit. Signed-off-by: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com> [ Reformat mce_vendor_flags definitions and save indentation levels. Improve comments. ] Signed-off-by: Borislav Petkov <bp@suse.de> Cc: Ashok Raj <ashok.raj@intel.com> Cc: Borislav Petkov <bp@alien8.de> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Tony Luck <tony.luck@intel.com> Cc: linux-edac <linux-edac@vger.kernel.org> Link: http://lkml.kernel.org/r/1446207099-24948-2-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
79ebdc9536
commit
c7f54d21fb
@ -123,19 +123,27 @@ struct mca_config {
|
||||
};
|
||||
|
||||
struct mce_vendor_flags {
|
||||
/*
|
||||
* overflow recovery cpuid bit indicates that overflow
|
||||
* conditions are not fatal
|
||||
*/
|
||||
__u64 overflow_recov : 1,
|
||||
/*
|
||||
* Indicates that overflow conditions are not fatal, when set.
|
||||
*/
|
||||
__u64 overflow_recov : 1,
|
||||
|
||||
/*
|
||||
* SUCCOR stands for S/W UnCorrectable error COntainment
|
||||
* and Recovery. It indicates support for data poisoning
|
||||
* in HW and deferred error interrupts.
|
||||
*/
|
||||
succor : 1,
|
||||
__reserved_0 : 62;
|
||||
/*
|
||||
* (AMD) SUCCOR stands for S/W UnCorrectable error COntainment and
|
||||
* Recovery. It indicates support for data poisoning in HW and deferred
|
||||
* error interrupts.
|
||||
*/
|
||||
succor : 1,
|
||||
|
||||
/*
|
||||
* (AMD) SMCA: This bit indicates support for Scalable MCA which expands
|
||||
* the register space for each MCA bank and also increases number of
|
||||
* banks. Also, to accommodate the new banks and registers, the MCA
|
||||
* register space is moved to a new MSR range.
|
||||
*/
|
||||
smca : 1,
|
||||
|
||||
__reserved_0 : 61;
|
||||
};
|
||||
extern struct mce_vendor_flags mce_flags;
|
||||
|
||||
|
@ -1605,6 +1605,8 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
|
||||
mce_amd_feature_init(c);
|
||||
mce_flags.overflow_recov = !!(ebx & BIT(0));
|
||||
mce_flags.succor = !!(ebx & BIT(1));
|
||||
mce_flags.smca = !!(ebx & BIT(3));
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user