]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 5.15
authorSasha Levin <sashal@kernel.org>
Sat, 3 Feb 2024 17:24:49 +0000 (12:24 -0500)
committerSasha Levin <sashal@kernel.org>
Sat, 3 Feb 2024 17:24:49 +0000 (12:24 -0500)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-5.15/pm-devfreq-exynos-bus-fix-null-pointer-dereference.patch [new file with mode: 0644]
queue-5.15/pm-devfreq-fix-kernel-panic-with-cpu-based-scaling-t.patch [new file with mode: 0644]
queue-5.15/pm-devfreq-fix-kernel-warning-with-cpufreq-passive-r.patch [new file with mode: 0644]
queue-5.15/pm-devfreq-mute-warning-on-governor-probe_defer.patch [new file with mode: 0644]
queue-5.15/series

diff --git a/queue-5.15/pm-devfreq-exynos-bus-fix-null-pointer-dereference.patch b/queue-5.15/pm-devfreq-exynos-bus-fix-null-pointer-dereference.patch
new file mode 100644 (file)
index 0000000..ead6a49
--- /dev/null
@@ -0,0 +1,45 @@
+From c7445b5b2882abc0896264a8df3df15b0d141313 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 1 Jul 2022 15:31:26 +0200
+Subject: PM / devfreq: exynos-bus: Fix NULL pointer dereference
+
+From: Christian Marangi <ansuelsmth@gmail.com>
+
+[ Upstream commit c8934e4e348915caac54085c01fd9d04fa16134a ]
+
+Fix exynos-bus NULL pointer dereference by correctly using the local
+generated freq_table to output the debug values instead of using the
+profile freq_table that is not used in the driver.
+
+Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
+Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
+Fixes: b5d281f6c16d ("PM / devfreq: Rework freq_table to be local to devfreq struct")
+Cc: stable@vger.kernel.org
+Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
+Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
+Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/devfreq/exynos-bus.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c
+index e689101abc93..f7dcc44f9414 100644
+--- a/drivers/devfreq/exynos-bus.c
++++ b/drivers/devfreq/exynos-bus.c
+@@ -447,9 +447,9 @@ static int exynos_bus_probe(struct platform_device *pdev)
+               }
+       }
+-      max_state = bus->devfreq->profile->max_state;
+-      min_freq = (bus->devfreq->profile->freq_table[0] / 1000);
+-      max_freq = (bus->devfreq->profile->freq_table[max_state - 1] / 1000);
++      max_state = bus->devfreq->max_state;
++      min_freq = (bus->devfreq->freq_table[0] / 1000);
++      max_freq = (bus->devfreq->freq_table[max_state - 1] / 1000);
+       pr_info("exynos-bus: new bus device registered: %s (%6ld KHz ~ %6ld KHz)\n",
+                       dev_name(dev), min_freq, max_freq);
+-- 
+2.43.0
+
diff --git a/queue-5.15/pm-devfreq-fix-kernel-panic-with-cpu-based-scaling-t.patch b/queue-5.15/pm-devfreq-fix-kernel-panic-with-cpu-based-scaling-t.patch
new file mode 100644 (file)
index 0000000..3031054
--- /dev/null
@@ -0,0 +1,43 @@
+From f88a95b0eed454c5ae1dd276270a92bbdcd276e9 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 14 Jun 2022 13:06:59 +0200
+Subject: PM / devfreq: Fix kernel panic with cpu based scaling to passive gov
+
+From: Christian 'Ansuel' Marangi <ansuelsmth@gmail.com>
+
+[ Upstream commit 57e00b40033a376de3f3cf0bb9bf7590d2dd679d ]
+
+The cpufreq passive register notifier can PROBE_DEFER and the devfreq
+struct is freed and then reallocaed on probe retry.
+The current logic assume that the code can't PROBE_DEFER so the devfreq
+struct in the this variable in devfreq_passive_data is assumed to be
+(if already set) always correct.
+This cause kernel panic as the code try to access the wrong address.
+To correctly handle this, update the this variable in
+devfreq_passive_data to the devfreq reallocated struct.
+
+Fixes: a03dacb0316f ("PM / devfreq: Add cpu based scaling support to passive governor")
+Signed-off-by: Christian 'Ansuel' Marangi <ansuelsmth@gmail.com>
+Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/devfreq/governor_passive.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/drivers/devfreq/governor_passive.c b/drivers/devfreq/governor_passive.c
+index c516d3733267..f06d9b6b96b5 100644
+--- a/drivers/devfreq/governor_passive.c
++++ b/drivers/devfreq/governor_passive.c
+@@ -363,8 +363,7 @@ static int devfreq_passive_event_handler(struct devfreq *devfreq,
+       if (!p_data)
+               return -EINVAL;
+-      if (!p_data->this)
+-              p_data->this = devfreq;
++      p_data->this = devfreq;
+       switch (event) {
+       case DEVFREQ_GOV_START:
+-- 
+2.43.0
+
diff --git a/queue-5.15/pm-devfreq-fix-kernel-warning-with-cpufreq-passive-r.patch b/queue-5.15/pm-devfreq-fix-kernel-warning-with-cpufreq-passive-r.patch
new file mode 100644 (file)
index 0000000..ade46b6
--- /dev/null
@@ -0,0 +1,40 @@
+From a53d3ccecf54330cba08207ee470a3456b785b13 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 20 Jun 2022 00:29:39 +0200
+Subject: PM / devfreq: Fix kernel warning with cpufreq passive register fail
+
+From: Christian Marangi <ansuelsmth@gmail.com>
+
+[ Upstream commit 82c66d2bbbeda9e493487e7413769087a0b46250 ]
+
+Remove cpufreq_passive_unregister_notifier from
+cpufreq_passive_register_notifier in case of error as devfreq core
+already call unregister on GOV_START fail.
+
+This fix the kernel always printing a WARN on governor PROBE_DEFER as
+cpufreq_passive_unregister_notifier is called two times and return
+error on the second call as the cpufreq is already unregistered.
+
+Fixes: a03dacb0316f ("PM / devfreq: Add cpu based scaling support to passive governor")
+Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
+Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/devfreq/governor_passive.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/drivers/devfreq/governor_passive.c b/drivers/devfreq/governor_passive.c
+index 9997332af3df..c516d3733267 100644
+--- a/drivers/devfreq/governor_passive.c
++++ b/drivers/devfreq/governor_passive.c
+@@ -293,7 +293,6 @@ static int cpufreq_passive_register_notifier(struct devfreq *devfreq)
+ err_put_policy:
+       cpufreq_cpu_put(policy);
+ err:
+-      WARN_ON(cpufreq_passive_unregister_notifier(devfreq));
+       return ret;
+ }
+-- 
+2.43.0
+
diff --git a/queue-5.15/pm-devfreq-mute-warning-on-governor-probe_defer.patch b/queue-5.15/pm-devfreq-mute-warning-on-governor-probe_defer.patch
new file mode 100644 (file)
index 0000000..0cd3e27
--- /dev/null
@@ -0,0 +1,39 @@
+From c9afa575b61ed545eddab28966f19b9fc329906c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 15 Jun 2022 01:09:50 +0200
+Subject: PM / devfreq: Mute warning on governor PROBE_DEFER
+
+From: Christian 'Ansuel' Marangi <ansuelsmth@gmail.com>
+
+[ Upstream commit e52b045fe07d7874474665c843befa7521853234 ]
+
+Don't print warning when a governor PROBE_DEFER as it's not a real
+GOV_START fail.
+
+Fixes: a03dacb0316f ("PM / devfreq: Add cpu based scaling support to passive governor")
+Signed-off-by: Christian 'Ansuel' Marangi <ansuelsmth@gmail.com>
+Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/devfreq/devfreq.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
+index 3fa275ba8cbd..6af8200992a3 100644
+--- a/drivers/devfreq/devfreq.c
++++ b/drivers/devfreq/devfreq.c
+@@ -951,8 +951,9 @@ struct devfreq *devfreq_add_device(struct device *dev,
+       err = devfreq->governor->event_handler(devfreq, DEVFREQ_GOV_START,
+                                               NULL);
+       if (err) {
+-              dev_err(dev, "%s: Unable to start governor for the device\n",
+-                      __func__);
++              dev_err_probe(dev, err,
++                      "%s: Unable to start governor for the device\n",
++                       __func__);
+               goto err_init;
+       }
+       create_sysfs_files(devfreq, devfreq->governor);
+-- 
+2.43.0
+
index f41a3beca7dc16d00b36eb7110811c521f43df26..010b3275eb704046c6434dead9fce005f08e587e 100644 (file)
@@ -298,3 +298,7 @@ hid-apple-add-support-for-the-2021-magic-keyboard.patch
 hid-apple-add-2021-magic-keyboard-fn-key-mapping.patch
 bonding-remove-print-in-bond_verify_device_path.patch
 asoc-codecs-lpass-wsa-macro-fix-compander-volume-hack.patch
+pm-devfreq-fix-kernel-warning-with-cpufreq-passive-r.patch
+pm-devfreq-mute-warning-on-governor-probe_defer.patch
+pm-devfreq-fix-kernel-panic-with-cpu-based-scaling-t.patch
+pm-devfreq-exynos-bus-fix-null-pointer-dereference.patch