| 390 | } |
| 391 | |
| 392 | static int |
| 393 | atl_alloc_rx_queue_mbufs(struct atl_rx_queue *rxq) |
| 394 | { |
| 395 | struct atl_rx_entry *rx_entry = rxq->sw_ring; |
| 396 | struct hw_atl_rxd_s *rxd; |
| 397 | uint64_t dma_addr = 0; |
| 398 | uint32_t i = 0; |
| 399 | |
| 400 | PMD_INIT_FUNC_TRACE(); |
| 401 | |
| 402 | /* fill Rx ring */ |
| 403 | for (i = 0; i < rxq->nb_rx_desc; i++) { |
| 404 | struct rte_mbuf *mbuf = rte_mbuf_raw_alloc(rxq->mb_pool); |
| 405 | |
| 406 | if (mbuf == NULL) { |
| 407 | PMD_INIT_LOG(ERR, |
| 408 | "Port %d: mbuf alloc failed for rx queue %d", |
| 409 | rxq->port_id, rxq->queue_id); |
| 410 | return -ENOMEM; |
| 411 | } |
| 412 | |
| 413 | mbuf->data_off = RTE_PKTMBUF_HEADROOM; |
| 414 | mbuf->port = rxq->port_id; |
| 415 | |
| 416 | dma_addr = rte_cpu_to_le_64(rte_mbuf_data_iova_default(mbuf)); |
| 417 | rxd = (struct hw_atl_rxd_s *)&rxq->hw_ring[i]; |
| 418 | rxd->buf_addr = dma_addr; |
| 419 | rxd->hdr_addr = 0; |
| 420 | rx_entry[i].mbuf = mbuf; |
| 421 | } |
| 422 | |
| 423 | return 0; |
| 424 | } |
| 425 | |
| 426 | static void |
| 427 | atl_rx_queue_release_mbufs(struct atl_rx_queue *rxq) |
no test coverage detected