]> git.baikalelectronics.ru Git - kernel.git/commit
ionic: Cleanups in the Tx hotpath code
authorBrett Creeley <brett@pensando.io>
Mon, 24 Jan 2022 18:53:08 +0000 (10:53 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 25 Jan 2022 11:15:09 +0000 (11:15 +0000)
commit533bba926956ad4409995dd9c1734ea5dd7a84f3
tree019a69d93a18fce5b65ce48b8cb7f7775df0a622
parent213ba73f2a463957cb571706a3a3e26f968f003e
ionic: Cleanups in the Tx hotpath code

Buffer DMA mapping happens in ionic_tx_map_skb() and this function is
called from ionic_tx() and ionic_tx_tso(). If ionic_tx_map_skb()
succeeds, but a failure is encountered later in ionic_tx() or
ionic_tx_tso() we aren't unmapping the buffers. This can be fixed in
ionic_tx() by changing functions it calls to return void because they
always return 0. For ionic_tx_tso(), there's an actual possibility that
we leave the buffers mapped, so fix this by introducing the helper
function ionic_tx_desc_unmap_bufs(). This function is also re-used
in ionic_tx_clean().

Fixes: 5931eb5d68ae ("ionic: Add Tx and Rx handling")
Signed-off-by: Brett Creeley <brett@pensando.io>
Signed-off-by: Shannon Nelson <snelson@pensando.io>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/pensando/ionic/ionic_txrx.c