diff options
author | Jean-Philippe Brucker <jean-philippe.brucker@arm.com> | 2019-06-10 18:38:29 +0100 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2019-06-17 04:50:21 -0700 |
commit | 92e074acf6f7694e96204265eb18ac113f546e80 (patch) | |
tree | fa375113d371dce0d7b14b8b766a157c1ed1fa38 /drivers/memory | |
parent | 5ec47cda74e98ad2f723f93b4a97ba87638338aa (diff) | |
download | linux-92e074acf6f7694e96204265eb18ac113f546e80.tar.gz linux-92e074acf6f7694e96204265eb18ac113f546e80.tar.bz2 linux-92e074acf6f7694e96204265eb18ac113f546e80.zip |
firmware/psci: psci_checker: Park kthreads before stopping them
Since commit 85f1abe0019f ("kthread, sched/wait: Fix kthread_parkme()
completion issue"), kthreads that are bound to a CPU must be parked
before being stopped. At the moment the PSCI checker calls
kthread_stop() directly on the suspend kthread, which triggers the
following warning:
[ 6.068288] WARNING: CPU: 1 PID: 1 at kernel/kthread.c:398 __kthread_bind_mask+0x20/0x78
...
[ 6.190151] Call trace:
[ 6.192566] __kthread_bind_mask+0x20/0x78
[ 6.196615] kthread_unpark+0x74/0x80
[ 6.200235] kthread_stop+0x44/0x1d8
[ 6.203769] psci_checker+0x3bc/0x484
[ 6.207389] do_one_initcall+0x48/0x260
[ 6.211180] kernel_init_freeable+0x2c8/0x368
[ 6.215488] kernel_init+0x10/0x100
[ 6.218935] ret_from_fork+0x10/0x1c
[ 6.222467] ---[ end trace e05e22863d043cd3 ]---
kthread_unpark() tries to bind the thread to its CPU and aborts with a
WARN() if the thread wasn't in TASK_PARKED state. Park the kthreads
before stopping them.
Fixes: 85f1abe0019f ("kthread, sched/wait: Fix kthread_parkme() completion issue")
Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'drivers/memory')
0 files changed, 0 insertions, 0 deletions