Lines Matching refs:rbi

622 		struct vmxnet3_rx_buf_info *rbi;  in vmxnet3_rq_alloc_rx_buf()  local
625 rbi = rbi_base + ring->next2fill; in vmxnet3_rq_alloc_rx_buf()
627 rbi->comp_state = VMXNET3_RXD_COMP_PENDING; in vmxnet3_rq_alloc_rx_buf()
629 if (rbi->buf_type == VMXNET3_RX_BUF_XDP) { in vmxnet3_rq_alloc_rx_buf()
631 &rbi->dma_addr, in vmxnet3_rq_alloc_rx_buf()
637 rbi->page = virt_to_page(data); in vmxnet3_rq_alloc_rx_buf()
639 } else if (rbi->buf_type == VMXNET3_RX_BUF_SKB) { in vmxnet3_rq_alloc_rx_buf()
640 if (rbi->skb == NULL) { in vmxnet3_rq_alloc_rx_buf()
641 rbi->skb = __netdev_alloc_skb_ip_align(adapter->netdev, in vmxnet3_rq_alloc_rx_buf()
642 rbi->len, in vmxnet3_rq_alloc_rx_buf()
644 if (unlikely(rbi->skb == NULL)) { in vmxnet3_rq_alloc_rx_buf()
649 rbi->dma_addr = dma_map_single( in vmxnet3_rq_alloc_rx_buf()
651 rbi->skb->data, rbi->len, in vmxnet3_rq_alloc_rx_buf()
654 rbi->dma_addr)) { in vmxnet3_rq_alloc_rx_buf()
655 dev_kfree_skb_any(rbi->skb); in vmxnet3_rq_alloc_rx_buf()
656 rbi->skb = NULL; in vmxnet3_rq_alloc_rx_buf()
665 BUG_ON(rbi->buf_type != VMXNET3_RX_BUF_PAGE || in vmxnet3_rq_alloc_rx_buf()
666 rbi->len != PAGE_SIZE); in vmxnet3_rq_alloc_rx_buf()
668 if (rbi->page == NULL) { in vmxnet3_rq_alloc_rx_buf()
669 rbi->page = alloc_page(GFP_ATOMIC); in vmxnet3_rq_alloc_rx_buf()
670 if (unlikely(rbi->page == NULL)) { in vmxnet3_rq_alloc_rx_buf()
674 rbi->dma_addr = dma_map_page( in vmxnet3_rq_alloc_rx_buf()
676 rbi->page, 0, PAGE_SIZE, in vmxnet3_rq_alloc_rx_buf()
679 rbi->dma_addr)) { in vmxnet3_rq_alloc_rx_buf()
680 put_page(rbi->page); in vmxnet3_rq_alloc_rx_buf()
681 rbi->page = NULL; in vmxnet3_rq_alloc_rx_buf()
691 gd->rxd.addr = cpu_to_le64(rbi->dma_addr); in vmxnet3_rq_alloc_rx_buf()
693 | val | rbi->len); in vmxnet3_rq_alloc_rx_buf()
698 rbi->comp_state = VMXNET3_RXD_COMP_DONE; in vmxnet3_rq_alloc_rx_buf()
720 struct vmxnet3_rx_buf_info *rbi) in vmxnet3_append_frag() argument
726 skb_frag_fill_page_desc(frag, rbi->page, 0, rcd->len); in vmxnet3_append_frag()
1525 struct vmxnet3_rx_buf_info *rbi; in vmxnet3_rq_rx_complete() local
1552 rbi = rq->buf_info[ring_idx] + idx; in vmxnet3_rq_rx_complete()
1554 BUG_ON(rxd->addr != rbi->dma_addr || in vmxnet3_rq_rx_complete()
1555 rxd->len != rbi->len); in vmxnet3_rq_rx_complete()
1571 if (rbi->buf_type != VMXNET3_RX_BUF_XDP) in vmxnet3_rq_rx_complete()
1574 act = vmxnet3_process_xdp(adapter, rq, rcd, rbi, rxd, in vmxnet3_rq_rx_complete()
1595 BUG_ON(rbi->buf_type != VMXNET3_RX_BUF_SKB && in vmxnet3_rq_rx_complete()
1596 rbi->buf_type != VMXNET3_RX_BUF_XDP); in vmxnet3_rq_rx_complete()
1597 BUG_ON(ctx->skb != NULL || rbi->skb == NULL); in vmxnet3_rq_rx_complete()
1609 ctx->skb = rbi->skb; in vmxnet3_rq_rx_complete()
1613 len = rxDataRingUsed ? rcd->len : rbi->len; in vmxnet3_rq_rx_complete()
1656 ctx->skb = rbi->skb; in vmxnet3_rq_rx_complete()
1660 new_skb->data, rbi->len, in vmxnet3_rq_rx_complete()
1677 rbi->dma_addr, in vmxnet3_rq_rx_complete()
1678 rbi->len, in vmxnet3_rq_rx_complete()
1682 rbi->skb = new_skb; in vmxnet3_rq_rx_complete()
1683 rbi->dma_addr = new_dma_addr; in vmxnet3_rq_rx_complete()
1684 rxd->addr = cpu_to_le64(rbi->dma_addr); in vmxnet3_rq_rx_complete()
1685 rxd->len = rbi->len; in vmxnet3_rq_rx_complete()
1713 BUG_ON(rbi->buf_type != VMXNET3_RX_BUF_PAGE); in vmxnet3_rq_rx_complete()
1751 rbi->dma_addr, rbi->len, in vmxnet3_rq_rx_complete()
1754 vmxnet3_append_frag(ctx->skb, rcd, rbi); in vmxnet3_rq_rx_complete()
1757 rbi->page = new_page; in vmxnet3_rq_rx_complete()
1758 rbi->dma_addr = new_dma_addr; in vmxnet3_rq_rx_complete()
1759 rxd->addr = cpu_to_le64(rbi->dma_addr); in vmxnet3_rq_rx_complete()
1760 rxd->len = rbi->len; in vmxnet3_rq_rx_complete()
1846 rbi->comp_state = VMXNET3_RXD_COMP_DONE; in vmxnet3_rq_rx_complete()
1861 rbi = rq->buf_info[ring_idx] + ring->next2fill; in vmxnet3_rq_rx_complete()
1866 if (rbi->buf_type != VMXNET3_RX_BUF_SKB) in vmxnet3_rq_rx_complete()
1869 if (rbi->comp_state == VMXNET3_RXD_COMP_DONE) { in vmxnet3_rq_rx_complete()
1878 rbi->comp_state = VMXNET3_RXD_COMP_PENDING; in vmxnet3_rq_rx_complete()
1922 struct vmxnet3_rx_buf_info *rbi; in vmxnet3_rq_cleanup() local
1927 rbi = &rq->buf_info[ring_idx][i]; in vmxnet3_rq_cleanup()
1932 rbi->page && rbi->buf_type == VMXNET3_RX_BUF_XDP) { in vmxnet3_rq_cleanup()
1934 rbi->page); in vmxnet3_rq_cleanup()
1935 rbi->page = NULL; in vmxnet3_rq_cleanup()
1937 rbi->skb) { in vmxnet3_rq_cleanup()
1940 dev_kfree_skb(rbi->skb); in vmxnet3_rq_cleanup()
1941 rbi->skb = NULL; in vmxnet3_rq_cleanup()
1943 rbi->page) { in vmxnet3_rq_cleanup()
1946 put_page(rbi->page); in vmxnet3_rq_cleanup()
1947 rbi->page = NULL; in vmxnet3_rq_cleanup()