sfc: de-indirect TSO handling
authorEdward Cree <ecree@solarflare.com>
Fri, 11 Sep 2020 22:40:03 +0000 (23:40 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 12 Sep 2020 00:15:22 +0000 (17:15 -0700)
commit1679c72cf48552e75a624b9c9230e2c7c18cfffc
tree0a01a45d7b955a904a17a0be7e371a3d42eefd32
parentfe0c4060c1b90fabfcab387dc374edde420a98d6
sfc: de-indirect TSO handling

Remove the tx_queue->handle_tso function pointer, and just use
 tx_queue->tso_version to decide which function to call, thus removing
 an indirect call from the fast path.
Instead of passing a tso_v2 flag to efx_mcdi_tx_init(), set the desired
 tx_queue->tso_version before calling it.
In efx_mcdi_tx_init(), report back failure to obtain a TSOv2 context by
 setting tx_queue->tso_version to 0, which will cause the TX path to
 use the GSO-based fallback.

Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sfc/ef10.c
drivers/net/ethernet/sfc/ef100_tx.c
drivers/net/ethernet/sfc/farch.c
drivers/net/ethernet/sfc/mcdi_functions.c
drivers/net/ethernet/sfc/mcdi_functions.h
drivers/net/ethernet/sfc/net_driver.h
drivers/net/ethernet/sfc/nic.h
drivers/net/ethernet/sfc/tx.c
drivers/net/ethernet/sfc/tx_common.c