Lines Matching refs:call
19 struct rxrpc_txbuf *rxrpc_alloc_data_txbuf(struct rxrpc_call *call, size_t data_size, in rxrpc_alloc_data_txbuf() argument
35 mutex_lock(&call->conn->tx_data_alloc_lock); in rxrpc_alloc_data_txbuf()
36 buf = page_frag_alloc_align(&call->conn->tx_data_alloc, total, gfp, in rxrpc_alloc_data_txbuf()
38 mutex_unlock(&call->conn->tx_data_alloc_lock); in rxrpc_alloc_data_txbuf()
50 txb->call_debug_id = call->debug_id; in rxrpc_alloc_data_txbuf()
55 txb->flags = call->conn->out_clientflag; in rxrpc_alloc_data_txbuf()
57 txb->seq = call->tx_prepared + 1; in rxrpc_alloc_data_txbuf()
64 whdr->epoch = htonl(call->conn->proto.epoch); in rxrpc_alloc_data_txbuf()
65 whdr->cid = htonl(call->cid); in rxrpc_alloc_data_txbuf()
66 whdr->callNumber = htonl(call->call_id); in rxrpc_alloc_data_txbuf()
71 whdr->securityIndex = call->security_ix; in rxrpc_alloc_data_txbuf()
73 whdr->serviceId = htons(call->dest_srx.srx_service); in rxrpc_alloc_data_txbuf()
85 struct rxrpc_txbuf *rxrpc_alloc_ack_txbuf(struct rxrpc_call *call, size_t sack_size) in rxrpc_alloc_ack_txbuf() argument
99 buf = page_frag_alloc(&call->local->tx_alloc, in rxrpc_alloc_ack_txbuf()
107 buf2 = page_frag_alloc(&call->local->tx_alloc, sack_size, gfp); in rxrpc_alloc_ack_txbuf()
123 txb->call_debug_id = call->debug_id; in rxrpc_alloc_ack_txbuf()
128 txb->flags = call->conn->out_clientflag; in rxrpc_alloc_ack_txbuf()
141 whdr->epoch = htonl(call->conn->proto.epoch); in rxrpc_alloc_ack_txbuf()
142 whdr->cid = htonl(call->cid); in rxrpc_alloc_ack_txbuf()
143 whdr->callNumber = htonl(call->call_id); in rxrpc_alloc_ack_txbuf()
148 whdr->securityIndex = call->security_ix; in rxrpc_alloc_ack_txbuf()
150 whdr->serviceId = htons(call->dest_srx.srx_service); in rxrpc_alloc_ack_txbuf()
209 void rxrpc_shrink_call_tx_buffer(struct rxrpc_call *call) in rxrpc_shrink_call_tx_buffer() argument
212 rxrpc_seq_t hard_ack = smp_load_acquire(&call->acks_hard_ack); in rxrpc_shrink_call_tx_buffer()
215 _enter("%x/%x/%x", call->tx_bottom, call->acks_hard_ack, call->tx_top); in rxrpc_shrink_call_tx_buffer()
217 while ((txb = list_first_entry_or_null(&call->tx_buffer, in rxrpc_shrink_call_tx_buffer()
219 hard_ack = smp_load_acquire(&call->acks_hard_ack); in rxrpc_shrink_call_tx_buffer()
223 if (txb->seq != call->tx_bottom + 1) in rxrpc_shrink_call_tx_buffer()
225 ASSERTCMP(txb->seq, ==, call->tx_bottom + 1); in rxrpc_shrink_call_tx_buffer()
226 smp_store_release(&call->tx_bottom, call->tx_bottom + 1); in rxrpc_shrink_call_tx_buffer()
229 trace_rxrpc_txqueue(call, rxrpc_txqueue_dequeue); in rxrpc_shrink_call_tx_buffer()
232 if (after(call->acks_hard_ack, call->tx_bottom + 128)) in rxrpc_shrink_call_tx_buffer()
237 wake_up(&call->waitq); in rxrpc_shrink_call_tx_buffer()