Same story as the RX refactor: pull TX LTB alloc out of open/close. ibmveth_alloc_tx_resources() / ibmveth_free_tx_resources() walk real_num_tx_queues so ethtool TX channel changes keep working. Hooked into open/close in the next patch. No MQ RX behaviour change — TX was already multi-queue capable via ethtool -L. This patch only tidies the open/close path ahead of the RX helper wiring in the next patch. Signed-off-by: Mingming Cao Reviewed-by: Dave Marquardt --- drivers/net/ethernet/ibm/ibmveth.c | 43 ++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/drivers/net/ethernet/ibm/ibmveth.c b/drivers/net/ethernet/ibm/ibmveth.c index b5ae979c1f82..63b0184c622a 100644 --- a/drivers/net/ethernet/ibm/ibmveth.c +++ b/drivers/net/ethernet/ibm/ibmveth.c @@ -1038,6 +1038,49 @@ static int ibmveth_allocate_tx_ltb(struct ibmveth_adapter *adapter, int idx) return 0; } +/** + * ibmveth_alloc_tx_resources - Allocate TX resources for all queues + * @adapter: ibmveth adapter structure + * + * Allocates TX Long Term Buffers (LTBs) for all TX queues. + * + * Return: 0 on success, -ENOMEM on failure + */ +static int __maybe_unused +ibmveth_alloc_tx_resources(struct ibmveth_adapter *adapter) +{ + struct net_device *netdev = adapter->netdev; + int i; + + for (i = 0; i < netdev->real_num_tx_queues; i++) { + if (ibmveth_allocate_tx_ltb(adapter, i)) + goto err_free_ltbs; + } + + return 0; + +err_free_ltbs: + while (--i >= 0) + ibmveth_free_tx_ltb(adapter, i); + return -ENOMEM; +} + +/** + * ibmveth_free_tx_resources - Free TX resources for all queues + * @adapter: ibmveth adapter structure + * + * Frees TX Long Term Buffers (LTBs) for all TX queues. + */ +static void __maybe_unused +ibmveth_free_tx_resources(struct ibmveth_adapter *adapter) +{ + struct net_device *netdev = adapter->netdev; + int i; + + for (i = 0; i < netdev->real_num_tx_queues; i++) + ibmveth_free_tx_ltb(adapter, i); +} + static int ibmveth_register_logical_lan(struct ibmveth_adapter *adapter, union ibmveth_buf_desc rxq_desc, u64 mac_address) -- 2.39.3 (Apple Git-146)