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>
This commit is contained in:

committed by
Jakub Kicinski

parent
44a8c4f33c
commit
1c0544d249
@@ -2367,7 +2367,7 @@ static void efx_ef10_tx_write(struct efx_tx_queue *tx_queue)
|
||||
unsigned int write_ptr;
|
||||
efx_qword_t *txd;
|
||||
|
||||
tx_queue->xmit_more_available = false;
|
||||
tx_queue->xmit_pending = false;
|
||||
if (unlikely(tx_queue->write_count == tx_queue->insert_count))
|
||||
return;
|
||||
|
||||
|
Reference in New Issue
Block a user