mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
soc: rockchip: system_monitor: make sure thermal work is done before reboot
Thermal work is bound to a cpu which may offline while reboot, and it will cause warning as below: [ 37.344392] WARNING: CPU: 0 PID: 1 at kernel/workqueue.c:858 wq_worker_waking_up+0x50/0x9c [ 37.345118] Modules linked in: [ 37.345407] CPU: 0 PID: 1 Comm: init Not tainted 4.19.111 #187 [ 37.345927] Hardware name: Rockchip RK3399 EVB IND LPDDR4 Board edp (Android) (DT) [ 37.346599] pstate: 20400085 (nzCv daIf +PAN -UAO) [ 37.347030] pc : wq_worker_waking_up+0x50/0x9c [ 37.347427] lr : wq_worker_waking_up+0x18/0x9c [ 37.444388] Call trace: [ 37.444615] wq_worker_waking_up+0x50/0x9c [ 37.444990] try_to_wake_up+0x42c/0x600 [ 37.445342] default_wake_function+0x14/0x1c [ 37.445730] autoremove_wake_function+0x18/0x58 [ 37.446139] __wake_up_common+0xb0/0x138 [ 37.446491] __wake_up_common_lock+0x7c/0xc4 [ 37.446876] __wake_up+0x14/0x1c [ 37.447174] rk3x_i2c_irq+0x564/0x7bc [ 37.447503] rk3x_i2c_restart_notify+0x44/0xf0 [ 37.447902] atomic_notifier_call_chain+0x4c/0x84 [ 37.448323] do_kernel_i2c_restart+0x20/0x28 [ 37.448710] machine_restart+0x20/0x58 [ 37.449050] kernel_restart+0x100/0x110 [ 37.449402] __arm64_sys_reboot+0x140/0x20c [ 37.449778] el0_svc_common+0x98/0x150 [ 37.450119] el0_svc_handler+0x60/0x78 [ 37.450459] el0_svc+0x8/0xc Change-Id: I21b30e95ce99cb186d443c66049d279e0805c5d7 Signed-off-by: Liang Chen <cl@rock-chips.com>
This commit is contained in:
@@ -1393,6 +1393,7 @@ static int rockchip_monitor_reboot_notifier(struct notifier_block *nb,
|
||||
unsigned long action, void *ptr)
|
||||
{
|
||||
rockchip_set_system_status(SYS_STATUS_REBOOT);
|
||||
cancel_delayed_work_sync(&system_monitor->thermal_work);
|
||||
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user