2022-06-16 20:16:04 +00:00
|
|
|
From 57e00b40033a376de3f3cf0bb9bf7590d2dd679d Mon Sep 17 00:00:00 2001
|
|
|
|
From: Christian 'Ansuel' Marangi <ansuelsmth@gmail.com>
|
|
|
|
Date: Tue, 14 Jun 2022 13:06:59 +0200
|
|
|
|
Subject: [PATCH 1/1] PM / devfreq: Fix kernel panic with cpu based scaling to
|
|
|
|
passive gov
|
|
|
|
|
|
|
|
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>
|
|
|
|
---
|
|
|
|
drivers/devfreq/governor_passive.c | 3 +--
|
|
|
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
|
|
|
|
|
|
--- a/drivers/devfreq/governor_passive.c
|
|
|
|
+++ b/drivers/devfreq/governor_passive.c
|
2022-10-16 22:39:45 +00:00
|
|
|
@@ -401,8 +401,7 @@ static int devfreq_passive_event_handler
|
2022-06-16 20:16:04 +00:00
|
|
|
if (!p_data)
|
|
|
|
return -EINVAL;
|
|
|
|
|
|
|
|
- if (!p_data->this)
|
|
|
|
- p_data->this = devfreq;
|
|
|
|
+ p_data->this = devfreq;
|
|
|
|
|
|
|
|
switch (event) {
|
|
|
|
case DEVFREQ_GOV_START:
|