From 086bbf4064322f056a60577966a7f762f423ced6 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 9 May 2023 05:03:18 +0200 Subject: [PATCH] 6.3-stable patches added patches: arch_topology-remove-early-cacheinfo-error-message-if-enoent.patch --- ...ly-cacheinfo-error-message-if-enoent.patch | 51 +++++++++++++++++++ queue-6.3/series | 1 + 2 files changed, 52 insertions(+) create mode 100644 queue-6.3/arch_topology-remove-early-cacheinfo-error-message-if-enoent.patch diff --git a/queue-6.3/arch_topology-remove-early-cacheinfo-error-message-if-enoent.patch b/queue-6.3/arch_topology-remove-early-cacheinfo-error-message-if-enoent.patch new file mode 100644 index 00000000000..6a96d9103d9 --- /dev/null +++ b/queue-6.3/arch_topology-remove-early-cacheinfo-error-message-if-enoent.patch @@ -0,0 +1,51 @@ +From 3522340199cc060b70f0094e3039bdb43c3f6ee1 Mon Sep 17 00:00:00 2001 +From: Pierre Gondois +Date: Fri, 14 Apr 2023 10:14:51 +0200 +Subject: arch_topology: Remove early cacheinfo error message if -ENOENT + +From: Pierre Gondois + +commit 3522340199cc060b70f0094e3039bdb43c3f6ee1 upstream. + +fetch_cache_info() tries to get the number of cache leaves/levels +for each CPU in order to pre-allocate memory for cacheinfo struct. +Allocating this memory later triggers a: + 'BUG: sleeping function called from invalid context' +in PREEMPT_RT kernels. + +If there is no cache related information available in DT or ACPI, +fetch_cache_info() fails and an error message is printed: + 'Early cacheinfo failed, ret = ...' + +Not having cache information should be a valid configuration. +Remove the error message if fetch_cache_info() fails with -ENOENT. + +Suggested-by: Conor Dooley +Link: https://lore.kernel.org/all/20230404-hatred-swimmer-6fecdf33b57a@spud/ +Signed-off-by: Pierre Gondois +Reviewed-by: Conor Dooley +Link: https://lore.kernel.org/r/20230414081453.244787-4-pierre.gondois@arm.com +Signed-off-by: Sudeep Holla +Cc: Florian Fainelli +Signed-off-by: Greg Kroah-Hartman +--- + drivers/base/arch_topology.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- a/drivers/base/arch_topology.c ++++ b/drivers/base/arch_topology.c +@@ -843,10 +843,11 @@ void __init init_cpu_topology(void) + + for_each_possible_cpu(cpu) { + ret = fetch_cache_info(cpu); +- if (ret) { ++ if (!ret) ++ continue; ++ else if (ret != -ENOENT) + pr_err("Early cacheinfo failed, ret = %d\n", ret); +- break; +- } ++ return; + } + } + diff --git a/queue-6.3/series b/queue-6.3/series index b300ff80610..252080f0563 100644 --- a/queue-6.3/series +++ b/queue-6.3/series @@ -691,3 +691,4 @@ cifs-fix-potential-race-when-tree-connecting-ipc.patch cifs-protect-access-of-tcp_server_info-origin-leaf-_fullpath.patch cifs-avoid-potential-races-when-handling-multiple-dfs-tcons.patch debugobject-ensure-pool-refill-again.patch +arch_topology-remove-early-cacheinfo-error-message-if-enoent.patch -- 2.47.3