diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/freezer.h | 11 | ||||
| -rw-r--r-- | include/linux/sched.h | 1 |
2 files changed, 6 insertions, 6 deletions
diff --git a/include/linux/freezer.h b/include/linux/freezer.h index 393063096134..5e75e26d4787 100644 --- a/include/linux/freezer.h +++ b/include/linux/freezer.h | |||
| @@ -16,16 +16,15 @@ static inline int frozen(struct task_struct *p) | |||
| 16 | */ | 16 | */ |
| 17 | static inline int freezing(struct task_struct *p) | 17 | static inline int freezing(struct task_struct *p) |
| 18 | { | 18 | { |
| 19 | return p->flags & PF_FREEZE; | 19 | return test_tsk_thread_flag(p, TIF_FREEZE); |
| 20 | } | 20 | } |
| 21 | 21 | ||
| 22 | /* | 22 | /* |
| 23 | * Request that a process be frozen | 23 | * Request that a process be frozen |
| 24 | * FIXME: SMP problem. We may not modify other process' flags! | ||
| 25 | */ | 24 | */ |
| 26 | static inline void freeze(struct task_struct *p) | 25 | static inline void freeze(struct task_struct *p) |
| 27 | { | 26 | { |
| 28 | p->flags |= PF_FREEZE; | 27 | set_tsk_thread_flag(p, TIF_FREEZE); |
| 29 | } | 28 | } |
| 30 | 29 | ||
| 31 | /* | 30 | /* |
| @@ -33,7 +32,7 @@ static inline void freeze(struct task_struct *p) | |||
| 33 | */ | 32 | */ |
| 34 | static inline void do_not_freeze(struct task_struct *p) | 33 | static inline void do_not_freeze(struct task_struct *p) |
| 35 | { | 34 | { |
| 36 | p->flags &= ~PF_FREEZE; | 35 | clear_tsk_thread_flag(p, TIF_FREEZE); |
| 37 | } | 36 | } |
| 38 | 37 | ||
| 39 | /* | 38 | /* |
| @@ -54,7 +53,9 @@ static inline int thaw_process(struct task_struct *p) | |||
| 54 | */ | 53 | */ |
| 55 | static inline void frozen_process(struct task_struct *p) | 54 | static inline void frozen_process(struct task_struct *p) |
| 56 | { | 55 | { |
| 57 | p->flags = (p->flags & ~PF_FREEZE) | PF_FROZEN; | 56 | p->flags |= PF_FROZEN; |
| 57 | wmb(); | ||
| 58 | clear_tsk_thread_flag(p, TIF_FREEZE); | ||
| 58 | } | 59 | } |
| 59 | 60 | ||
| 60 | extern void refrigerator(void); | 61 | extern void refrigerator(void); |
diff --git a/include/linux/sched.h b/include/linux/sched.h index ea92e5c89089..446373535190 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -1144,7 +1144,6 @@ static inline void put_task_struct(struct task_struct *t) | |||
| 1144 | #define PF_MEMALLOC 0x00000800 /* Allocating memory */ | 1144 | #define PF_MEMALLOC 0x00000800 /* Allocating memory */ |
| 1145 | #define PF_FLUSHER 0x00001000 /* responsible for disk writeback */ | 1145 | #define PF_FLUSHER 0x00001000 /* responsible for disk writeback */ |
| 1146 | #define PF_USED_MATH 0x00002000 /* if unset the fpu must be initialized before use */ | 1146 | #define PF_USED_MATH 0x00002000 /* if unset the fpu must be initialized before use */ |
| 1147 | #define PF_FREEZE 0x00004000 /* this task is being frozen for suspend now */ | ||
| 1148 | #define PF_NOFREEZE 0x00008000 /* this thread should not be frozen */ | 1147 | #define PF_NOFREEZE 0x00008000 /* this thread should not be frozen */ |
| 1149 | #define PF_FROZEN 0x00010000 /* frozen for system suspend */ | 1148 | #define PF_FROZEN 0x00010000 /* frozen for system suspend */ |
| 1150 | #define PF_FSTRANS 0x00020000 /* inside a filesystem transaction */ | 1149 | #define PF_FSTRANS 0x00020000 /* inside a filesystem transaction */ |
