Lines Matching +full:1 +full:mb
99 for (i = 0, m = rx_req->mb; m != NULL; m = m->m_next, i++) in ipoib_dma_unmap_rx()
105 ipoib_dma_mb(struct ipoib_dev_priv *priv, struct mbuf *mb, unsigned int length) in ipoib_dma_mb() argument
108 m_adj(mb, -(mb->m_pkthdr.len - length)); in ipoib_dma_mb()
115 struct mbuf *mb, *m; in ipoib_alloc_map_mb() local
118 rx_req->mb = NULL; in ipoib_alloc_map_mb()
119 mb = m_getm2(NULL, align + size, M_NOWAIT, MT_DATA, M_PKTHDR); in ipoib_alloc_map_mb()
120 if (mb == NULL) in ipoib_alloc_map_mb()
122 for (i = 0, m = mb; m != NULL; m = m->m_next, i++) { in ipoib_alloc_map_mb()
128 mb->m_pkthdr.len += m->m_len; in ipoib_alloc_map_mb()
136 rx_req->mb = mb; in ipoib_alloc_map_mb()
137 return (mb); in ipoib_alloc_map_mb()
139 for (j = 0, m = mb; j < i; m = m->m_next, j++) in ipoib_alloc_map_mb()
142 m_freem(mb); in ipoib_alloc_map_mb()
156 for (m = rx_req->mb, i = 0; m != NULL; m = m->m_next, i++) { in ipoib_ib_post_receive()
167 m_freem(priv->rx_ring[id].mb); in ipoib_ib_post_receive()
168 priv->rx_ring[id].mb = NULL; in ipoib_ib_post_receive()
206 struct mbuf *mb; in ipoib_ib_handle_rx_wc() local
217 mb = priv->rx_ring[wr_id].mb; in ipoib_ib_handle_rx_wc()
226 if (mb) { in ipoib_ib_handle_rx_wc()
228 m_freem(mb); in ipoib_ib_handle_rx_wc()
229 priv->rx_ring[wr_id].mb = NULL; in ipoib_ib_handle_rx_wc()
248 if_inc_counter(dev, IFCOUNTER_IQDROPS, 1); in ipoib_ib_handle_rx_wc()
256 ipoib_dma_mb(priv, mb, wc->byte_len); in ipoib_ib_handle_rx_wc()
258 if_inc_counter(dev, IFCOUNTER_IPACKETS, 1); in ipoib_ib_handle_rx_wc()
259 if_inc_counter(dev, IFCOUNTER_IBYTES, mb->m_pkthdr.len); in ipoib_ib_handle_rx_wc()
260 mb->m_pkthdr.rcvif = dev; in ipoib_ib_handle_rx_wc()
261 m_adj(mb, sizeof(struct ib_grh) - INFINIBAND_ALEN); in ipoib_ib_handle_rx_wc()
262 eh = mtod(mb, struct ipoib_header *); in ipoib_ib_handle_rx_wc()
266 mb->m_pkthdr.csum_flags = CSUM_IP_CHECKED | CSUM_IP_VALID; in ipoib_ib_handle_rx_wc()
268 if_input(dev, mb); in ipoib_ib_handle_rx_wc()
278 struct mbuf *mb = tx_req->mb; in ipoib_dma_map_tx() local
284 for (m = mb, p = NULL, i = 0; m != NULL; p = m, m = m->m_next, i++) { in ipoib_dma_map_tx()
295 tx_req->mb = mb = m_defrag(mb, M_NOWAIT); in ipoib_dma_map_tx()
296 if (mb == NULL) in ipoib_dma_map_tx()
298 for (m = mb, i = 0; m != NULL; m = m->m_next, i++); in ipoib_dma_map_tx()
303 for (m = mb, i = 0; m != NULL; m = m->m_next, i++) { in ipoib_dma_map_tx()
315 for (m = mb, i = 0; i < end; m = m->m_next, i++) in ipoib_dma_map_tx()
324 struct mbuf *mb = tx_req->mb; in ipoib_dma_unmap_tx() local
329 for (m = mb, i = 0; m != NULL; m = m->m_next, i++) in ipoib_dma_unmap_tx()
352 if_inc_counter(dev, IFCOUNTER_OPACKETS, 1); in ipoib_ib_handle_tx_wc()
354 m_freem(tx_req->mb); in ipoib_ib_handle_tx_wc()
357 if (unlikely(--priv->tx_outstanding == ipoib_sendq_size >> 1) && in ipoib_ib_handle_tx_wc()
436 mod_timer(&priv->poll_timer, jiffies + 1); in drain_tx_cq()
454 struct mbuf *mb = tx_req->mb; in post_send() local
459 for (m = mb, i = 0; m != NULL; m = m->m_next, i++) { in post_send()
469 priv->tx_wr.mss = 0; /* XXX mb_shinfo(mb)->gso_size; */ in post_send()
480 ipoib_send(struct ipoib_dev_priv *priv, struct mbuf *mb, in ipoib_send() argument
492 m_adj(mb, sizeof (struct ipoib_pseudoheader)); in ipoib_send()
493 if (0 /* XXX segment offload mb_is_gso(mb) */) { in ipoib_send()
494 /* XXX hlen = mb_transport_offset(mb) + tcp_hdrlen(mb); */ in ipoib_send()
495 phead = mtod(mb, void *); in ipoib_send()
496 if (mb->m_len < hlen) { in ipoib_send()
498 if_inc_counter(dev, IFCOUNTER_OERRORS, 1); in ipoib_send()
499 m_freem(mb); in ipoib_send()
502 m_adj(mb, hlen); in ipoib_send()
504 if (unlikely(mb->m_pkthdr.len - IPOIB_ENCAP_LEN > priv->mcast_mtu)) { in ipoib_send()
506 mb->m_pkthdr.len, priv->mcast_mtu); in ipoib_send()
507 if_inc_counter(dev, IFCOUNTER_OERRORS, 1); in ipoib_send()
508 ipoib_cm_mb_too_long(priv, mb, priv->mcast_mtu); in ipoib_send()
516 mb->m_pkthdr.len, address, qpn); in ipoib_send()
519 * We put the mb into the tx_ring _before_ we call post_send() in ipoib_send()
525 tx_req = &priv->tx_ring[priv->tx_head & (ipoib_sendq_size - 1)]; in ipoib_send()
526 tx_req->mb = mb; in ipoib_send()
528 if_inc_counter(dev, IFCOUNTER_OERRORS, 1); in ipoib_send()
529 if (tx_req->mb) in ipoib_send()
530 m_freem(tx_req->mb); in ipoib_send()
534 if (mb->m_pkthdr.csum_flags & (CSUM_IP|CSUM_TCP|CSUM_UDP)) in ipoib_send()
547 priv->tx_head & (ipoib_sendq_size - 1), address->ah, qpn, in ipoib_send()
550 if_inc_counter(dev, IFCOUNTER_OERRORS, 1); in ipoib_send()
553 m_freem(mb); in ipoib_send()
606 msleep(1); in ipoib_ah_dev_cleanup()
622 return -1; in ipoib_ib_dev_open()
629 return -1; in ipoib_ib_dev_open()
635 ipoib_ib_dev_stop(priv, 1); in ipoib_ib_dev_open()
636 return -1; in ipoib_ib_dev_open()
642 ipoib_ib_dev_stop(priv, 1); in ipoib_ib_dev_open()
643 return -1; in ipoib_ib_dev_open()
711 if (priv->rx_ring[i].mb) in recvs_pending()
808 (ipoib_sendq_size - 1)]; in ipoib_ib_dev_stop()
810 m_freem(tx_req->mb); in ipoib_ib_dev_stop()
819 if (!rx_req->mb) in ipoib_ib_dev_stop()
822 m_freem(rx_req->mb); in ipoib_ib_dev_stop()
823 rx_req->mb = NULL; in ipoib_ib_dev_stop()
831 msleep(1); in ipoib_ib_dev_stop()
979 ipoib_mcast_stop_thread(priv, 1); in ipoib_ib_dev_cleanup()
1030 return 1; in ipoib_pkey_dev_delay_open()