diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/x86/kernel/cpu/bugs.c | 11 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/microcode/amd.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/resctrl/monitor.c | 11 | 
3 files changed, 14 insertions, 10 deletions
| diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 6a526ae1fe99..d7fa03bf51b4 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1463,7 +1463,9 @@ static void __init retbleed_update_mitigation(void)  			break;  		default:  			if (retbleed_mitigation != RETBLEED_MITIGATION_STUFF) { -				pr_err(RETBLEED_INTEL_MSG); +				if (retbleed_mitigation != RETBLEED_MITIGATION_NONE) +					pr_err(RETBLEED_INTEL_MSG); +  				retbleed_mitigation = RETBLEED_MITIGATION_NONE;  			}  		} @@ -1825,13 +1827,6 @@ void unpriv_ebpf_notify(int new_state)  }  #endif -static inline bool match_option(const char *arg, int arglen, const char *opt) -{ -	int len = strlen(opt); - -	return len == arglen && !strncmp(arg, opt, len); -} -  /* The kernel command line selection for spectre v2 */  enum spectre_v2_mitigation_cmd {  	SPECTRE_V2_CMD_NONE, diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c index cdce885e2fd5..28ed8c089024 100644 --- a/arch/x86/kernel/cpu/microcode/amd.c +++ b/arch/x86/kernel/cpu/microcode/amd.c @@ -194,7 +194,7 @@ static bool need_sha_check(u32 cur_rev)  	}  	switch (cur_rev >> 8) { -	case 0x80012: return cur_rev <= 0x800126f; break; +	case 0x80012: return cur_rev <= 0x8001277; break;  	case 0x80082: return cur_rev <= 0x800820f; break;  	case 0x83010: return cur_rev <= 0x830107c; break;  	case 0x86001: return cur_rev <= 0x860010e; break; diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c index 2cd25a0d4637..fe1a2aa53c16 100644 --- a/arch/x86/kernel/cpu/resctrl/monitor.c +++ b/arch/x86/kernel/cpu/resctrl/monitor.c @@ -458,7 +458,16 @@ int __init rdt_get_mon_l3_config(struct rdt_resource *r)  		r->mon.mbm_cfg_mask = ecx & MAX_EVT_CONFIG_BITS;  	} -	if (rdt_cpu_has(X86_FEATURE_ABMC)) { +	/* +	 * resctrl assumes a system that supports assignable counters can +	 * switch to "default" mode. Ensure that there is a "default" mode +	 * to switch to. This enforces a dependency between the independent +	 * X86_FEATURE_ABMC and X86_FEATURE_CQM_MBM_TOTAL/X86_FEATURE_CQM_MBM_LOCAL +	 * hardware features. +	 */ +	if (rdt_cpu_has(X86_FEATURE_ABMC) && +	    (rdt_cpu_has(X86_FEATURE_CQM_MBM_TOTAL) || +	     rdt_cpu_has(X86_FEATURE_CQM_MBM_LOCAL))) {  		r->mon.mbm_cntr_assignable = true;  		cpuid_count(0x80000020, 5, &eax, &ebx, &ecx, &edx);  		r->mon.num_mbm_cntrs = (ebx & GENMASK(15, 0)) + 1; | 
