mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
Revert "PM / devfreq: rockchip_dmc: Fix using smp_processor_id() in preemptible warning"
This reverts commit 67721b1381.
The get_cup() will disable preemption and the clk_set_rate() may call
schedule() on some platforms, otherwise we may schedule while atomic.
BUG: scheduling while atomic: sh/552/0x00000002
Modules linked in:
CPU: 1 PID: 552 Comm: sh Not tainted 4.4.179 #1122
Hardware name: Rockchip RK1808 EVB V10 Board (DT)
Call trace:
[<ffffff80080873bc>] dump_backtrace+0x0/0x1cc
[<ffffff800808759c>] show_stack+0x14/0x1c
[<ffffff800823a474>] dump_stack+0x94/0xbc
[<ffffff80080b4664>] __schedule_bug+0x3c/0x54
[<ffffff8008657c10>] __schedule+0x88/0x460[root@rk1808:/]#
[<ffffff800865805c>] schedule+0x74/0x94
[<ffffff800865a6dc>] schedule_timeout+0x148/0x178
[<ffffff80084a2920>] rockchip_dmcfreq_wait_complete+0x11c/0x144
[<ffffff800849d508>] rockchip_ddrclk_sip_set_rate_v2+0x64/0x74
[<ffffff8008497420>] clk_change_rate+0xd4/0x208
[<ffffff80084975e4>] clk_core_set_rate_nolock+0x90/0xa4
[<ffffff8008497620>] clk_set_rate+0x28/0x48
[<ffffff80084a1624>] rockchip_dmcfreq_target+0x1f0/0x320
[<ffffff800849fc8c>] update_devfreq+0x118/0x1ac
[<ffffff80084a0974>] store_freq+0x5c/0x84
[<ffffff800832a800>] dev_attr_store+0x18/0x28
[<ffffff80081992d8>] sysfs_kf_write+0x38/0x50
[<ffffff80081984d8>] kernfs_fop_write+0x114/0x170
[<ffffff800813d1f8>] __vfs_write+0x1c/0xc4
[<ffffff800813d990>] vfs_write+0x9c/0x150
[<ffffff800813e21c>] SyS_write+0x44/0x88
[<ffffff8008082ef0>] el0_svc_naked+0x24/0x28
Change-Id: I18f3ee81139ca2908d91a7ef59d3635d1a7e69cb
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
This commit is contained in:
@@ -1353,7 +1353,7 @@ static int rockchip_dmcfreq_target(struct device *dev, unsigned long *freq,
|
||||
* Go to specified cpufreq and block other cpufreq changes since
|
||||
* set_rate needs to complete during vblank.
|
||||
*/
|
||||
cpu_cur = get_cpu();
|
||||
cpu_cur = smp_processor_id();
|
||||
policy = cpufreq_cpu_get(cpu_cur);
|
||||
if (!policy) {
|
||||
dev_err(dev, "cpu%d policy NULL\n", cpu_cur);
|
||||
@@ -1443,7 +1443,6 @@ out:
|
||||
up_write(&policy->rwsem);
|
||||
cpufreq_cpu_put(policy);
|
||||
cpufreq:
|
||||
put_cpu();
|
||||
put_online_cpus();
|
||||
return err;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user