]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.15-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 4 Mar 2024 13:15:07 +0000 (14:15 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 4 Mar 2024 13:15:07 +0000 (14:15 +0100)
added patches:
revert-interconnect-fix-locking-for-runpm-vs-reclaim.patch
revert-interconnect-teach-lockdep-about-icc_bw_lock-order.patch

queue-5.15/revert-interconnect-fix-locking-for-runpm-vs-reclaim.patch [new file with mode: 0644]
queue-5.15/revert-interconnect-teach-lockdep-about-icc_bw_lock-order.patch [new file with mode: 0644]
queue-5.15/series

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 (file)
index 0000000..214f668
--- /dev/null
@@ -0,0 +1,73 @@
+From 23136f3ba8684434422f28d004e589e3887cbac6 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Mon, 4 Mar 2024 14:10:12 +0100
+Subject: Revert "interconnect: Fix locking for runpm vs reclaim"
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+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 <robdclark@chromium.org>
+Cc: Georgi Djakov <djakov@kernel.org>
+Cc: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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 (file)
index 0000000..f11a337
--- /dev/null
@@ -0,0 +1,47 @@
+From 705e471bdd5262d48ca5462efd1292a34d9726b0 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Mon, 4 Mar 2024 14:12:15 +0100
+Subject: Revert "interconnect: Teach lockdep about icc_bw_lock order"
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+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 <robdclark@chromium.org>
+Cc: Georgi Djakov <djakov@kernel.org>
+Cc: Guenter Roeck <linux@roeck-us.net>
+Cc: Jon Hunter <jonathanh@nvidia.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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);
index adbaf8db0a6f38892f7b0fa5ba8a7d76f85fa1f2..be9eb6518a8552c60c3ba3b76287c7232d00267e 100644 (file)
@@ -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