net:cxgb3: replace tasklets with works
authorÍñigo Huguet <ihuguet@redhat.com>
Thu, 3 Jun 2021 06:34:29 +0000 (08:34 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Jun 2021 21:57:37 +0000 (14:57 -0700)
commit5e0b8928927fa0bac688221a4b2636ef593a0599
tree1cacef8dc34f05f26af456311d746bcf56c36ce6
parenta29cb6914681a55667436a9eb7a42e28da8cf387
net:cxgb3: replace tasklets with works

OFLD and CTRL TX queues can be stopped if there is no room in
their DMA rings. If this happens, they're tried to be restarted
later after having made some room in the corresponding ring.

The tasks of restarting these queues were triggered using
tasklets, but they can be replaced for workqueue works, getting
them out of softirq context.

This queues stop/restart probably doesn't happen often and they
can be quite lengthy because they try to send all pending skbs.
Moreover, given that probably the ring is not empty yet, so the
DMA still has work to do, we don't need to be so fast to justify
using tasklets/softirq instead of running in a thread.

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb3/adapter.h
drivers/net/ethernet/chelsio/cxgb3/common.h
drivers/net/ethernet/chelsio/cxgb3/sge.c