diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-08-25 08:04:27 (GMT) |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-08-25 08:04:32 (GMT) |
commit | daedc71836e5a398fd0cc0e12c5cb43539478485 (patch) | |
tree | c56567a92017679e57195cef992d4a5561c20e0e /kernel/freezer.c | |
parent | c36ba80ea01d0aecb652c26799a912e760ce8981 (diff) | |
parent | 422bef879e84104fee6dc68ded0e371dbeb5f88e (diff) | |
download | linux-fsl-qoriq-daedc71836e5a398fd0cc0e12c5cb43539478485.tar.xz |
Merge commit 'v2.6.31-rc7' into irq/core
Merge reason: move from an -rc2 base to -rc7.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/freezer.c')
-rw-r--r-- | kernel/freezer.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/freezer.c b/kernel/freezer.c index 2f4936c..bd1d42b 100644 --- a/kernel/freezer.c +++ b/kernel/freezer.c @@ -44,12 +44,19 @@ void refrigerator(void) recalc_sigpending(); /* We sent fake signal, clean it up */ spin_unlock_irq(¤t->sighand->siglock); + /* prevent accounting of that task to load */ + current->flags |= PF_FREEZING; + for (;;) { set_current_state(TASK_UNINTERRUPTIBLE); if (!frozen(current)) break; schedule(); } + + /* Remove the accounting blocker */ + current->flags &= ~PF_FREEZING; + pr_debug("%s left refrigerator\n", current->comm); __set_current_state(save); } |