Lines Matching refs:tx_ring

52 	if (!callout_pending(&ssk->tx_ring.timer))
53 callout_reset(&ssk->tx_ring.timer, SDP_TX_POLL_TIMEOUT,
57 if (force || (++ssk->tx_ring.poll_cnt & (SDP_TX_POLL_MODER - 1)) == 0)
85 mseq = ring_head(ssk->tx_ring);
121 tx_req = &ssk->tx_ring.buffer[mseq & (SDP_TX_SIZE - 1)];
157 atomic_inc(&ssk->tx_ring.head);
158 atomic_dec(&ssk->tx_ring.credits);
170 struct sdp_tx_ring *tx_ring = &ssk->tx_ring;
172 if (unlikely(mseq != ring_tail(*tx_ring))) {
174 mseq, ring_tail(*tx_ring));
179 tx_req = &tx_ring->buffer[mseq & (SDP_TX_SIZE - 1)];
189 atomic_inc(&tx_ring->tail);
241 if (!ssk->tx_ring.rdma_inflight) {
246 if (!ssk->tx_ring.rdma_inflight->busy) {
255 ssk->tx_ring.rdma_inflight->busy = 0;
286 if (!ssk->tx_ring.cq) {
292 n = ib_poll_cq(ssk->tx_ring.cq, SDP_NUM_WC, ibwc);
317 ring_head(ssk->tx_ring), ring_tail(ssk->tx_ring));
338 callout_reset(&ssk->tx_ring.timer, SDP_TX_POLL_TIMEOUT,
342 if (ssk->tx_ring.rdma_inflight && ssk->tx_ring.rdma_inflight->busy) {
355 if (!callout_active(&ssk->tx_ring.timer))
357 callout_deactivate(&ssk->tx_ring.timer);
380 mb = sdp_send_completion(ssk, ring_tail(ssk->tx_ring));
425 callout_init_rw(&ssk->tx_ring.timer, &ssk->lock, 0);
427 atomic_set(&ssk->tx_ring.head, 1);
428 atomic_set(&ssk->tx_ring.tail, 1);
430 ssk->tx_ring.buffer = kzalloc(
431 sizeof *ssk->tx_ring.buffer * SDP_TX_SIZE, GFP_KERNEL);
432 if (!ssk->tx_ring.buffer) {
435 sizeof(*ssk->tx_ring.buffer) * SDP_TX_SIZE);
448 ssk->tx_ring.cq = tx_cq;
449 ssk->tx_ring.poll_cnt = 0;
455 kfree(ssk->tx_ring.buffer);
456 ssk->tx_ring.buffer = NULL;
467 callout_stop(&ssk->tx_ring.timer);
470 callout_drain(&ssk->tx_ring.timer);
473 if (ssk->tx_ring.buffer) {
476 kfree(ssk->tx_ring.buffer);
477 ssk->tx_ring.buffer = NULL;
480 if (ssk->tx_ring.cq) {
481 if (ib_destroy_cq(ssk->tx_ring.cq)) {
483 ssk->tx_ring.cq);
485 ssk->tx_ring.cq = NULL;
489 WARN_ON(ring_head(ssk->tx_ring) != ring_tail(ssk->tx_ring));