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

Merge tag 'perf-urgent-2023-09-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 perf event fix from Ingo Molnar:
 "Work around a firmware bug in the uncore PMU driver, affecting certain
  Intel systems"

* tag 'perf-urgent-2023-09-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf/x86/uncore: Correct the number of CHAs on EMR
parents 535a265d 6f7f984f
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -6474,7 +6474,17 @@ void spr_uncore_cpu_init(void)

	type = uncore_find_type_by_id(uncore_msr_uncores, UNCORE_SPR_CHA);
	if (type) {
		/*
		 * The value from the discovery table (stored in the type->num_boxes
		 * of UNCORE_SPR_CHA) is incorrect on some SPR variants because of a
		 * firmware bug. Using the value from SPR_MSR_UNC_CBO_CONFIG to replace it.
		 */
		rdmsrl(SPR_MSR_UNC_CBO_CONFIG, num_cbo);
		/*
		 * The MSR doesn't work on the EMR XCC, but the firmware bug doesn't impact
		 * the EMR XCC. Don't let the value from the MSR replace the existing value.
		 */
		if (num_cbo)
			type->num_boxes = num_cbo;
	}
	spr_uncore_iio_free_running.num_boxes = uncore_type_max_boxes(uncore_msr_uncores, UNCORE_SPR_IIO);