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. 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 (7): 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 drivers/net/ethernet/ibm/ibmvnic.c | 275 +++++++++++++++++++++---------------- drivers/net/ethernet/ibm/ibmvnic.h | 8 +- 2 files changed, 160 insertions(+), 123 deletions(-) -- 2.7.5