Lines Matching refs:desc_info
23 struct ionic_tx_desc_info *desc_info);
26 struct ionic_tx_desc_info *desc_info,
176 struct ionic_rx_desc_info *desc_info, in ionic_rx_build_skb() argument
187 buf_info = &desc_info->bufs[0]; in ionic_rx_build_skb()
228 struct ionic_rx_desc_info *desc_info, in ionic_rx_copybreak() argument
239 buf_info = &desc_info->bufs[0]; in ionic_rx_copybreak()
271 struct ionic_tx_desc_info *desc_info, in ionic_xdp_tx_desc_clean() argument
276 if (!desc_info->nbufs) in ionic_xdp_tx_desc_clean()
282 if (desc_info->act == XDP_TX) { in ionic_xdp_tx_desc_clean()
284 xdp_return_frame_rx_napi(desc_info->xdpf); in ionic_xdp_tx_desc_clean()
286 xdp_return_frame(desc_info->xdpf); in ionic_xdp_tx_desc_clean()
287 } else if (desc_info->act == XDP_REDIRECT) { in ionic_xdp_tx_desc_clean()
288 ionic_tx_desc_unmap_bufs(q, desc_info); in ionic_xdp_tx_desc_clean()
289 xdp_return_frame_bulk(desc_info->xdpf, &bq); in ionic_xdp_tx_desc_clean()
295 desc_info->nbufs = 0; in ionic_xdp_tx_desc_clean()
296 desc_info->xdpf = NULL; in ionic_xdp_tx_desc_clean()
297 desc_info->act = 0; in ionic_xdp_tx_desc_clean()
304 struct ionic_tx_desc_info *desc_info; in ionic_xdp_post_frame() local
312 desc_info = &q->tx_info[q->head_idx]; in ionic_xdp_post_frame()
314 buf_info = desc_info->bufs; in ionic_xdp_post_frame()
333 desc_info->nbufs = 1; in ionic_xdp_post_frame()
334 desc_info->xdpf = frame; in ionic_xdp_post_frame()
335 desc_info->act = act; in ionic_xdp_post_frame()
361 ionic_tx_desc_unmap_bufs(q, desc_info); in ionic_xdp_post_frame()
373 desc_info->nbufs++; in ionic_xdp_post_frame()
378 0, (desc_info->nbufs - 1), buf_info->dma_addr); in ionic_xdp_post_frame()
604 struct ionic_rx_desc_info *desc_info, in ionic_rx_clean() argument
636 if (ionic_run_xdp(stats, netdev, xdp_prog, q, desc_info->bufs, len)) in ionic_rx_clean()
644 skb = ionic_rx_copybreak(netdev, q, desc_info, in ionic_rx_clean()
648 skb = ionic_rx_build_skb(q, desc_info, headroom, len, in ionic_rx_clean()
724 struct ionic_rx_desc_info *desc_info; in __ionic_rx_service() local
740 desc_info = &q->rx_info[q->tail_idx]; in __ionic_rx_service()
744 ionic_rx_clean(q, desc_info, comp, xdp_prog); in __ionic_rx_service()
767 struct ionic_rx_desc_info *desc_info; in ionic_rx_fill() local
812 desc_info = &q->rx_info[q->head_idx]; in ionic_rx_fill()
813 buf_info = &desc_info->bufs[0]; in ionic_rx_fill()
870 desc_info->nbufs = nfrags; in ionic_rx_fill()
886 struct ionic_rx_desc_info *desc_info; in ionic_rx_empty() local
890 desc_info = &q->rx_info[i]; in ionic_rx_empty()
891 for (j = 0; j < ARRAY_SIZE(desc_info->bufs); j++) in ionic_rx_empty()
892 ionic_rx_put_buf(q, &desc_info->bufs[j]); in ionic_rx_empty()
893 desc_info->nbufs = 0; in ionic_rx_empty()
1109 struct ionic_tx_desc_info *desc_info) in ionic_tx_map_skb() argument
1111 struct ionic_buf_info *buf_info = desc_info->bufs; in ionic_tx_map_skb()
1136 desc_info->nbufs = 1 + nfrags; in ionic_tx_map_skb()
1148 dma_unmap_single(dev, desc_info->bufs[0].dma_addr, in ionic_tx_map_skb()
1149 desc_info->bufs[0].len, DMA_TO_DEVICE); in ionic_tx_map_skb()
1154 struct ionic_tx_desc_info *desc_info) in ionic_tx_desc_unmap_bufs() argument
1156 struct ionic_buf_info *buf_info = desc_info->bufs; in ionic_tx_desc_unmap_bufs()
1160 if (!desc_info->nbufs) in ionic_tx_desc_unmap_bufs()
1166 for (i = 1; i < desc_info->nbufs; i++, buf_info++) in ionic_tx_desc_unmap_bufs()
1170 desc_info->nbufs = 0; in ionic_tx_desc_unmap_bufs()
1174 struct ionic_tx_desc_info *desc_info, in ionic_tx_clean() argument
1182 if (desc_info->xdpf) { in ionic_tx_clean()
1183 ionic_xdp_tx_desc_clean(q->partner, desc_info, in_napi); in ionic_tx_clean()
1192 ionic_tx_desc_unmap_bufs(q, desc_info); in ionic_tx_clean()
1194 skb = desc_info->skb; in ionic_tx_clean()
1225 desc_info->bytes = skb->len; in ionic_tx_clean()
1236 struct ionic_tx_desc_info *desc_info; in ionic_tx_service() local
1252 desc_info = &q->tx_info[q->tail_idx]; in ionic_tx_service()
1253 desc_info->bytes = 0; in ionic_tx_service()
1256 ionic_tx_clean(q, desc_info, comp, in_napi); in ionic_tx_service()
1257 if (desc_info->skb) { in ionic_tx_service()
1259 bytes += desc_info->bytes; in ionic_tx_service()
1260 desc_info->skb = NULL; in ionic_tx_service()
1315 struct ionic_tx_desc_info *desc_info; in ionic_tx_empty() local
1321 desc_info = &q->tx_info[q->tail_idx]; in ionic_tx_empty()
1322 desc_info->bytes = 0; in ionic_tx_empty()
1324 ionic_tx_clean(q, desc_info, NULL, false); in ionic_tx_empty()
1325 if (desc_info->skb) { in ionic_tx_empty()
1327 bytes += desc_info->bytes; in ionic_tx_empty()
1328 desc_info->skb = NULL; in ionic_tx_empty()
1425 struct ionic_tx_desc_info *desc_info; in ionic_tx_tso() local
1447 desc_info = &q->tx_info[q->head_idx]; in ionic_tx_tso()
1449 if (unlikely(ionic_tx_map_skb(q, skb, desc_info))) in ionic_tx_tso()
1475 ionic_tx_desc_unmap_bufs(q, desc_info); in ionic_tx_tso()
1484 desc_info->skb = skb; in ionic_tx_tso()
1485 buf_info = desc_info->bufs; in ionic_tx_tso()
1536 desc_info = &q->tx_info[q->head_idx]; in ionic_tx_tso()
1537 desc_info->nbufs = 0; in ionic_tx_tso()
1549 struct ionic_tx_desc_info *desc_info) in ionic_tx_calc_csum() argument
1552 struct ionic_buf_info *buf_info = desc_info->bufs; in ionic_tx_calc_csum()
1588 struct ionic_tx_desc_info *desc_info) in ionic_tx_calc_no_csum() argument
1591 struct ionic_buf_info *buf_info = desc_info->bufs; in ionic_tx_calc_no_csum()
1624 struct ionic_tx_desc_info *desc_info) in ionic_tx_skb_frags() argument
1626 struct ionic_buf_info *buf_info = &desc_info->bufs[1]; in ionic_tx_skb_frags()
1643 struct ionic_tx_desc_info *desc_info = &q->tx_info[q->head_idx]; in ionic_tx() local
1647 if (unlikely(ionic_tx_map_skb(q, skb, desc_info))) in ionic_tx()
1650 desc_info->skb = skb; in ionic_tx()
1654 ionic_tx_calc_csum(q, skb, desc_info); in ionic_tx()
1656 ionic_tx_calc_no_csum(q, skb, desc_info); in ionic_tx()
1659 ionic_tx_skb_frags(q, skb, desc_info); in ionic_tx()