From: Rob Clark <robdclark@gmail.com>
To: linux-arm-msm@vger.kernel.org
Cc: Rob Clark <robdclark@chromium.org>,
MyungJoo Ham <myungjoo.ham@samsung.com>,
Kyungmin Park <kyungmin.park@samsung.com>,
Chanwoo Choi <cw00.choi@samsung.com>,
linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH] PM / devfreq: try_then_request_governor should not return NULL
Date: Thu, 23 May 2019 14:58:45 -0700 [thread overview]
Message-ID: <20190523215853.16622-1-robdclark@gmail.com> (raw)
From: Rob Clark <robdclark@chromium.org>
The two spots it is called expect either an IS_ERR() or a valid pointer,
but not NULL.
Fixes this crash that I came across:
Unable to handle kernel NULL pointer dereference at virtual address 0000000000000030
Mem abort info:
ESR = 0x96000005
Exception class = DABT (current EL), IL = 32 bits
SET = 0, FnV = 0
EA = 0, S1PTW = 0
Data abort info:
ISV = 0, ISS = 0x00000005
CM = 0, WnR = 0
[0000000000000030] user address but active_mm is swapper
Internal error: Oops: 96000005 [#1] PREEMPT SMP
Modules linked in:
Process kworker/2:1 (pid: 212, stack limit = 0x(____ptrval____))
CPU: 2 PID: 212 Comm: kworker/2:1 Not tainted 5.1.0-43338-g460e6984675c-dirty #54
Hardware name: Google Cheza (rev3+) (DT)
Workqueue: events deferred_probe_work_func
pstate: 00c00009 (nzcv daif +PAN +UAO)
pc : devfreq_add_device+0x2e4/0x410
lr : devfreq_add_device+0x2d4/0x410
sp : ffffff8013d93740
x29: ffffff8013d93790 x28: ffffffc0f54f8670
x27: 0000000000000001 x26: 0000000000000007
x25: ffffff80124abfd8 x24: 0000000000000000
x23: ffffffc0fabc4048 x22: ffffffc0fabc4388
x21: ffffffc0fabc4010 x20: ffffffc0fa243010
x19: ffffffc0fabc4000 x18: 0000000091c3d373
x17: 0000000000000400 x16: 000000000000001a
x15: 000000019e06d400 x14: 0000000000000001
x13: 0000000000000000 x12: 00000000000006b6
x11: 0000000000000000 x10: 0000000000000000
x9 : ffffffc0fa18ba00 x8 : 0000000000000000
x7 : 0000000000000000 x6 : ffffff80127a3d9a
x5 : ffffff8013d93550 x4 : 0000000000000000
x3 : 0000000000000000 x2 : 0000000000000000
x1 : 00000000000000fe x0 : 0000000000000000
Call trace:
devfreq_add_device+0x2e4/0x410
devm_devfreq_add_device+0x64/0xac
msm_gpu_init+0x320/0x5c0
adreno_gpu_init+0x21c/0x274
a6xx_gpu_init+0x68/0xf4
adreno_bind+0x158/0x284
component_bind_all+0x110/0x204
msm_drm_bind+0x118/0x5b8
try_to_bring_up_master+0x15c/0x19c
component_master_add_with_match+0xb4/0xec
msm_pdev_probe+0x1f0/0x27c
platform_drv_probe+0x90/0xb0
really_probe+0x120/0x298
driver_probe_device+0x64/0xfc
__device_attach_driver+0x8c/0xa4
bus_for_each_drv+0x88/0xd0
__device_attach+0xac/0x134
device_initial_probe+0x20/0x2c
bus_probe_device+0x34/0x90
deferred_probe_work_func+0x74/0xac
process_one_work+0x210/0x428
worker_thread+0x278/0x3e4
kthread+0x120/0x130
ret_from_fork+0x10/0x18
Code: aa0003f8 b13ffc1f 54000762 f901c278 (f9401b08)
---[ end trace a6ecc18ce5894375 ]---
Kernel panic - not syncing: Fatal exception
Signed-off-by: Rob Clark <robdclark@chromium.org>
---
drivers/devfreq/devfreq.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index 0ae3de76833b..d29f66f0e52a 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -254,7 +254,7 @@ static struct devfreq_governor *try_then_request_governor(const char *name)
/* Restore previous state before return */
mutex_lock(&devfreq_list_lock);
if (err)
- return NULL;
+ return ERR_PTR(err);
governor = find_devfreq_governor(name);
}
--
2.20.1
next reply other threads:[~2019-05-23 21:59 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20190523215902epcas5p40e3aca0efb342c8d778529fef416c3fd@epcas5p4.samsung.com>
2019-05-23 21:58 ` Rob Clark [this message]
2019-05-24 7:15 ` [PATCH] PM / devfreq: try_then_request_governor should not return NULL Chanwoo Choi
2019-05-24 13:15 ` Rob Clark
2019-05-28 1:18 ` Chanwoo Choi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190523215853.16622-1-robdclark@gmail.com \
--to=robdclark@gmail.com \
--cc=cw00.choi@samsung.com \
--cc=kyungmin.park@samsung.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=myungjoo.ham@samsung.com \
--cc=robdclark@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.