|
@@ -228,27 +228,19 @@ static inline bool freezer_should_skip(struct task_struct *p)
|
|
|
#define wait_event_freezable(wq, condition) \
|
|
|
({ \
|
|
|
int __retval; \
|
|
|
- for (;;) { \
|
|
|
- __retval = wait_event_interruptible(wq, \
|
|
|
- (condition) || freezing(current)); \
|
|
|
- if (__retval || (condition)) \
|
|
|
- break; \
|
|
|
- try_to_freeze(); \
|
|
|
- } \
|
|
|
+ freezer_do_not_count(); \
|
|
|
+ __retval = wait_event_interruptible(wq, (condition)); \
|
|
|
+ freezer_count(); \
|
|
|
__retval; \
|
|
|
})
|
|
|
|
|
|
#define wait_event_freezable_timeout(wq, condition, timeout) \
|
|
|
({ \
|
|
|
long __retval = timeout; \
|
|
|
- for (;;) { \
|
|
|
- __retval = wait_event_interruptible_timeout(wq, \
|
|
|
- (condition) || freezing(current), \
|
|
|
- __retval); \
|
|
|
- if (__retval <= 0 || (condition)) \
|
|
|
- break; \
|
|
|
- try_to_freeze(); \
|
|
|
- } \
|
|
|
+ freezer_do_not_count(); \
|
|
|
+ __retval = wait_event_interruptible_timeout(wq, (condition), \
|
|
|
+ __retval); \
|
|
|
+ freezer_count(); \
|
|
|
__retval; \
|
|
|
})
|
|
|
|