From c37c9fa9d1c20ab73b2803b36536a2e34a64e8cb Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Sat, 3 Feb 2024 12:24:49 -0500 Subject: [PATCH] Fixes for 5.15 Signed-off-by: Sasha Levin --- ...nos-bus-fix-null-pointer-dereference.patch | 45 +++++++++++++++++++ ...ernel-panic-with-cpu-based-scaling-t.patch | 43 ++++++++++++++++++ ...ernel-warning-with-cpufreq-passive-r.patch | 40 +++++++++++++++++ ...mute-warning-on-governor-probe_defer.patch | 39 ++++++++++++++++ queue-5.15/series | 4 ++ 5 files changed, 171 insertions(+) create mode 100644 queue-5.15/pm-devfreq-exynos-bus-fix-null-pointer-dereference.patch create mode 100644 queue-5.15/pm-devfreq-fix-kernel-panic-with-cpu-based-scaling-t.patch create mode 100644 queue-5.15/pm-devfreq-fix-kernel-warning-with-cpufreq-passive-r.patch create mode 100644 queue-5.15/pm-devfreq-mute-warning-on-governor-probe_defer.patch 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 index 00000000000..ead6a498a99 --- /dev/null +++ b/queue-5.15/pm-devfreq-exynos-bus-fix-null-pointer-dereference.patch @@ -0,0 +1,45 @@ +From c7445b5b2882abc0896264a8df3df15b0d141313 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 1 Jul 2022 15:31:26 +0200 +Subject: PM / devfreq: exynos-bus: Fix NULL pointer dereference + +From: Christian Marangi + +[ 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 +Tested-by: Marek Szyprowski +Fixes: b5d281f6c16d ("PM / devfreq: Rework freq_table to be local to devfreq struct") +Cc: stable@vger.kernel.org +Signed-off-by: Christian Marangi +Acked-by: Chanwoo Choi +Signed-off-by: Chanwoo Choi +Signed-off-by: Sasha Levin +--- + 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 index 00000000000..3031054d82d --- /dev/null +++ b/queue-5.15/pm-devfreq-fix-kernel-panic-with-cpu-based-scaling-t.patch @@ -0,0 +1,43 @@ +From f88a95b0eed454c5ae1dd276270a92bbdcd276e9 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +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 + +[ 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 +Signed-off-by: Chanwoo Choi +Signed-off-by: Sasha Levin +--- + 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 index 00000000000..ade46b6dcfd --- /dev/null +++ b/queue-5.15/pm-devfreq-fix-kernel-warning-with-cpufreq-passive-r.patch @@ -0,0 +1,40 @@ +From a53d3ccecf54330cba08207ee470a3456b785b13 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 20 Jun 2022 00:29:39 +0200 +Subject: PM / devfreq: Fix kernel warning with cpufreq passive register fail + +From: Christian Marangi + +[ 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 +Signed-off-by: Chanwoo Choi +Signed-off-by: Sasha Levin +--- + 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 index 00000000000..0cd3e273bb0 --- /dev/null +++ b/queue-5.15/pm-devfreq-mute-warning-on-governor-probe_defer.patch @@ -0,0 +1,39 @@ +From c9afa575b61ed545eddab28966f19b9fc329906c Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 15 Jun 2022 01:09:50 +0200 +Subject: PM / devfreq: Mute warning on governor PROBE_DEFER + +From: Christian 'Ansuel' Marangi + +[ 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 +Signed-off-by: Chanwoo Choi +Signed-off-by: Sasha Levin +--- + 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 + diff --git a/queue-5.15/series b/queue-5.15/series index f41a3beca7d..010b3275eb7 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -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 -- 2.47.3