@@ -677,10 +677,6 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, enum futex_a
677
677
return err ;
678
678
}
679
679
680
- static inline void put_futex_key (union futex_key * key )
681
- {
682
- }
683
-
684
680
/**
685
681
* fault_in_user_writeable() - Fault in user address and verify RW access
686
682
* @uaddr: pointer to faulting user space address
@@ -1617,7 +1613,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset)
1617
1613
1618
1614
/* Make sure we really have tasks to wakeup */
1619
1615
if (!hb_waiters_pending (hb ))
1620
- goto out_put_key ;
1616
+ goto out ;
1621
1617
1622
1618
spin_lock (& hb -> lock );
1623
1619
@@ -1640,8 +1636,6 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset)
1640
1636
1641
1637
spin_unlock (& hb -> lock );
1642
1638
wake_up_q (& wake_q );
1643
- out_put_key :
1644
- put_futex_key (& key );
1645
1639
out :
1646
1640
return ret ;
1647
1641
}
@@ -1712,7 +1706,7 @@ futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2,
1712
1706
goto out ;
1713
1707
ret = get_futex_key (uaddr2 , flags & FLAGS_SHARED , & key2 , FUTEX_WRITE );
1714
1708
if (unlikely (ret != 0 ))
1715
- goto out_put_key1 ;
1709
+ goto out ;
1716
1710
1717
1711
hb1 = hash_futex (& key1 );
1718
1712
hb2 = hash_futex (& key2 );
@@ -1730,22 +1724,20 @@ futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2,
1730
1724
* an MMU, but we might get them from range checking
1731
1725
*/
1732
1726
ret = op_ret ;
1733
- goto out_put_keys ;
1727
+ goto out ;
1734
1728
}
1735
1729
1736
1730
if (op_ret == - EFAULT ) {
1737
1731
ret = fault_in_user_writeable (uaddr2 );
1738
1732
if (ret )
1739
- goto out_put_keys ;
1733
+ goto out ;
1740
1734
}
1741
1735
1742
1736
if (!(flags & FLAGS_SHARED )) {
1743
1737
cond_resched ();
1744
1738
goto retry_private ;
1745
1739
}
1746
1740
1747
- put_futex_key (& key2 );
1748
- put_futex_key (& key1 );
1749
1741
cond_resched ();
1750
1742
goto retry ;
1751
1743
}
@@ -1781,10 +1773,6 @@ futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2,
1781
1773
out_unlock :
1782
1774
double_unlock_hb (hb1 , hb2 );
1783
1775
wake_up_q (& wake_q );
1784
- out_put_keys :
1785
- put_futex_key (& key2 );
1786
- out_put_key1 :
1787
- put_futex_key (& key1 );
1788
1776
out :
1789
1777
return ret ;
1790
1778
}
@@ -1996,15 +1984,15 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
1996
1984
ret = get_futex_key (uaddr2 , flags & FLAGS_SHARED , & key2 ,
1997
1985
requeue_pi ? FUTEX_WRITE : FUTEX_READ );
1998
1986
if (unlikely (ret != 0 ))
1999
- goto out_put_key1 ;
1987
+ goto out ;
2000
1988
2001
1989
/*
2002
1990
* The check above which compares uaddrs is not sufficient for
2003
1991
* shared futexes. We need to compare the keys:
2004
1992
*/
2005
1993
if (requeue_pi && match_futex (& key1 , & key2 )) {
2006
1994
ret = - EINVAL ;
2007
- goto out_put_keys ;
1995
+ goto out ;
2008
1996
}
2009
1997
2010
1998
hb1 = hash_futex (& key1 );
@@ -2025,13 +2013,11 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
2025
2013
2026
2014
ret = get_user (curval , uaddr1 );
2027
2015
if (ret )
2028
- goto out_put_keys ;
2016
+ goto out ;
2029
2017
2030
2018
if (!(flags & FLAGS_SHARED ))
2031
2019
goto retry_private ;
2032
2020
2033
- put_futex_key (& key2 );
2034
- put_futex_key (& key1 );
2035
2021
goto retry ;
2036
2022
}
2037
2023
if (curval != * cmpval ) {
@@ -2090,8 +2076,6 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
2090
2076
case - EFAULT :
2091
2077
double_unlock_hb (hb1 , hb2 );
2092
2078
hb_waiters_dec (hb2 );
2093
- put_futex_key (& key2 );
2094
- put_futex_key (& key1 );
2095
2079
ret = fault_in_user_writeable (uaddr2 );
2096
2080
if (!ret )
2097
2081
goto retry ;
@@ -2106,8 +2090,6 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
2106
2090
*/
2107
2091
double_unlock_hb (hb1 , hb2 );
2108
2092
hb_waiters_dec (hb2 );
2109
- put_futex_key (& key2 );
2110
- put_futex_key (& key1 );
2111
2093
/*
2112
2094
* Handle the case where the owner is in the middle of
2113
2095
* exiting. Wait for the exit to complete otherwise
@@ -2217,10 +2199,6 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
2217
2199
wake_up_q (& wake_q );
2218
2200
hb_waiters_dec (hb2 );
2219
2201
2220
- out_put_keys :
2221
- put_futex_key (& key2 );
2222
- out_put_key1 :
2223
- put_futex_key (& key1 );
2224
2202
out :
2225
2203
return ret ? ret : task_count ;
2226
2204
}
@@ -2697,7 +2675,6 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
2697
2675
if (!(flags & FLAGS_SHARED ))
2698
2676
goto retry_private ;
2699
2677
2700
- put_futex_key (& q -> key );
2701
2678
goto retry ;
2702
2679
}
2703
2680
@@ -2707,8 +2684,6 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
2707
2684
}
2708
2685
2709
2686
out :
2710
- if (ret )
2711
- put_futex_key (& q -> key );
2712
2687
return ret ;
2713
2688
}
2714
2689
@@ -2853,7 +2828,6 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
2853
2828
* - EAGAIN: The user space value changed.
2854
2829
*/
2855
2830
queue_unlock (hb );
2856
- put_futex_key (& q .key );
2857
2831
/*
2858
2832
* Handle the case where the owner is in the middle of
2859
2833
* exiting. Wait for the exit to complete otherwise
@@ -2961,13 +2935,11 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
2961
2935
put_pi_state (pi_state );
2962
2936
}
2963
2937
2964
- goto out_put_key ;
2938
+ goto out ;
2965
2939
2966
2940
out_unlock_put_key :
2967
2941
queue_unlock (hb );
2968
2942
2969
- out_put_key :
2970
- put_futex_key (& q .key );
2971
2943
out :
2972
2944
if (to ) {
2973
2945
hrtimer_cancel (& to -> timer );
@@ -2980,12 +2952,11 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
2980
2952
2981
2953
ret = fault_in_user_writeable (uaddr );
2982
2954
if (ret )
2983
- goto out_put_key ;
2955
+ goto out ;
2984
2956
2985
2957
if (!(flags & FLAGS_SHARED ))
2986
2958
goto retry_private ;
2987
2959
2988
- put_futex_key (& q .key );
2989
2960
goto retry ;
2990
2961
}
2991
2962
@@ -3114,16 +3085,13 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
3114
3085
out_unlock :
3115
3086
spin_unlock (& hb -> lock );
3116
3087
out_putkey :
3117
- put_futex_key (& key );
3118
3088
return ret ;
3119
3089
3120
3090
pi_retry :
3121
- put_futex_key (& key );
3122
3091
cond_resched ();
3123
3092
goto retry ;
3124
3093
3125
3094
pi_faulted :
3126
- put_futex_key (& key );
3127
3095
3128
3096
ret = fault_in_user_writeable (uaddr );
3129
3097
if (!ret )
@@ -3265,7 +3233,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
3265
3233
*/
3266
3234
ret = futex_wait_setup (uaddr , val , flags , & q , & hb );
3267
3235
if (ret )
3268
- goto out_key2 ;
3236
+ goto out ;
3269
3237
3270
3238
/*
3271
3239
* The check above which compares uaddrs is not sufficient for
@@ -3274,7 +3242,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
3274
3242
if (match_futex (& q .key , & key2 )) {
3275
3243
queue_unlock (hb );
3276
3244
ret = - EINVAL ;
3277
- goto out_put_keys ;
3245
+ goto out ;
3278
3246
}
3279
3247
3280
3248
/* Queue the futex_q, drop the hb lock, wait for wakeup. */
@@ -3284,7 +3252,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
3284
3252
ret = handle_early_requeue_pi_wakeup (hb , & q , & key2 , to );
3285
3253
spin_unlock (& hb -> lock );
3286
3254
if (ret )
3287
- goto out_put_keys ;
3255
+ goto out ;
3288
3256
3289
3257
/*
3290
3258
* In order for us to be here, we know our q.key == key2, and since
@@ -3374,11 +3342,6 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
3374
3342
ret = - EWOULDBLOCK ;
3375
3343
}
3376
3344
3377
- out_put_keys :
3378
- put_futex_key (& q .key );
3379
- out_key2 :
3380
- put_futex_key (& key2 );
3381
-
3382
3345
out :
3383
3346
if (to ) {
3384
3347
hrtimer_cancel (& to -> timer );
0 commit comments