File tree Expand file tree Collapse file tree 2 files changed +2
-9
lines changed Expand file tree Collapse file tree 2 files changed +2
-9
lines changed Original file line number Diff line number Diff line change @@ -71,7 +71,6 @@ struct kcm_sock {
71
71
struct list_head wait_psock_list ;
72
72
struct sk_buff * seq_skb ;
73
73
struct mutex tx_mutex ;
74
- u32 tx_stopped : 1 ;
75
74
76
75
/* Don't use bit fields here, these are set under different locks */
77
76
bool tx_wait ;
Original file line number Diff line number Diff line change @@ -430,7 +430,7 @@ static void psock_write_space(struct sock *sk)
430
430
431
431
/* Check if the socket is reserved so someone is waiting for sending. */
432
432
kcm = psock -> tx_kcm ;
433
- if (kcm && ! unlikely ( kcm -> tx_stopped ) )
433
+ if (kcm )
434
434
queue_work (kcm_wq , & kcm -> tx_work );
435
435
436
436
spin_unlock_bh (& mux -> lock );
@@ -1693,12 +1693,6 @@ static int kcm_release(struct socket *sock)
1693
1693
*/
1694
1694
__skb_queue_purge (& sk -> sk_write_queue );
1695
1695
1696
- /* Set tx_stopped. This is checked when psock is bound to a kcm and we
1697
- * get a writespace callback. This prevents further work being queued
1698
- * from the callback (unbinding the psock occurs after canceling work.
1699
- */
1700
- kcm -> tx_stopped = 1 ;
1701
-
1702
1696
release_sock (sk );
1703
1697
1704
1698
spin_lock_bh (& mux -> lock );
@@ -1714,7 +1708,7 @@ static int kcm_release(struct socket *sock)
1714
1708
/* Cancel work. After this point there should be no outside references
1715
1709
* to the kcm socket.
1716
1710
*/
1717
- cancel_work_sync (& kcm -> tx_work );
1711
+ disable_work_sync (& kcm -> tx_work );
1718
1712
1719
1713
lock_sock (sk );
1720
1714
psock = kcm -> tx_psock ;
You can’t perform that action at this time.
0 commit comments