Lines Matching refs:tx_sa

49 static int sdp_post_srcavail(struct socket *sk, struct tx_srcavail_state *tx_sa)
58 WARN_ON(ssk->tx_sa);
60 BUG_ON(!tx_sa);
61 BUG_ON(!tx_sa->fmr || !tx_sa->fmr->fmr->lkey);
62 BUG_ON(!tx_sa->umem);
63 BUG_ON(!tx_sa->umem->chunk_list.next);
65 chunk = list_entry(tx_sa->umem->chunk_list.next, struct ib_umem_chunk, list);
68 off = tx_sa->umem->offset;
69 len = tx_sa->umem->length;
71 tx_sa->bytes_sent = tx_sa->bytes_acked = 0;
73 mb = sdp_alloc_mb_srcavail(sk, len, tx_sa->fmr->fmr->lkey, off, 0);
79 TX_SRCAVAIL_STATE(mb) = tx_sa; /* tx_sa is hanged on the mb
81 ssk->tx_sa = tx_sa;
84 payload_len = MIN(tx_sa->umem->page_size - off, len);
106 tx_sa->bytes_sent = tx_sa->umem->length;
107 tx_sa->bytes_acked = payload_len;
155 struct tx_srcavail_state *tx_sa = ssk->tx_sa;
165 tx_sa->abort_flags |= TX_SA_TIMEDOUT;
171 else if (tx_sa->bytes_acked > tx_sa->bytes_sent) {
174 tx_sa->abort_flags |= TX_SA_ERROR;
178 if (tx_sa->abort_flags & TX_SA_SENDSM) {
189 tx_sa->abort_flags |= TX_SA_INTRRUPTED;
193 if (ssk->rx_sa && (tx_sa->bytes_acked < tx_sa->bytes_sent)) {
195 tx_sa->abort_flags |= TX_SA_CROSS_SEND;
205 tx_sa->abort_flags &&
207 (tx_sa->bytes_acked < tx_sa->bytes_sent) &&
213 if (tx_sa->bytes_acked == tx_sa->bytes_sent)
230 tx_sa->bytes_acked, tx_sa->bytes_sent, tx_sa->abort_flags);
344 if (!ssk->tx_sa) {
349 if (ssk->tx_sa->mseq > mseq_ack) {
352 mseq_ack, ssk->tx_sa->mseq);
358 ssk->tx_sa->abort_flags |= TX_SA_SENDSM;
374 sdp_prf1(sk, NULL, "RdmaRdCompl ssk=%p tx_sa=%p", ssk, ssk->tx_sa);
375 sdp_dbg_data(sk, "RdmaRdCompl ssk=%p tx_sa=%p\n", ssk, ssk->tx_sa);
381 if (!ssk->tx_sa) {
386 if (ssk->tx_sa->mseq > mseq_ack) {
389 mseq_ack, ssk->tx_sa->mseq);
393 ssk->tx_sa->bytes_acked += bytes_completed;
641 static int do_sdp_sendmsg_zcopy(struct socket *sk, struct tx_srcavail_state *tx_sa,
649 &tx_sa->fmr, &tx_sa->umem);
663 rc = sdp_post_srcavail(sk, tx_sa);
671 enum tx_sa_flag f = tx_sa->abort_flags;
698 ssk->tx_sa = NULL;
702 sdp_update_iov_used(sk, iov, tx_sa->bytes_acked);
705 sdp_free_fmr(sk, &tx_sa->fmr, &tx_sa->umem);
716 struct tx_srcavail_state *tx_sa;
738 tx_sa = kmalloc(sizeof(struct tx_srcavail_state), GFP_KERNEL);
739 if (!tx_sa) {
747 tx_sa_reset(tx_sa);
749 rc = do_sdp_sendmsg_zcopy(sk, tx_sa, iov, &timeo);
756 } while (!rc && iov->iov_len > 0 && !tx_sa->abort_flags);
758 kfree(tx_sa);
775 struct tx_srcavail_state *tx_sa = ssk->tx_sa;
778 if (!tx_sa)
786 sdp_free_fmr(sk, &tx_sa->fmr, &tx_sa->umem);
788 ssk->tx_sa = NULL;