@ -283,8 +283,7 @@ again:
return 0 ;
}
static inline
void put_futex_key ( int fshared , union futex_key * key )
static inline void put_futex_key ( union futex_key * key )
{
drop_futex_key_refs ( key ) ;
}
@ -907,7 +906,7 @@ static int futex_wake(u32 __user *uaddr, int fshared, int nr_wake, u32 bitset)
}
spin_unlock ( & hb - > lock ) ;
put_futex_key ( fshared , & key ) ;
put_futex_key ( & key ) ;
out :
return ret ;
}
@ -965,8 +964,8 @@ retry_private:
if ( ! fshared )
goto retry_private ;
put_futex_key ( fshared , & key2 ) ;
put_futex_key ( fshared , & key1 ) ;
put_futex_key ( & key2 ) ;
put_futex_key ( & key1 ) ;
goto retry ;
}
@ -996,9 +995,9 @@ retry_private:
double_unlock_hb ( hb1 , hb2 ) ;
out_put_keys :
put_futex_key ( fshared , & key2 ) ;
put_futex_key ( & key2 ) ;
out_put_key1 :
put_futex_key ( fshared , & key1 ) ;
put_futex_key ( & key1 ) ;
out :
return ret ;
}
@ -1219,8 +1218,8 @@ retry_private:
if ( ! fshared )
goto retry_private ;
put_futex_key ( fshared , & key2 ) ;
put_futex_key ( fshared , & key1 ) ;
put_futex_key ( & key2 ) ;
put_futex_key ( & key1 ) ;
goto retry ;
}
if ( curval ! = * cmpval ) {
@ -1260,8 +1259,8 @@ retry_private:
break ;
case - EFAULT :
double_unlock_hb ( hb1 , hb2 ) ;
put_futex_key ( fshared , & key2 ) ;
put_futex_key ( fshared , & key1 ) ;
put_futex_key ( & key2 ) ;
put_futex_key ( & key1 ) ;
ret = fault_in_user_writeable ( uaddr2 ) ;
if ( ! ret )
goto retry ;
@ -1269,8 +1268,8 @@ retry_private:
case - EAGAIN :
/* The owner was exiting, try again. */
double_unlock_hb ( hb1 , hb2 ) ;
put_futex_key ( fshared , & key2 ) ;
put_futex_key ( fshared , & key1 ) ;
put_futex_key ( & key2 ) ;
put_futex_key ( & key1 ) ;
cond_resched ( ) ;
goto retry ;
default :
@ -1352,9 +1351,9 @@ out_unlock:
drop_futex_key_refs ( & key1 ) ;
out_put_keys :
put_futex_key ( fshared , & key2 ) ;
put_futex_key ( & key2 ) ;
out_put_key1 :
put_futex_key ( fshared , & key1 ) ;
put_futex_key ( & key1 ) ;
out :
if ( pi_state ! = NULL )
free_pi_state ( pi_state ) ;
@ -1494,7 +1493,7 @@ static void unqueue_me_pi(struct futex_q *q)
* private futexes .
*/
static int fixup_pi_state_owner ( u32 __user * uaddr , struct futex_q * q ,
struct task_struct * newowner , int fshared )
struct task_struct * newowner )
{
u32 newtid = task_pid_vnr ( newowner ) | FUTEX_WAITERS ;
struct futex_pi_state * pi_state = q - > pi_state ;
@ -1600,7 +1599,6 @@ static long futex_wait_restart(struct restart_block *restart);
/**
* fixup_owner ( ) - Post lock pi_state and corner case management
* @ uaddr : user address of the futex
* @ fshared : whether the futex is shared ( 1 ) or not ( 0 )
* @ q : futex_q ( contains pi_state and access to the rt_mutex )
* @ locked : if the attempt to take the rt_mutex succeeded ( 1 ) or not ( 0 )
*
@ -1613,8 +1611,7 @@ static long futex_wait_restart(struct restart_block *restart);
* 0 - success , lock not taken
* < 0 - on error ( - EFAULT )
*/
static int fixup_owner ( u32 __user * uaddr , int fshared , struct futex_q * q ,
int locked )
static int fixup_owner ( u32 __user * uaddr , struct futex_q * q , int locked )
{
struct task_struct * owner ;
int ret = 0 ;
@ -1625,7 +1622,7 @@ static int fixup_owner(u32 __user *uaddr, int fshared, struct futex_q *q,
* did a lock - steal - fix up the PI - state in that case :
*/
if ( q - > pi_state - > owner ! = current )
ret = fixup_pi_state_owner ( uaddr , q , current , fshared ) ;
ret = fixup_pi_state_owner ( uaddr , q , current ) ;
goto out ;
}
@ -1652,7 +1649,7 @@ static int fixup_owner(u32 __user *uaddr, int fshared, struct futex_q *q,
* lock . Fix the state up .
*/
owner = rt_mutex_owner ( & q - > pi_state - > pi_mutex ) ;
ret = fixup_pi_state_owner ( uaddr , q , owner , fshared ) ;
ret = fixup_pi_state_owner ( uaddr , q , owner ) ;
goto out ;
}
@ -1772,7 +1769,7 @@ retry_private:
if ( ! fshared )
goto retry_private ;
put_futex_key ( fshared , & q - > key ) ;
put_futex_key ( & q - > key ) ;
goto retry ;
}
@ -1783,7 +1780,7 @@ retry_private:
out :
if ( ret )
put_futex_key ( fshared , & q - > key ) ;
put_futex_key ( & q - > key ) ;
return ret ;
}
@ -1941,7 +1938,7 @@ retry_private:
* exit to complete .
*/
queue_unlock ( & q , hb ) ;
put_futex_key ( fshared , & q . key ) ;
put_futex_key ( & q . key ) ;
cond_resched ( ) ;
goto retry ;
default :
@ -1971,7 +1968,7 @@ retry_private:
* Fixup the pi_state owner and possibly acquire the lock if we
* haven ' t already .
*/
res = fixup_owner ( uaddr , fshared , & q , ! ret ) ;
res = fixup_owner ( uaddr , & q , ! ret ) ;
/*
* If fixup_owner ( ) returned an error , proprogate that . If it acquired
* the lock , clear our - ETIMEDOUT or - EINTR .
@ -1995,7 +1992,7 @@ out_unlock_put_key:
queue_unlock ( & q , hb ) ;
out_put_key :
put_futex_key ( fshared , & q . key ) ;
put_futex_key ( & q . key ) ;
out :
if ( to )
destroy_hrtimer_on_stack ( & to - > timer ) ;
@ -2011,7 +2008,7 @@ uaddr_faulted:
if ( ! fshared )
goto retry_private ;
put_futex_key ( fshared , & q . key ) ;
put_futex_key ( & q . key ) ;
goto retry ;
}
@ -2093,14 +2090,14 @@ retry:
out_unlock :
spin_unlock ( & hb - > lock ) ;
put_futex_key ( fshared , & key ) ;
put_futex_key ( & key ) ;
out :
return ret ;
pi_faulted :
spin_unlock ( & hb - > lock ) ;
put_futex_key ( fshared , & key ) ;
put_futex_key ( & key ) ;
ret = fault_in_user_writeable ( uaddr ) ;
if ( ! ret )
@ -2273,8 +2270,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, int fshared,
*/
if ( q . pi_state & & ( q . pi_state - > owner ! = current ) ) {
spin_lock ( q . lock_ptr ) ;
ret = fixup_pi_state_owner ( uaddr2 , & q , current ,
fshared ) ;
ret = fixup_pi_state_owner ( uaddr2 , & q , current ) ;
spin_unlock ( q . lock_ptr ) ;
}
} else {
@ -2293,7 +2289,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, int fshared,
* Fixup the pi_state owner and possibly acquire the lock if we
* haven ' t already .
*/
res = fixup_owner ( uaddr2 , fshared , & q , ! ret ) ;
res = fixup_owner ( uaddr2 , & q , ! ret ) ;
/*
* If fixup_owner ( ) returned an error , proprogate that . If it
* acquired the lock , clear - ETIMEDOUT or - EINTR .
@ -2324,9 +2320,9 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, int fshared,
}
out_put_keys :
put_futex_key ( fshared , & q . key ) ;
put_futex_key ( & q . key ) ;
out_key2 :
put_futex_key ( fshared , & key2 ) ;
put_futex_key ( & key2 ) ;
out :
if ( to ) {