sfc: stop the TX queue before pushing new buffers
authorMartin Habets <mhabets@solarflare.com>
Thu, 24 May 2018 09:14:00 +0000 (10:14 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 25 May 2018 18:49:37 +0000 (14:49 -0400)
commit0c235113b3c42197dba66baf76697359b03a5046
tree7434564e95de1ef46a2981f233f8f5076bf2dcb2
parent7d850abd5f4edb1b1ca4b4141a4453305736f564
sfc: stop the TX queue before pushing new buffers

efx_enqueue_skb() can push new buffers for the xmit_more functionality.
We must stops the TX queue before this or else the TX queue does not get
restarted and we get a netdev watchdog.

In the error handling we may now need to unwind more than 1 packet, and
we may need to push the new buffers onto the partner queue.

v2: In the error leg also push this queue if xmit_more is set

Fixes: e9117e5099ea ("sfc: Firmware-Assisted TSO version 2")
Reported-by: Jarod Wilson <jarod@redhat.com>
Tested-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Martin Habets <mhabets@solarflare.com>
Acked-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sfc/tx.c