Commit dbfc6422 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'x86_urgent_for_v6.18_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fixes from Borislav Petkov:

 - Remove dead code leftovers after a recent mitigations cleanup which
   fail a Clang build

 - Make sure a Retbleed mitigation message is printed only when
   necessary

 - Correct the last Zen1 microcode revision for which Entrysign sha256
   check is needed

 - Fix a NULL ptr deref when mounting the resctrl fs on a system which
   supports assignable counters but where L3 total and local bandwidth
   monitoring has been disabled at boot

* tag 'x86_urgent_for_v6.18_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/bugs: Remove dead code which might prevent from building
  x86/bugs: Qualify RETBLEED_INTEL_MSG
  x86/microcode: Fix Entrysign revision check for Zen1/Naples
  x86,fs/resctrl: Fix NULL pointer dereference with events force-disabled in mbm_event mode
parents 5fee0daf 84dfce65
Loading
Loading
Loading
Loading
+3 −8
Original line number Diff line number Diff line
@@ -1463,7 +1463,9 @@ static void __init retbleed_update_mitigation(void)
			break;
		default:
			if (retbleed_mitigation != RETBLEED_MITIGATION_STUFF) {
				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,
+1 −1
Original line number Diff line number Diff line
@@ -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;
+10 −1
Original line number Diff line number Diff line
@@ -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;
+7 −9
Original line number Diff line number Diff line
@@ -1782,11 +1782,9 @@ int resctrl_mon_resource_init(void)
		mba_mbps_default_event = QOS_L3_MBM_TOTAL_EVENT_ID;

	if (r->mon.mbm_cntr_assignable) {
		if (!resctrl_is_mon_event_enabled(QOS_L3_MBM_TOTAL_EVENT_ID))
			resctrl_enable_mon_event(QOS_L3_MBM_TOTAL_EVENT_ID);
		if (!resctrl_is_mon_event_enabled(QOS_L3_MBM_LOCAL_EVENT_ID))
			resctrl_enable_mon_event(QOS_L3_MBM_LOCAL_EVENT_ID);
		if (resctrl_is_mon_event_enabled(QOS_L3_MBM_TOTAL_EVENT_ID))
			mon_event_all[QOS_L3_MBM_TOTAL_EVENT_ID].evt_cfg = r->mon.mbm_cfg_mask;
		if (resctrl_is_mon_event_enabled(QOS_L3_MBM_LOCAL_EVENT_ID))
			mon_event_all[QOS_L3_MBM_LOCAL_EVENT_ID].evt_cfg = r->mon.mbm_cfg_mask &
									   (READS_TO_LOCAL_MEM |
									    READS_TO_LOCAL_S_MEM |