* Fix race in Tx performance path with tx_lock. Between checking
if we're out of resources and stopping the queue, we can get
a hard interrupt which will clean up all Tx work, and wake
the queue. Coming out of hard interrupt context, we stop the
queue even though no work was queued, and all work completed
has been cleaned up. Scenario requires ring to be completely
filled, which is more likely to happen with TSO, since each
TSO send consumes multiple ring entries.