diff options
Diffstat (limited to 'net/rxrpc/conn_object.c')
| -rw-r--r-- | net/rxrpc/conn_object.c | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/net/rxrpc/conn_object.c b/net/rxrpc/conn_object.c index df8a271948a1..0af4642aeec4 100644 --- a/net/rxrpc/conn_object.c +++ b/net/rxrpc/conn_object.c @@ -68,6 +68,7 @@ struct rxrpc_connection *rxrpc_alloc_connection(struct rxrpc_net *rxnet,  		INIT_LIST_HEAD(&conn->proc_link);  		INIT_LIST_HEAD(&conn->link);  		mutex_init(&conn->security_lock); +		mutex_init(&conn->tx_data_alloc_lock);  		skb_queue_head_init(&conn->rx_queue);  		conn->rxnet = rxnet;  		conn->security = &rxrpc_no_security; @@ -341,6 +342,9 @@ static void rxrpc_clean_up_connection(struct work_struct *work)  	 */  	rxrpc_purge_queue(&conn->rx_queue); +	if (conn->tx_data_alloc.va) +		__page_frag_cache_drain(virt_to_page(conn->tx_data_alloc.va), +					conn->tx_data_alloc.pagecnt_bias);  	call_rcu(&conn->rcu, rxrpc_rcu_free_connection);  }  |