Lines Matching +full:1 +full:mb

107 	struct mbuf *mb, *m;  in sdp_post_recv()  local
112 sdp_prf(ssk->socket, mb, "Posting mb"); in sdp_post_recv()
113 mb = m_getm2(NULL, ssk->recv_bytes, M_NOWAIT, MT_DATA, M_PKTHDR); in sdp_post_recv()
114 if (mb == NULL) { in sdp_post_recv()
118 return -1; in sdp_post_recv()
120 for (m = mb; m != NULL; m = m->m_next) { in sdp_post_recv()
122 mb->m_pkthdr.len += m->m_len; in sdp_post_recv()
124 h = mtod(mb, struct sdp_bsdh *); in sdp_post_recv()
125 rx_req = ssk->rx_ring.buffer + (id & (SDP_RX_SIZE - 1)); in sdp_post_recv()
126 rx_req->mb = mb; in sdp_post_recv()
128 for (i = 0; mb != NULL; i++, mb = mb->m_next, sge++) { in sdp_post_recv()
129 addr = ib_dma_map_single(dev, mb->m_data, mb->m_len, in sdp_post_recv()
136 sge->length = mb->m_len; in sdp_post_recv()
149 m_freem(mb); in sdp_post_recv()
153 return -1; in sdp_post_recv()
177 return 1; in sdp_post_recvs_needed()
181 (1 + SDP_MIN_TX_CREDITS) * buffer_size); in sdp_post_recvs_needed()
202 sdp_sock_queue_rcv_mb(struct socket *sk, struct mbuf *mb) in sdp_sock_queue_rcv_mb() argument
207 h = mtod(mb, struct sdp_bsdh *); in sdp_sock_queue_rcv_mb()
210 SDP_SKB_CB(mb)->seq = rcv_nxt(ssk); in sdp_sock_queue_rcv_mb()
212 struct sdp_srcah *srcah = (struct sdp_srcah *)(h+1); in sdp_sock_queue_rcv_mb()
217 ssk->rx_sa = rx_sa = RX_SRCAVAIL_STATE(mb) = kzalloc( in sdp_sock_queue_rcv_mb()
234 atomic_add(mb->len, &ssk->rcv_nxt); in sdp_sock_queue_rcv_mb()
240 atomic_add(mb->m_pkthdr.len, &ssk->rcv_nxt); in sdp_sock_queue_rcv_mb()
243 m_adj(mb, SDP_HEAD_SIZE); in sdp_sock_queue_rcv_mb()
246 sdp_urg(ssk, mb); in sdp_sock_queue_rcv_mb()
247 sbappend_locked(&sk->so_rcv, mb, 0); in sdp_sock_queue_rcv_mb()
249 return mb; in sdp_sock_queue_rcv_mb()
279 return -1; in sdp_resize_buffers()
286 ssk->recv_request_head = ring_head(ssk->rx_ring) + 1; in sdp_handle_resize_request()
289 ssk->recv_request = 1; in sdp_handle_resize_request()
306 struct mbuf *mb; in sdp_recv_completion() local
315 rx_req = &ssk->rx_ring.buffer[id & (SDP_RX_SIZE - 1)]; in sdp_recv_completion()
316 mb = rx_req->mb; in sdp_recv_completion()
321 return mb; in sdp_recv_completion()
325 sdp_process_rx_ctl_mb(struct sdp_sock *ssk, struct mbuf *mb) in sdp_process_rx_ctl_mb() argument
333 h = mtod(mb, struct sdp_bsdh *); in sdp_process_rx_ctl_mb()
382 sdp_handle_resize_request(ssk, (struct sdp_chrecvbuf *)(h+1)); in sdp_process_rx_ctl_mb()
386 sdp_handle_resize_ack(ssk, (struct sdp_chrecvbuf *)(h+1)); in sdp_process_rx_ctl_mb()
393 m_freem(mb); in sdp_process_rx_ctl_mb()
397 sdp_process_rx_mb(struct sdp_sock *ssk, struct mbuf *mb) in sdp_process_rx_mb() argument
404 h = mtod(mb, struct sdp_bsdh *); in sdp_process_rx_mb()
413 m_freem(mb); in sdp_process_rx_mb()
422 1 + ntohs(h->bufs)); in sdp_process_rx_mb()
426 sdp_prf1(ssk->socket, mb, "RX %s +%d c:%d->%d mseq:%d ack:%d\n", in sdp_process_rx_mb()
431 mb->m_pkthdr.len == SDP_HEAD_SIZE)) { in sdp_process_rx_mb()
433 m_freem(mb); in sdp_process_rx_mb()
439 sdp_prf(sk, NULL, "Control mb - queing to control queue"); in sdp_process_rx_mb()
450 struct sdp_rrch *rrch = (struct sdp_rrch *)(h+1); in sdp_process_rx_mb()
456 if (mbufq_enqueue(&ssk->rxctlq, mb) != 0) in sdp_process_rx_mb()
457 m_freem(mb); in sdp_process_rx_mb()
461 sdp_prf1(sk, NULL, "queueing %s mb\n", mid2str(h->mid)); in sdp_process_rx_mb()
462 mb = sdp_sock_queue_rcv_mb(sk, mb); in sdp_process_rx_mb()
472 struct mbuf *mb; in sdp_process_rx_wc() local
477 mb = sdp_recv_completion(ssk, wc->wr_id); in sdp_process_rx_wc()
478 if (unlikely(!mb)) in sdp_process_rx_wc()
490 m_freem(mb); in sdp_process_rx_wc()
499 m_freem(mb); in sdp_process_rx_wc()
503 m_adj(mb, -(mb->m_pkthdr.len - wc->byte_len)); in sdp_process_rx_wc()
504 h = mtod(mb, struct sdp_bsdh *); in sdp_process_rx_wc()
506 SDP_DUMP_PACKET(ssk->socket, "RX", mb, h); in sdp_process_rx_wc()
509 ssk->rx_bytes += mb->m_pkthdr.len; in sdp_process_rx_wc()
517 return mb; in sdp_process_rx_wc()
538 struct mbuf *mb; in sdp_poll_rx_cq() local
546 mb = sdp_process_rx_wc(ssk, wc); in sdp_poll_rx_cq()
547 if (!mb) in sdp_poll_rx_cq()
550 sdp_process_rx_mb(ssk, mb); in sdp_poll_rx_cq()
596 struct mbuf *mb; in sdp_do_posts() local
604 while ((mb = mbufq_dequeue(&ssk->rxctlq)) != NULL) in sdp_do_posts()
605 sdp_process_rx_ctl_mb(ssk, mb); in sdp_do_posts()
616 sdp_xmit_poll(ssk, 1); in sdp_do_posts()
680 struct mbuf *mb; in sdp_rx_ring_purge() local
681 mb = sdp_recv_completion(ssk, ring_tail(ssk->rx_ring)); in sdp_rx_ring_purge()
682 if (!mb) in sdp_rx_ring_purge()
684 m_freem(mb); in sdp_rx_ring_purge()
714 atomic_set(&ssk->rx_ring.head, 1); in sdp_rx_ring_create()
715 atomic_set(&ssk->rx_ring.tail, 1); in sdp_rx_ring_create()