diff options
Diffstat (limited to 'arch/x86/kernel/cpu/mce/core.c')
| -rw-r--r-- | arch/x86/kernel/cpu/mce/core.c | 18 | 
1 files changed, 8 insertions, 10 deletions
| diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c index a8cb7ff53e32..515942cbfeb5 100644 --- a/arch/x86/kernel/cpu/mce/core.c +++ b/arch/x86/kernel/cpu/mce/core.c @@ -1977,14 +1977,11 @@ static void apply_quirks_zhaoxin(struct cpuinfo_x86 *c)  }  /* Add per CPU specific workarounds here */ -static bool __mcheck_cpu_apply_quirks(struct cpuinfo_x86 *c) +static void __mcheck_cpu_apply_quirks(struct cpuinfo_x86 *c)  {  	struct mca_config *cfg = &mca_cfg;  	switch (c->x86_vendor) { -	case X86_VENDOR_UNKNOWN: -		pr_info("unknown CPU type - not enabling MCE support\n"); -		return false;  	case X86_VENDOR_AMD:  		apply_quirks_amd(c);  		break; @@ -2000,8 +1997,6 @@ static bool __mcheck_cpu_apply_quirks(struct cpuinfo_x86 *c)  		cfg->monarch_timeout = 0;  	if (cfg->bootlog != 0)  		cfg->panic_timeout = 30; - -	return true;  }  static bool __mcheck_cpu_ancient_init(struct cpuinfo_x86 *c) @@ -2240,6 +2235,12 @@ void mca_bsp_init(struct cpuinfo_x86 *c)  	if (!mce_available(c))  		return; +	if (c->x86_vendor == X86_VENDOR_UNKNOWN) { +		mca_cfg.disabled = 1; +		pr_info("unknown CPU type - not enabling MCE support\n"); +		return; +	} +  	mce_flags.overflow_recov = cpu_feature_enabled(X86_FEATURE_OVERFLOW_RECOV);  	mce_flags.succor	 = cpu_feature_enabled(X86_FEATURE_SUCCOR);  	mce_flags.smca		 = cpu_feature_enabled(X86_FEATURE_SMCA); @@ -2274,10 +2275,7 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)  	__mcheck_cpu_cap_init(); -	if (!__mcheck_cpu_apply_quirks(c)) { -		mca_cfg.disabled = 1; -		return; -	} +	__mcheck_cpu_apply_quirks(c);  	if (!mce_gen_pool_init()) {  		mca_cfg.disabled = 1; | 
