|
@@ -103,16 +103,11 @@ static void do_suspend(void)
|
|
|
|
|
|
shutting_down = SHUTDOWN_SUSPEND;
|
|
|
|
|
|
-#ifdef CONFIG_PREEMPT
|
|
|
- /* If the kernel is preemptible, we need to freeze all the processes
|
|
|
- to prevent them from being in the middle of a pagetable update
|
|
|
- during suspend. */
|
|
|
err = freeze_processes();
|
|
|
if (err) {
|
|
|
pr_err("%s: freeze failed %d\n", __func__, err);
|
|
|
goto out;
|
|
|
}
|
|
|
-#endif
|
|
|
|
|
|
err = dpm_suspend_start(PMSG_FREEZE);
|
|
|
if (err) {
|
|
@@ -157,10 +152,8 @@ out_resume:
|
|
|
dpm_resume_end(si.cancelled ? PMSG_THAW : PMSG_RESTORE);
|
|
|
|
|
|
out_thaw:
|
|
|
-#ifdef CONFIG_PREEMPT
|
|
|
thaw_processes();
|
|
|
out:
|
|
|
-#endif
|
|
|
shutting_down = SHUTDOWN_INVALID;
|
|
|
}
|
|
|
#endif /* CONFIG_HIBERNATE_CALLBACKS */
|