From: Greg Kroah-Hartman Date: Mon, 4 Mar 2024 13:15:07 +0000 (+0100) Subject: 5.15-stable patches X-Git-Tag: v4.19.309~23 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6bffaf4191d57395e01888c200b9caee0980e294;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: revert-interconnect-fix-locking-for-runpm-vs-reclaim.patch revert-interconnect-teach-lockdep-about-icc_bw_lock-order.patch --- diff --git a/queue-5.15/revert-interconnect-fix-locking-for-runpm-vs-reclaim.patch b/queue-5.15/revert-interconnect-fix-locking-for-runpm-vs-reclaim.patch new file mode 100644 index 00000000000..214f6688815 --- /dev/null +++ b/queue-5.15/revert-interconnect-fix-locking-for-runpm-vs-reclaim.patch @@ -0,0 +1,73 @@ +From 23136f3ba8684434422f28d004e589e3887cbac6 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Mon, 4 Mar 2024 14:10:12 +0100 +Subject: Revert "interconnect: Fix locking for runpm vs reclaim" + +From: Greg Kroah-Hartman + +This reverts commit 9be2957f014d91088db1eb5dd09d9a03d7184dce which is +commit af42269c3523492d71ebbe11fefae2653e9cdc78 upstream. + +It is reported to cause boot crashes in Android systems, so revert it +from the stable trees for now. + +Cc: Rob Clark +Cc: Georgi Djakov +Cc: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + drivers/interconnect/core.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +--- a/drivers/interconnect/core.c ++++ b/drivers/interconnect/core.c +@@ -30,7 +30,6 @@ static LIST_HEAD(icc_providers); + static int providers_count; + static bool synced_state; + static DEFINE_MUTEX(icc_lock); +-static DEFINE_MUTEX(icc_bw_lock); + static struct dentry *icc_debugfs_dir; + + static void icc_summary_show_one(struct seq_file *s, struct icc_node *n) +@@ -637,7 +636,7 @@ int icc_set_bw(struct icc_path *path, u3 + if (WARN_ON(IS_ERR(path) || !path->num_nodes)) + return -EINVAL; + +- mutex_lock(&icc_bw_lock); ++ mutex_lock(&icc_lock); + + old_avg = path->reqs[0].avg_bw; + old_peak = path->reqs[0].peak_bw; +@@ -669,7 +668,7 @@ int icc_set_bw(struct icc_path *path, u3 + apply_constraints(path); + } + +- mutex_unlock(&icc_bw_lock); ++ mutex_unlock(&icc_lock); + + trace_icc_set_bw_end(path, ret); + +@@ -972,7 +971,6 @@ void icc_node_add(struct icc_node *node, + return; + + mutex_lock(&icc_lock); +- mutex_lock(&icc_bw_lock); + + node->provider = provider; + list_add_tail(&node->node_list, &provider->nodes); +@@ -998,7 +996,6 @@ void icc_node_add(struct icc_node *node, + node->avg_bw = 0; + node->peak_bw = 0; + +- mutex_unlock(&icc_bw_lock); + mutex_unlock(&icc_lock); + } + EXPORT_SYMBOL_GPL(icc_node_add); +@@ -1126,7 +1123,6 @@ void icc_sync_state(struct device *dev) + return; + + mutex_lock(&icc_lock); +- mutex_lock(&icc_bw_lock); + synced_state = true; + list_for_each_entry(p, &icc_providers, provider_list) { + dev_dbg(p->dev, "interconnect provider is in synced state\n"); diff --git a/queue-5.15/revert-interconnect-teach-lockdep-about-icc_bw_lock-order.patch b/queue-5.15/revert-interconnect-teach-lockdep-about-icc_bw_lock-order.patch new file mode 100644 index 00000000000..f11a3379bd4 --- /dev/null +++ b/queue-5.15/revert-interconnect-teach-lockdep-about-icc_bw_lock-order.patch @@ -0,0 +1,47 @@ +From 705e471bdd5262d48ca5462efd1292a34d9726b0 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Mon, 4 Mar 2024 14:12:15 +0100 +Subject: Revert "interconnect: Teach lockdep about icc_bw_lock order" + +From: Greg Kroah-Hartman + +This reverts commit e3a29b80e9e6df217dd61c670ac42864fa4a0e67 which is +commit 13619170303878e1dae86d9a58b039475c957fcf upstream. + +It is reported to cause boot crashes in Android systems, so revert it +from the stable trees for now. + +Cc: Rob Clark +Cc: Georgi Djakov +Cc: Guenter Roeck +Cc: Jon Hunter +Signed-off-by: Greg Kroah-Hartman +--- + drivers/interconnect/core.c | 10 +--------- + 1 file changed, 1 insertion(+), 9 deletions(-) + +--- a/drivers/interconnect/core.c ++++ b/drivers/interconnect/core.c +@@ -1135,21 +1135,13 @@ void icc_sync_state(struct device *dev) + } + } + } +- mutex_unlock(&icc_bw_lock); + mutex_unlock(&icc_lock); + } + EXPORT_SYMBOL_GPL(icc_sync_state); + + static int __init icc_init(void) + { +- struct device_node *root; +- +- /* Teach lockdep about lock ordering wrt. shrinker: */ +- fs_reclaim_acquire(GFP_KERNEL); +- might_lock(&icc_bw_lock); +- fs_reclaim_release(GFP_KERNEL); +- +- root = of_find_node_by_path("/"); ++ struct device_node *root = of_find_node_by_path("/"); + + providers_count = of_count_icc_providers(root); + of_node_put(root); diff --git a/queue-5.15/series b/queue-5.15/series index adbaf8db0a6..be9eb6518a8 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -75,3 +75,5 @@ af_unix-drop-oob_skb-ref-before-purging-queue-in-gc.patch gpio-74x164-enable-output-pins-after-registers-are-r.patch gpiolib-fix-the-error-path-order-in-gpiochip_add_dat.patch gpio-fix-resource-unwinding-order-in-error-path.patch +revert-interconnect-fix-locking-for-runpm-vs-reclaim.patch +revert-interconnect-teach-lockdep-about-icc_bw_lock-order.patch