@@ -1607,13 +1607,13 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset)
1607
1607
1608
1608
ret = get_futex_key (uaddr , flags & FLAGS_SHARED , & key , FUTEX_READ );
1609
1609
if (unlikely (ret != 0 ))
1610
- goto out ;
1610
+ return ret ;
1611
1611
1612
1612
hb = hash_futex (& key );
1613
1613
1614
1614
/* Make sure we really have tasks to wakeup */
1615
1615
if (!hb_waiters_pending (hb ))
1616
- goto out ;
1616
+ return ret ;
1617
1617
1618
1618
spin_lock (& hb -> lock );
1619
1619
@@ -1636,7 +1636,6 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset)
1636
1636
1637
1637
spin_unlock (& hb -> lock );
1638
1638
wake_up_q (& wake_q );
1639
- out :
1640
1639
return ret ;
1641
1640
}
1642
1641
@@ -1703,10 +1702,10 @@ futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2,
1703
1702
retry :
1704
1703
ret = get_futex_key (uaddr1 , flags & FLAGS_SHARED , & key1 , FUTEX_READ );
1705
1704
if (unlikely (ret != 0 ))
1706
- goto out ;
1705
+ return ret ;
1707
1706
ret = get_futex_key (uaddr2 , flags & FLAGS_SHARED , & key2 , FUTEX_WRITE );
1708
1707
if (unlikely (ret != 0 ))
1709
- goto out ;
1708
+ return ret ;
1710
1709
1711
1710
hb1 = hash_futex (& key1 );
1712
1711
hb2 = hash_futex (& key2 );
@@ -1724,13 +1723,13 @@ futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2,
1724
1723
* an MMU, but we might get them from range checking
1725
1724
*/
1726
1725
ret = op_ret ;
1727
- goto out ;
1726
+ return ret ;
1728
1727
}
1729
1728
1730
1729
if (op_ret == - EFAULT ) {
1731
1730
ret = fault_in_user_writeable (uaddr2 );
1732
1731
if (ret )
1733
- goto out ;
1732
+ return ret ;
1734
1733
}
1735
1734
1736
1735
if (!(flags & FLAGS_SHARED )) {
@@ -1773,7 +1772,6 @@ futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2,
1773
1772
out_unlock :
1774
1773
double_unlock_hb (hb1 , hb2 );
1775
1774
wake_up_q (& wake_q );
1776
- out :
1777
1775
return ret ;
1778
1776
}
1779
1777
@@ -1980,20 +1978,18 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
1980
1978
retry :
1981
1979
ret = get_futex_key (uaddr1 , flags & FLAGS_SHARED , & key1 , FUTEX_READ );
1982
1980
if (unlikely (ret != 0 ))
1983
- goto out ;
1981
+ return ret ;
1984
1982
ret = get_futex_key (uaddr2 , flags & FLAGS_SHARED , & key2 ,
1985
1983
requeue_pi ? FUTEX_WRITE : FUTEX_READ );
1986
1984
if (unlikely (ret != 0 ))
1987
- goto out ;
1985
+ return ret ;
1988
1986
1989
1987
/*
1990
1988
* The check above which compares uaddrs is not sufficient for
1991
1989
* shared futexes. We need to compare the keys:
1992
1990
*/
1993
- if (requeue_pi && match_futex (& key1 , & key2 )) {
1994
- ret = - EINVAL ;
1995
- goto out ;
1996
- }
1991
+ if (requeue_pi && match_futex (& key1 , & key2 ))
1992
+ return - EINVAL ;
1997
1993
1998
1994
hb1 = hash_futex (& key1 );
1999
1995
hb2 = hash_futex (& key2 );
@@ -2013,7 +2009,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
2013
2009
2014
2010
ret = get_user (curval , uaddr1 );
2015
2011
if (ret )
2016
- goto out ;
2012
+ return ret ;
2017
2013
2018
2014
if (!(flags & FLAGS_SHARED ))
2019
2015
goto retry_private ;
@@ -2079,7 +2075,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
2079
2075
ret = fault_in_user_writeable (uaddr2 );
2080
2076
if (!ret )
2081
2077
goto retry ;
2082
- goto out ;
2078
+ return ret ;
2083
2079
case - EBUSY :
2084
2080
case - EAGAIN :
2085
2081
/*
@@ -2198,8 +2194,6 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
2198
2194
double_unlock_hb (hb1 , hb2 );
2199
2195
wake_up_q (& wake_q );
2200
2196
hb_waiters_dec (hb2 );
2201
-
2202
- out :
2203
2197
return ret ? ret : task_count ;
2204
2198
}
2205
2199
@@ -2545,7 +2539,7 @@ static int fixup_owner(u32 __user *uaddr, struct futex_q *q, int locked)
2545
2539
*/
2546
2540
if (q -> pi_state -> owner != current )
2547
2541
ret = fixup_pi_state_owner (uaddr , q , current );
2548
- goto out ;
2542
+ return ret ? ret : locked ;
2549
2543
}
2550
2544
2551
2545
/*
@@ -2558,7 +2552,7 @@ static int fixup_owner(u32 __user *uaddr, struct futex_q *q, int locked)
2558
2552
*/
2559
2553
if (q -> pi_state -> owner == current ) {
2560
2554
ret = fixup_pi_state_owner (uaddr , q , NULL );
2561
- goto out ;
2555
+ return ret ;
2562
2556
}
2563
2557
2564
2558
/*
@@ -2572,8 +2566,7 @@ static int fixup_owner(u32 __user *uaddr, struct futex_q *q, int locked)
2572
2566
q -> pi_state -> owner );
2573
2567
}
2574
2568
2575
- out :
2576
- return ret ? ret : locked ;
2569
+ return ret ;
2577
2570
}
2578
2571
2579
2572
/**
@@ -2670,7 +2663,7 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
2670
2663
2671
2664
ret = get_user (uval , uaddr );
2672
2665
if (ret )
2673
- goto out ;
2666
+ return ret ;
2674
2667
2675
2668
if (!(flags & FLAGS_SHARED ))
2676
2669
goto retry_private ;
@@ -2683,7 +2676,6 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
2683
2676
ret = - EWOULDBLOCK ;
2684
2677
}
2685
2678
2686
- out :
2687
2679
return ret ;
2688
2680
}
2689
2681
0 commit comments