@ -179,24 +179,23 @@ wait_queue_head_t *bit_waitqueue(void *, int);
# define wake_up_interruptible_sync_poll(x, m) \
__wake_up_sync_key ( ( x ) , TASK_INTERRUPTIBLE , 1 , ( void * ) ( m ) )
# define ___wait_cond_timeout(condition, ret ) \
# define ___wait_cond_timeout(condition) \
( { \
bool __cond = ( condition ) ; \
if ( __cond & & ! ret ) \
ret = 1 ; \
__cond | | ! ret ; \
if ( __cond & & ! __ ret) \
__ ret = 1 ; \
__cond | | ! __ ret; \
} )
# define ___wait_signal_pending(state) \
( ( state = = TASK_INTERRUPTIBLE & & signal_pending ( current ) ) | | \
( state = = TASK_KILLABLE & & fatal_signal_pending ( current ) ) )
# define ___wait_nop_ret int ret __always_unused
# define ___wait_event(wq, condition, state, exclusive, ret, cmd) \
do { \
( { \
__label__ __out ; \
DEFINE_WAIT ( __wait ) ; \
long __ret = ret ; \
\
for ( ; ; ) { \
if ( exclusive ) \
@ -208,7 +207,7 @@ do { \
break ; \
\
if ( ___wait_signal_pending ( state ) ) { \
ret = - ERESTARTSYS ; \
__ ret = - ERESTARTSYS ; \
if ( exclusive ) { \
abort_exclusive_wait ( & wq , & __wait , \
state , NULL ) ; \
@ -220,12 +219,12 @@ do { \
cmd ; \
} \
finish_wait ( & wq , & __wait ) ; \
__out : ; \
} while ( 0 )
__out : __ret ; \
} )
# define __wait_event(wq, condition) \
___wait_event ( wq , condition , TASK_UNINTERRUPTIBLE , 0 , \
___wait_nop_ret , schedule ( ) )
( void ) ___wait_event ( wq , condition , TASK_UNINTERRUPTIBLE , 0 , 0 , \
schedule ( ) )
/**
* wait_event - sleep until a condition gets true
@ -246,10 +245,10 @@ do { \
__wait_event ( wq , condition ) ; \
} while ( 0 )
# define __wait_event_timeout(wq, condition, re t) \
___wait_event ( wq , ___wait_cond_timeout ( condition , ret ) , \
TASK_UNINTERRUPTIBLE , 0 , re t, \
ret = schedule_timeout ( ret ) )
# define __wait_event_timeout(wq, condition, timeou t) \
___wait_event ( wq , ___wait_cond_timeout ( condition ) , \
TASK_UNINTERRUPTIBLE , 0 , timeou t, \
__ ret = schedule_timeout ( __ ret) )
/**
* wait_event_timeout - sleep until a condition gets true or a timeout elapses
@ -272,12 +271,12 @@ do { \
( { \
long __ret = timeout ; \
if ( ! ( condition ) ) \
__wait_event_timeout ( wq , condition , __re t) ; \
__ret = __ wait_event_timeout ( wq , condition , timeou t) ; \
__ret ; \
} )
# define __wait_event_interruptible(wq, condition, ret ) \
___wait_event ( wq , condition , TASK_INTERRUPTIBLE , 0 , ret , \
# define __wait_event_interruptible(wq, condition) \
___wait_event ( wq , condition , TASK_INTERRUPTIBLE , 0 , 0 , \
schedule ( ) )
/**
@ -299,14 +298,14 @@ do { \
( { \
int __ret = 0 ; \
if ( ! ( condition ) ) \
__wait_event_interruptible ( wq , condition , __ret ) ; \
__ret = __ wait_event_interruptible ( wq , condition ) ; \
__ret ; \
} )
# define __wait_event_interruptible_timeout(wq, condition, ret) \
___wait_event ( wq , ___wait_cond_timeout ( condition , ret ) , \
TASK_INTERRUPTIBLE , 0 , re t, \
ret = schedule_timeout ( ret ) )
# define __wait_event_interruptible_timeout(wq, condition, timeout) \
___wait_event ( wq , ___wait_cond_timeout ( condition ) , \
TASK_INTERRUPTIBLE , 0 , timeou t, \
__ ret = schedule_timeout ( __ ret) )
/**
* wait_event_interruptible_timeout - sleep until a condition gets true or a timeout elapses
@ -330,7 +329,8 @@ do { \
( { \
long __ret = timeout ; \
if ( ! ( condition ) ) \
__wait_event_interruptible_timeout ( wq , condition , __ret ) ; \
__ret = __wait_event_interruptible_timeout ( wq , \
condition , timeout ) ; \
__ret ; \
} )
@ -347,7 +347,7 @@ do { \
current - > timer_slack_ns , \
HRTIMER_MODE_REL ) ; \
\
___wait_event ( wq , condition , state , 0 , __ret , \
__ret = __ _wait_event ( wq , condition , state , 0 , 0 , \
if ( ! __t . task ) { \
__ret = - ETIME ; \
break ; \
@ -409,15 +409,15 @@ do { \
__ret ; \
} )
# define __wait_event_interruptible_exclusive(wq, condition, ret ) \
___wait_event ( wq , condition , TASK_INTERRUPTIBLE , 1 , ret , \
# define __wait_event_interruptible_exclusive(wq, condition) \
___wait_event ( wq , condition , TASK_INTERRUPTIBLE , 1 , 0 , \
schedule ( ) )
# define wait_event_interruptible_exclusive(wq, condition) \
( { \
int __ret = 0 ; \
if ( ! ( condition ) ) \
__wait_event_interruptible_exclusive ( wq , condition , __ret ) ; \
__ret = __ wait_event_interruptible_exclusive ( wq , condition ) ; \
__ret ; \
} )
@ -570,8 +570,8 @@ do { \
# define __wait_event_killable(wq, condition, ret ) \
___wait_event ( wq , condition , TASK_KILLABLE , 0 , ret , schedule ( ) )
# define __wait_event_killable(wq, condition) \
___wait_event ( wq , condition , TASK_KILLABLE , 0 , 0 , schedule ( ) )
/**
* wait_event_killable - sleep until a condition gets true
@ -592,18 +592,17 @@ do { \
( { \
int __ret = 0 ; \
if ( ! ( condition ) ) \
__wait_event_killable ( wq , condition , __ret ) ; \
__ret = __ wait_event_killable ( wq , condition ) ; \
__ret ; \
} )
# define __wait_event_lock_irq(wq, condition, lock, cmd) \
___wait_event ( wq , condition , TASK_UNINTERRUPTIBLE , 0 , \
___wait_nop_ret , \
spin_unlock_irq ( & lock ) ; \
cmd ; \
schedule ( ) ; \
spin_lock_irq ( & lock ) )
( void ) ___wait_event ( wq , condition , TASK_UNINTERRUPTIBLE , 0 , 0 , \
spin_unlock_irq ( & lock ) ; \
cmd ; \
schedule ( ) ; \
spin_lock_irq ( & lock ) )
/**
* wait_event_lock_irq_cmd - sleep until a condition gets true . The
@ -663,11 +662,11 @@ do { \
} while ( 0 )
# define __wait_event_interruptible_lock_irq(wq, condition, lock, ret, cmd) \
___wait_event ( wq , condition , TASK_INTERRUPTIBLE , 0 , ret , \
spin_unlock_irq ( & lock ) ; \
cmd ; \
schedule ( ) ; \
# define __wait_event_interruptible_lock_irq(wq, condition, lock, cmd) \
___wait_event ( wq , condition , TASK_INTERRUPTIBLE , 0 , 0 , \
spin_unlock_irq ( & lock ) ; \
cmd ; \
schedule ( ) ; \
spin_lock_irq ( & lock ) )
/**
@ -698,10 +697,9 @@ do { \
# define wait_event_interruptible_lock_irq_cmd(wq, condition, lock, cmd) \
( { \
int __ret = 0 ; \
\
if ( ! ( condition ) ) \
__wait_event_interruptible_lock_irq ( wq , condition , \
lock , __ret , cmd ) ; \
__ret = __ wait_event_interruptible_lock_irq ( wq , \
condition , lock , cmd ) ; \
__ret ; \
} )
@ -730,18 +728,18 @@ do { \
# define wait_event_interruptible_lock_irq(wq, condition, lock) \
( { \
int __ret = 0 ; \
\
if ( ! ( condition ) ) \
__wait_event_interruptible_lock_irq ( wq , condition , \
lock , __ret , ) ; \
__ret = __ wait_event_interruptible_lock_irq ( wq , \
condition , lock , ) \
__ret ; \
} )
# define __wait_event_interruptible_lock_irq_timeout(wq, condition, lock, ret) \
___wait_event ( wq , ___wait_cond_timeout ( condition , ret ) , \
TASK_INTERRUPTIBLE , 0 , ret , \
spin_unlock_irq ( & lock ) ; \
ret = schedule_timeout ( ret ) ; \
# define __wait_event_interruptible_lock_irq_timeout(wq, condition, \
lock , timeout ) \
___wait_event ( wq , ___wait_cond_timeout ( condition ) , \
TASK_INTERRUPTIBLE , 0 , ret , \
spin_unlock_irq ( & lock ) ; \
__ret = schedule_timeout ( __ret ) ; \
spin_lock_irq ( & lock ) ) ;
/**
@ -771,11 +769,10 @@ do { \
# define wait_event_interruptible_lock_irq_timeout(wq, condition, lock, \
timeout ) \
( { \
int __ret = timeout ; \
\
long __ret = timeout ; \
if ( ! ( condition ) ) \
__wait_event_interruptible_lock_irq_timeout ( \
wq , condition , lock , __re t) ; \
__ret = __ wait_event_interruptible_lock_irq_timeout ( \
wq , condition , lock , timeou t) ; \
__ret ; \
} )