aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2004-06-23 19:23:48 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-06-23 19:23:48 -0700
commit97b6dbb209b4bfb029823a4d7fb46eea3ec22574 (patch)
tree556d0a71b1d0bc8d1047f73cf1937983a9e817dd /kernel
parentf9e382ec07311eb94c7254bd2cb83d18106def7a (diff)
downloadhistory-97b6dbb209b4bfb029823a4d7fb46eea3ec22574.tar.gz
[PATCH] Prepare for SMP suspend
From: Pavel Machek <pavel@ucw.cz> Its very bad idea to freeze migration threads, as it crashes machine upon next call to "schedule()". In refrigerator, I had one "wake_up_process()" too many. This fixes it. Signed-off-by: Pavel Machek <pavel@suse.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/power/process.c1
-rw-r--r--kernel/sched.c1
2 files changed, 1 insertions, 1 deletions
diff --git a/kernel/power/process.c b/kernel/power/process.c
index 347435415eaf1f..0d1f63ec7287f9 100644
--- a/kernel/power/process.c
+++ b/kernel/power/process.c
@@ -109,7 +109,6 @@ void thaw_processes(void)
wake_up_process(p);
} else
printk(KERN_INFO " Strange, %s not stopped\n", p->comm );
- wake_up_process(p);
} while_each_thread(g, p);
read_unlock(&tasklist_lock);
diff --git a/kernel/sched.c b/kernel/sched.c
index 95f18cf8a5b6b4..9e676db0267b79 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -3571,6 +3571,7 @@ static int migration_call(struct notifier_block *nfb, unsigned long action,
p = kthread_create(migration_thread, hcpu, "migration/%d",cpu);
if (IS_ERR(p))
return NOTIFY_BAD;
+ p->flags |= PF_NOFREEZE;
kthread_bind(p, cpu);
/* Must be high prio: stop_machine expects to yield to it. */
rq = task_rq_lock(p, &flags);