diff options
-rw-r--r-- | include/linux/sched.h | 3 | ||||
-rw-r--r-- | kernel/freezer.c | 6 |
2 files changed, 1 insertions, 8 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index 68daf4f27e2c..d12bd03b688f 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -220,7 +220,7 @@ extern char ___assert_task_state[1 - 2*!!( | |||
220 | ((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0) | 220 | ((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0) |
221 | #define task_contributes_to_load(task) \ | 221 | #define task_contributes_to_load(task) \ |
222 | ((task->state & TASK_UNINTERRUPTIBLE) != 0 && \ | 222 | ((task->state & TASK_UNINTERRUPTIBLE) != 0 && \ |
223 | (task->flags & PF_FREEZING) == 0) | 223 | (task->flags & PF_FROZEN) == 0) |
224 | 224 | ||
225 | #define __set_task_state(tsk, state_value) \ | 225 | #define __set_task_state(tsk, state_value) \ |
226 | do { (tsk)->state = (state_value); } while (0) | 226 | do { (tsk)->state = (state_value); } while (0) |
@@ -1773,7 +1773,6 @@ extern void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t * | |||
1773 | #define PF_MEMALLOC 0x00000800 /* Allocating memory */ | 1773 | #define PF_MEMALLOC 0x00000800 /* Allocating memory */ |
1774 | #define PF_NPROC_EXCEEDED 0x00001000 /* set_user noticed that RLIMIT_NPROC was exceeded */ | 1774 | #define PF_NPROC_EXCEEDED 0x00001000 /* set_user noticed that RLIMIT_NPROC was exceeded */ |
1775 | #define PF_USED_MATH 0x00002000 /* if unset the fpu must be initialized before use */ | 1775 | #define PF_USED_MATH 0x00002000 /* if unset the fpu must be initialized before use */ |
1776 | #define PF_FREEZING 0x00004000 /* freeze in progress. do not account to load */ | ||
1777 | #define PF_NOFREEZE 0x00008000 /* this thread should not be frozen */ | 1776 | #define PF_NOFREEZE 0x00008000 /* this thread should not be frozen */ |
1778 | #define PF_FROZEN 0x00010000 /* frozen for system suspend */ | 1777 | #define PF_FROZEN 0x00010000 /* frozen for system suspend */ |
1779 | #define PF_FSTRANS 0x00020000 /* inside a filesystem transaction */ | 1778 | #define PF_FSTRANS 0x00020000 /* inside a filesystem transaction */ |
diff --git a/kernel/freezer.c b/kernel/freezer.c index a257ecd37c48..b8b562124ba9 100644 --- a/kernel/freezer.c +++ b/kernel/freezer.c | |||
@@ -44,9 +44,6 @@ repeat: | |||
44 | recalc_sigpending(); /* We sent fake signal, clean it up */ | 44 | recalc_sigpending(); /* We sent fake signal, clean it up */ |
45 | spin_unlock_irq(¤t->sighand->siglock); | 45 | spin_unlock_irq(¤t->sighand->siglock); |
46 | 46 | ||
47 | /* prevent accounting of that task to load */ | ||
48 | current->flags |= PF_FREEZING; | ||
49 | |||
50 | for (;;) { | 47 | for (;;) { |
51 | set_current_state(TASK_UNINTERRUPTIBLE); | 48 | set_current_state(TASK_UNINTERRUPTIBLE); |
52 | if (!freezing(current) || | 49 | if (!freezing(current) || |
@@ -56,9 +53,6 @@ repeat: | |||
56 | schedule(); | 53 | schedule(); |
57 | } | 54 | } |
58 | 55 | ||
59 | /* Remove the accounting blocker */ | ||
60 | current->flags &= ~PF_FREEZING; | ||
61 | |||
62 | /* leave FROZEN */ | 56 | /* leave FROZEN */ |
63 | spin_lock_irq(&freezer_lock); | 57 | spin_lock_irq(&freezer_lock); |
64 | if (freezing(current)) | 58 | if (freezing(current)) |