This patch restructures the TX pool data structure and provides a separate TX pool array for TSO transmissions. This is already used in some way due to our unique DMA situation, namely that we cannot use single DMA mappings for packet data. Previously, both buffer arrays used the same pool entry. This restructuring allows for some additional cleanup in the driver code, especially in some places in the device transmit routine.
In addition, it allows us to more easily track the consumer and producer indexes of a particular pool. This has been further improved by better tracking of in-use buffers to prevent possible data corruption in case an invalid buffer entry is used. v5: Fix bisectability mistake in the first patch. Removed TSO-specific data in a later patch when it is no longer used. v4: Fix error in 7th patch that causes an oops by using the older fixed value for number of buffers instead of the respective field in the tx pool data structure v3: Forgot to update TX pool cleaning function to handle new data structures. Included 7th patch for that. v2: Fix typo in 3/6 commit subject line Thomas Falcon (8): ibmvnic: Generalize TX pool structure ibmvnic: Update and clean up reset TX pool routine ibmvnic: Update release TX pool routine ibmvnic: Update TX pool initialization routine ibmvnic: Update TX and TX completion routines ibmvnic: Improve TX buffer accounting ibmvnic: Update TX pool cleaning routine ibmvnic: Remove unused TSO resources in TX pool structure drivers/net/ethernet/ibm/ibmvnic.c | 275 +++++++++++++++++++++---------------- drivers/net/ethernet/ibm/ibmvnic.h | 8 +- 2 files changed, 160 insertions(+), 123 deletions(-) -- 2.15.0