sfc: add and use efx_tx_send_pending in tx.c
authorEdward Cree <ecree@solarflare.com>
Thu, 3 Sep 2020 21:34:15 +0000 (22:34 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sat, 5 Sep 2020 19:21:39 +0000 (12:21 -0700)
commit1c0544d24927e4fad04f858216b8ea767a3bd123
treed3a63922d57081bca0521f16daecc8372787d397
parent44a8c4f33c0073ca614db79f22e023811bdd0f3c
sfc: add and use efx_tx_send_pending in tx.c

Instead of using efx_tx_queue_partner(), which relies on the assumption
 that tx_queues_per_channel is 2, efx_tx_send_pending() iterates over
 txqs with efx_for_each_channel_tx_queue().
We unconditionally set tx_queue->xmit_pending (renamed from
 xmit_more_available), then condition on xmit_more for the call to
 efx_tx_send_pending(), which will clear xmit_pending.  Thus, after an
 xmit_more TX, the doorbell is un-rung and xmit_pending is true.

Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/sfc/ef10.c
drivers/net/ethernet/sfc/ef100_tx.c
drivers/net/ethernet/sfc/farch.c
drivers/net/ethernet/sfc/net_driver.h
drivers/net/ethernet/sfc/tx.c
drivers/net/ethernet/sfc/tx_common.c