From: Greg Kroah-Hartman Date: Fri, 15 Dec 2023 17:25:01 +0000 (+0100) Subject: 5.15-stable patches X-Git-Tag: v5.15.144~61 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e146f0ad1376e05e88b3f92c512208b939f9c6ea;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: perf-x86-uncore-don-t-warn_on_once-for-a-broken-discovery-table.patch --- diff --git a/queue-5.15/perf-x86-uncore-don-t-warn_on_once-for-a-broken-discovery-table.patch b/queue-5.15/perf-x86-uncore-don-t-warn_on_once-for-a-broken-discovery-table.patch new file mode 100644 index 00000000000..519b8025b90 --- /dev/null +++ b/queue-5.15/perf-x86-uncore-don-t-warn_on_once-for-a-broken-discovery-table.patch @@ -0,0 +1,78 @@ +From 5d515ee40cb57ea5331998f27df7946a69f14dc3 Mon Sep 17 00:00:00 2001 +From: Kan Liang +Date: Thu, 12 Jan 2023 12:01:05 -0800 +Subject: perf/x86/uncore: Don't WARN_ON_ONCE() for a broken discovery table + +From: Kan Liang + +commit 5d515ee40cb57ea5331998f27df7946a69f14dc3 upstream. + +The kernel warning message is triggered, when SPR MCC is used. + +[ 17.945331] ------------[ cut here ]------------ +[ 17.946305] WARNING: CPU: 65 PID: 1 at +arch/x86/events/intel/uncore_discovery.c:184 +intel_uncore_has_discovery_tables+0x4c0/0x65c +[ 17.946305] Modules linked in: +[ 17.946305] CPU: 65 PID: 1 Comm: swapper/0 Not tainted +5.4.17-2136.313.1-X10-2c+ #4 + +It's caused by the broken discovery table of UPI. + +The discovery tables are from hardware. Except for dropping the broken +information, there is nothing Linux can do. Using WARN_ON_ONCE() is +overkilled. + +Use the pr_info() to replace WARN_ON_ONCE(), and specify what uncore unit +is dropped and the reason. + +Signed-off-by: Kan Liang +Signed-off-by: Peter Zijlstra (Intel) +Tested-by: Michael Petlan +Link: https://lore.kernel.org/r/20230112200105.733466-6-kan.liang@linux.intel.com +Cc: Mahmoud Adam +Signed-off-by: Greg Kroah-Hartman +--- + arch/x86/events/intel/uncore_discovery.c | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + +--- a/arch/x86/events/intel/uncore_discovery.c ++++ b/arch/x86/events/intel/uncore_discovery.c +@@ -140,13 +140,21 @@ uncore_insert_box_info(struct uncore_uni + unsigned int *box_offset, *ids; + int i; + +- if (WARN_ON_ONCE(!unit->ctl || !unit->ctl_offset || !unit->ctr_offset)) ++ if (!unit->ctl || !unit->ctl_offset || !unit->ctr_offset) { ++ pr_info("Invalid address is detected for uncore type %d box %d, " ++ "Disable the uncore unit.\n", ++ unit->box_type, unit->box_id); + return; ++ } + + if (parsed) { + type = search_uncore_discovery_type(unit->box_type); +- if (WARN_ON_ONCE(!type)) ++ if (!type) { ++ pr_info("A spurious uncore type %d is detected, " ++ "Disable the uncore type.\n", ++ unit->box_type); + return; ++ } + /* Store the first box of each die */ + if (!type->box_ctrl_die[die]) + type->box_ctrl_die[die] = unit->ctl; +@@ -181,8 +189,12 @@ uncore_insert_box_info(struct uncore_uni + ids[i] = type->ids[i]; + box_offset[i] = type->box_offset[i]; + +- if (WARN_ON_ONCE(unit->box_id == ids[i])) ++ if (unit->box_id == ids[i]) { ++ pr_info("Duplicate uncore type %d box ID %d is detected, " ++ "Drop the duplicate uncore unit.\n", ++ unit->box_type, unit->box_id); + goto free_ids; ++ } + } + ids[i] = unit->box_id; + box_offset[i] = unit->ctl - type->box_ctrl; diff --git a/queue-5.15/series b/queue-5.15/series index c03035e56be..ca8c17b42fb 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -1,3 +1,4 @@ +perf-x86-uncore-don-t-warn_on_once-for-a-broken-discovery-table.patch r8152-add-usb-device-driver-for-config-selection.patch r8152-add-vendor-device-id-pair-for-d-link-dub-e250.patch r8152-add-vendor-device-id-pair-for-asus-usb-c2500.patch