mirror of
https://github.com/torvalds/linux.git
synced 2026-06-09 23:23:53 +02:00
Revert "PM / devfreq: rockchip_dmc: Fix using smp_processor_id() in preemptible warning"
This reverts commit 67721b1381452b7a3b957a58e35a720ee3ab2a5a. 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:
parent
0c9fa833a7
commit
378cb4994d
|
|
@ -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 @@ static int rockchip_dmcfreq_target(struct device *dev, unsigned long *freq,
|
|||
up_write(&policy->rwsem);
|
||||
cpufreq_cpu_put(policy);
|
||||
cpufreq:
|
||||
put_cpu();
|
||||
put_online_cpus();
|
||||
return err;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user