Lines Matching full:call
19 struct rxrpc_txbuf *rxrpc_alloc_txbuf(struct rxrpc_call *call, u8 packet_type, in rxrpc_alloc_txbuf() argument
29 txb->call_debug_id = call->debug_id; in rxrpc_alloc_txbuf()
36 txb->seq = call->tx_prepared + 1; in rxrpc_alloc_txbuf()
37 txb->wire.epoch = htonl(call->conn->proto.epoch); in rxrpc_alloc_txbuf()
38 txb->wire.cid = htonl(call->cid); in rxrpc_alloc_txbuf()
39 txb->wire.callNumber = htonl(call->call_id); in rxrpc_alloc_txbuf()
42 txb->wire.flags = call->conn->out_clientflag; in rxrpc_alloc_txbuf()
44 txb->wire.securityIndex = call->security_ix; in rxrpc_alloc_txbuf()
46 txb->wire.serviceId = htons(call->dest_srx.srx_service); in rxrpc_alloc_txbuf()
105 void rxrpc_shrink_call_tx_buffer(struct rxrpc_call *call) in rxrpc_shrink_call_tx_buffer() argument
108 rxrpc_seq_t hard_ack = smp_load_acquire(&call->acks_hard_ack); in rxrpc_shrink_call_tx_buffer()
111 _enter("%x/%x/%x", call->tx_bottom, call->acks_hard_ack, call->tx_top); in rxrpc_shrink_call_tx_buffer()
113 while ((txb = list_first_entry_or_null(&call->tx_buffer, in rxrpc_shrink_call_tx_buffer()
115 hard_ack = smp_load_acquire(&call->acks_hard_ack); in rxrpc_shrink_call_tx_buffer()
119 if (txb->seq != call->tx_bottom + 1) in rxrpc_shrink_call_tx_buffer()
121 ASSERTCMP(txb->seq, ==, call->tx_bottom + 1); in rxrpc_shrink_call_tx_buffer()
122 smp_store_release(&call->tx_bottom, call->tx_bottom + 1); in rxrpc_shrink_call_tx_buffer()
125 trace_rxrpc_txqueue(call, rxrpc_txqueue_dequeue); in rxrpc_shrink_call_tx_buffer()
128 if (after(call->acks_hard_ack, call->tx_bottom + 128)) in rxrpc_shrink_call_tx_buffer()
133 wake_up(&call->waitq); in rxrpc_shrink_call_tx_buffer()