Lines Matching refs:tx_pool
628 struct ibmvnic_tx_pool *tx_pool)
632 rc = reset_long_term_buff(adapter, &tx_pool->long_term_buff);
636 memset(tx_pool->tx_buff, 0,
637 tx_pool->num_buffers *
640 for (i = 0; i < tx_pool->num_buffers; i++)
641 tx_pool->free_map[i] = i;
643 tx_pool->consumer_index = 0;
644 tx_pool->producer_index = 0;
654 if (!adapter->tx_pool)
662 rc = reset_one_tx_pool(adapter, &adapter->tx_pool[i]);
682 struct ibmvnic_tx_pool *tx_pool)
684 kfree(tx_pool->tx_buff);
685 kfree(tx_pool->free_map);
686 free_long_term_buff(adapter, &tx_pool->long_term_buff);
693 if (!adapter->tx_pool)
697 release_one_tx_pool(adapter, &adapter->tx_pool[i]);
701 kfree(adapter->tx_pool);
702 adapter->tx_pool = NULL;
709 struct ibmvnic_tx_pool *tx_pool,
715 tx_pool->tx_buff = kcalloc(num_entries,
718 if (!tx_pool->tx_buff)
721 if (alloc_long_term_buff(adapter, &tx_pool->long_term_buff,
725 tx_pool->free_map = kcalloc(num_entries, sizeof(int), GFP_KERNEL);
726 if (!tx_pool->free_map)
730 tx_pool->free_map[i] = i;
732 tx_pool->consumer_index = 0;
733 tx_pool->producer_index = 0;
734 tx_pool->num_buffers = num_entries;
735 tx_pool->buf_size = buf_size;
747 adapter->tx_pool = kcalloc(tx_subcrqs,
749 if (!adapter->tx_pool)
755 kfree(adapter->tx_pool);
756 adapter->tx_pool = NULL;
763 rc = init_one_tx_pool(netdev, &adapter->tx_pool[i],
1267 struct ibmvnic_tx_pool *tx_pool)
1273 if (!tx_pool || !tx_pool->tx_buff)
1276 tx_entries = tx_pool->num_buffers;
1279 tx_buff = &tx_pool->tx_buff[i];
1292 if (!adapter->tx_pool || !adapter->tso_pool)
1299 netdev_dbg(adapter->netdev, "Cleaning tx_pool[%d]\n", i);
1300 clean_one_tx_pool(adapter, &adapter->tx_pool[i]);
1542 struct ibmvnic_tx_pool *tx_pool;
1576 tx_pool = &adapter->tso_pool[queue_num];
1578 tx_pool = &adapter->tx_pool[queue_num];
1584 index = tx_pool->free_map[tx_pool->consumer_index];
1594 tx_pool->free_map[tx_pool->consumer_index] = IBMVNIC_INVALID_MAP;
1596 offset = index * tx_pool->buf_size;
1597 dst = tx_pool->long_term_buff.buff + offset;
1598 memset(dst, 0, tx_pool->buf_size);
1599 data_dma_addr = tx_pool->long_term_buff.addr + offset;
1624 tx_pool->consumer_index =
1625 (tx_pool->consumer_index + 1) % tx_pool->num_buffers;
1627 tx_buff = &tx_pool->tx_buff[index];
1647 tx_crq.v1.dma_reg = cpu_to_be16(tx_pool->long_term_buff.map_id);
1743 if (tx_pool->consumer_index == 0)
1744 tx_pool->consumer_index =
1745 tx_pool->num_buffers - 1;
1747 tx_pool->consumer_index--;
1748 tx_pool->free_map[tx_pool->consumer_index] = index;
2062 !adapter->tx_pool) {
3091 struct ibmvnic_tx_pool *tx_pool;
3116 tx_pool = &adapter->tso_pool[pool];
3119 tx_pool = &adapter->tx_pool[pool];
3122 txbuff = &tx_pool->tx_buff[index];
3138 tx_pool->free_map[tx_pool->producer_index] = index;
3139 tx_pool->producer_index =
3140 (tx_pool->producer_index + 1) %
3141 tx_pool->num_buffers;