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 {
7171 struct list_head wait_psock_list ;
7272 struct sk_buff * seq_skb ;
7373 struct mutex tx_mutex ;
74- u32 tx_stopped : 1 ;
7574
7675 /* Don't use bit fields here, these are set under different locks */
7776 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)
430430
431431 /* Check if the socket is reserved so someone is waiting for sending. */
432432 kcm = psock -> tx_kcm ;
433- if (kcm && ! unlikely ( kcm -> tx_stopped ) )
433+ if (kcm )
434434 queue_work (kcm_wq , & kcm -> tx_work );
435435
436436 spin_unlock_bh (& mux -> lock );
@@ -1693,12 +1693,6 @@ static int kcm_release(struct socket *sock)
16931693 */
16941694 __skb_queue_purge (& sk -> sk_write_queue );
16951695
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-
17021696 release_sock (sk );
17031697
17041698 spin_lock_bh (& mux -> lock );
@@ -1714,7 +1708,7 @@ static int kcm_release(struct socket *sock)
17141708 /* Cancel work. After this point there should be no outside references
17151709 * to the kcm socket.
17161710 */
1717- cancel_work_sync (& kcm -> tx_work );
1711+ disable_work_sync (& kcm -> tx_work );
17181712
17191713 lock_sock (sk );
17201714 psock = kcm -> tx_psock ;
You can’t perform that action at this time.
0 commit comments