summaryrefslogtreecommitdiff
path: root/drivers/firmware/psci/psci_checker.c
diff options
context:
space:
mode:
authorRodrigo Vivi <rodrigo.vivi@intel.com>2019-07-29 08:51:48 -0700
committerRodrigo Vivi <rodrigo.vivi@intel.com>2019-07-29 08:51:48 -0700
commited32f8d42cee118b075e4372a55c7739a11094b2 (patch)
tree5a806c5168d4177e0536b98b6bda30ec4bdbac43 /drivers/firmware/psci/psci_checker.c
parent60a4233a4952729089e4df152e730f8f4d0e82ce (diff)
parent5f9e832c137075045d15cd6899ab0505cfb2ca4b (diff)
Merge drm/drm-next into drm-intel-next-queued
Catching up with 5.3-rc* Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'drivers/firmware/psci/psci_checker.c')
-rw-r--r--drivers/firmware/psci/psci_checker.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/firmware/psci/psci_checker.c b/drivers/firmware/psci/psci_checker.c
index 08c85099d4d0..f3659443f8c2 100644
--- a/drivers/firmware/psci/psci_checker.c
+++ b/drivers/firmware/psci/psci_checker.c
@@ -359,16 +359,16 @@ static int suspend_test_thread(void *arg)
for (;;) {
/* Needs to be set first to avoid missing a wakeup. */
set_current_state(TASK_INTERRUPTIBLE);
- if (kthread_should_stop()) {
- __set_current_state(TASK_RUNNING);
+ if (kthread_should_park())
break;
- }
schedule();
}
pr_info("CPU %d suspend test results: success %d, shallow states %d, errors %d\n",
cpu, nb_suspend, nb_shallow_sleep, nb_err);
+ kthread_parkme();
+
return nb_err;
}
@@ -433,8 +433,10 @@ static int suspend_tests(void)
/* Stop and destroy all threads, get return status. */
- for (i = 0; i < nb_threads; ++i)
+ for (i = 0; i < nb_threads; ++i) {
+ err += kthread_park(threads[i]);
err += kthread_stop(threads[i]);
+ }
out:
cpuidle_resume_and_unlock();
kfree(threads);