Lines Matching refs:tx_pool
617 struct ibmvnic_tx_pool *tx_pool) in reset_one_tx_pool() argument
621 rc = reset_long_term_buff(adapter, &tx_pool->long_term_buff); in reset_one_tx_pool()
625 memset(tx_pool->tx_buff, 0, in reset_one_tx_pool()
626 tx_pool->num_buffers * in reset_one_tx_pool()
629 for (i = 0; i < tx_pool->num_buffers; i++) in reset_one_tx_pool()
630 tx_pool->free_map[i] = i; in reset_one_tx_pool()
632 tx_pool->consumer_index = 0; in reset_one_tx_pool()
633 tx_pool->producer_index = 0; in reset_one_tx_pool()
643 if (!adapter->tx_pool) in reset_tx_pools()
651 rc = reset_one_tx_pool(adapter, &adapter->tx_pool[i]); in reset_tx_pools()
671 struct ibmvnic_tx_pool *tx_pool) in release_one_tx_pool() argument
673 kfree(tx_pool->tx_buff); in release_one_tx_pool()
674 kfree(tx_pool->free_map); in release_one_tx_pool()
675 free_long_term_buff(adapter, &tx_pool->long_term_buff); in release_one_tx_pool()
682 if (!adapter->tx_pool) in release_tx_pools()
686 release_one_tx_pool(adapter, &adapter->tx_pool[i]); in release_tx_pools()
690 kfree(adapter->tx_pool); in release_tx_pools()
691 adapter->tx_pool = NULL; in release_tx_pools()
698 struct ibmvnic_tx_pool *tx_pool, in init_one_tx_pool() argument
704 tx_pool->tx_buff = kcalloc(num_entries, in init_one_tx_pool()
707 if (!tx_pool->tx_buff) in init_one_tx_pool()
710 if (alloc_long_term_buff(adapter, &tx_pool->long_term_buff, in init_one_tx_pool()
714 tx_pool->free_map = kcalloc(num_entries, sizeof(int), GFP_KERNEL); in init_one_tx_pool()
715 if (!tx_pool->free_map) in init_one_tx_pool()
719 tx_pool->free_map[i] = i; in init_one_tx_pool()
721 tx_pool->consumer_index = 0; in init_one_tx_pool()
722 tx_pool->producer_index = 0; in init_one_tx_pool()
723 tx_pool->num_buffers = num_entries; in init_one_tx_pool()
724 tx_pool->buf_size = buf_size; in init_one_tx_pool()
736 adapter->tx_pool = kcalloc(tx_subcrqs, in init_tx_pools()
738 if (!adapter->tx_pool) in init_tx_pools()
749 rc = init_one_tx_pool(netdev, &adapter->tx_pool[i], in init_tx_pools()
1242 struct ibmvnic_tx_pool *tx_pool) in clean_one_tx_pool() argument
1248 if (!tx_pool || !tx_pool->tx_buff) in clean_one_tx_pool()
1251 tx_entries = tx_pool->num_buffers; in clean_one_tx_pool()
1254 tx_buff = &tx_pool->tx_buff[i]; in clean_one_tx_pool()
1267 if (!adapter->tx_pool || !adapter->tso_pool) in clean_tx_pools()
1275 clean_one_tx_pool(adapter, &adapter->tx_pool[i]); in clean_tx_pools()
1515 struct ibmvnic_tx_pool *tx_pool; in ibmvnic_xmit() local
1551 tx_pool = &adapter->tso_pool[queue_num]; in ibmvnic_xmit()
1553 tx_pool = &adapter->tx_pool[queue_num]; in ibmvnic_xmit()
1559 index = tx_pool->free_map[tx_pool->consumer_index]; in ibmvnic_xmit()
1569 tx_pool->free_map[tx_pool->consumer_index] = IBMVNIC_INVALID_MAP; in ibmvnic_xmit()
1571 offset = index * tx_pool->buf_size; in ibmvnic_xmit()
1572 dst = tx_pool->long_term_buff.buff + offset; in ibmvnic_xmit()
1573 memset(dst, 0, tx_pool->buf_size); in ibmvnic_xmit()
1574 data_dma_addr = tx_pool->long_term_buff.addr + offset; in ibmvnic_xmit()
1596 tx_pool->consumer_index = in ibmvnic_xmit()
1597 (tx_pool->consumer_index + 1) % tx_pool->num_buffers; in ibmvnic_xmit()
1599 tx_buff = &tx_pool->tx_buff[index]; in ibmvnic_xmit()
1619 tx_crq.v1.dma_reg = cpu_to_be16(tx_pool->long_term_buff.map_id); in ibmvnic_xmit()
1715 if (tx_pool->consumer_index == 0) in ibmvnic_xmit()
1716 tx_pool->consumer_index = in ibmvnic_xmit()
1717 tx_pool->num_buffers - 1; in ibmvnic_xmit()
1719 tx_pool->consumer_index--; in ibmvnic_xmit()
1720 tx_pool->free_map[tx_pool->consumer_index] = index; in ibmvnic_xmit()
2033 !adapter->tx_pool) { in do_reset()
3111 struct ibmvnic_tx_pool *tx_pool; in ibmvnic_complete_tx() local
3136 tx_pool = &adapter->tso_pool[pool]; in ibmvnic_complete_tx()
3139 tx_pool = &adapter->tx_pool[pool]; in ibmvnic_complete_tx()
3142 txbuff = &tx_pool->tx_buff[index]; in ibmvnic_complete_tx()
3158 tx_pool->free_map[tx_pool->producer_index] = index; in ibmvnic_complete_tx()
3159 tx_pool->producer_index = in ibmvnic_complete_tx()
3160 (tx_pool->producer_index + 1) % in ibmvnic_complete_tx()
3161 tx_pool->num_buffers; in ibmvnic_complete_tx()