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 @@ -429,7 +429,7 @@ static void psock_write_space(struct sock *sk)
429429
430430 /* Check if the socket is reserved so someone is waiting for sending. */
431431 kcm = psock -> tx_kcm ;
432- if (kcm && ! unlikely ( kcm -> tx_stopped ) )
432+ if (kcm )
433433 queue_work (kcm_wq , & kcm -> tx_work );
434434
435435 spin_unlock_bh (& mux -> lock );
@@ -1696,12 +1696,6 @@ static int kcm_release(struct socket *sock)
16961696 */
16971697 __skb_queue_purge (& sk -> sk_write_queue );
16981698
1699- /* Set tx_stopped. This is checked when psock is bound to a kcm and we
1700- * get a writespace callback. This prevents further work being queued
1701- * from the callback (unbinding the psock occurs after canceling work.
1702- */
1703- kcm -> tx_stopped = 1 ;
1704-
17051699 release_sock (sk );
17061700
17071701 spin_lock_bh (& mux -> lock );
@@ -1717,7 +1711,7 @@ static int kcm_release(struct socket *sock)
17171711 /* Cancel work. After this point there should be no outside references
17181712 * to the kcm socket.
17191713 */
1720- cancel_work_sync (& kcm -> tx_work );
1714+ disable_work_sync (& kcm -> tx_work );
17211715
17221716 lock_sock (sk );
17231717 psock = kcm -> tx_psock ;
You can’t perform that action at this time.
0 commit comments