[net-next v3 00/15] ethernet: Convert from tasklet to BH workqueue

From: Allen Pais
Date: Tue Jul 30 2024 - 14:34:23 EST


The only generic interface to execute asynchronously in the BH context is
tasklet; however, it's marked deprecated and has some design flaws. To
replace tasklets, BH workqueue support was recently added. A BH workqueue
behaves similarly to regular workqueues except that the queued work items
are executed in the BH context.

This patch converts a few drivers in drivers/ethernet/* from tasklet
to BH workqueue. The next set will be sent out after the next -rc is
out.

This series is based on
1722389b0d86 (Merge tag 'net-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)

[v3]:
- Include Reviewed-by signature
- hinic: can show work_pending() as a partial replacement for the tasklet state.
- mvpp2: retain and re-word comment.
- fix rxempty_bh_work() which will emit 'RX Queue Full!'
message, so the change should be visibile to the user.


[v2]:
https://lore.kernel.org/all/20240621183947.4105278-1-allen.lkml@xxxxxxxxx/

[v1]:
First version converting all the drivers can be found at:
https://lore.kernel.org/all/20240507190111.16710-2-apais@xxxxxxxxxxxxxxxxxxx/


Allen Pais (15):
net: alteon: Convert tasklet API to new bottom half workqueue
mechanism
net: xgbe: Convert tasklet API to new bottom half workqueue mechanism
net: cnic: Convert tasklet API to new bottom half workqueue mechanism
net: macb: Convert tasklet API to new bottom half workqueue mechanism
net: cavium/liquidio: Convert tasklet API to new bottom half workqueue
mechanism
net: octeon: Convert tasklet API to new bottom half workqueue
mechanism
net: thunderx: Convert tasklet API to new bottom half workqueue
mechanism
net: chelsio: Convert tasklet API to new bottom half workqueue
mechanism
net: sundance: Convert tasklet API to new bottom half workqueue
mechanism
net: hinic: Convert tasklet API to new bottom half workqueue mechanism
net: ehea: Convert tasklet API to new bottom half workqueue mechanism
net: ibmvnic: Convert tasklet API to new bottom half workqueue
mechanism
net: jme: Convert tasklet API to new bottom half workqueue mechanism
net: marvell: Convert tasklet API to new bottom half workqueue
mechanism
net: mtk-wed: Convert tasklet API to new bottom half workqueue
mechanism

drivers/net/ethernet/alteon/acenic.c | 26 +++---
drivers/net/ethernet/alteon/acenic.h | 8 +-
drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 30 +++----
drivers/net/ethernet/amd/xgbe/xgbe-i2c.c | 16 ++--
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 16 ++--
drivers/net/ethernet/amd/xgbe/xgbe-pci.c | 4 +-
drivers/net/ethernet/amd/xgbe/xgbe.h | 10 +--
drivers/net/ethernet/broadcom/cnic.c | 19 ++---
drivers/net/ethernet/broadcom/cnic.h | 2 +-
drivers/net/ethernet/cadence/macb.h | 3 +-
drivers/net/ethernet/cadence/macb_main.c | 10 +--
.../net/ethernet/cavium/liquidio/lio_core.c | 4 +-
.../net/ethernet/cavium/liquidio/lio_main.c | 24 +++---
.../ethernet/cavium/liquidio/lio_vf_main.c | 10 +--
.../ethernet/cavium/liquidio/octeon_droq.c | 4 +-
.../ethernet/cavium/liquidio/octeon_main.h | 4 +-
.../net/ethernet/cavium/octeon/octeon_mgmt.c | 13 +--
drivers/net/ethernet/cavium/thunder/nic.h | 5 +-
.../net/ethernet/cavium/thunder/nicvf_main.c | 24 +++---
.../ethernet/cavium/thunder/nicvf_queues.c | 4 +-
.../ethernet/cavium/thunder/nicvf_queues.h | 2 +-
drivers/net/ethernet/chelsio/cxgb/sge.c | 19 ++---
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 9 ++-
.../net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 +-
.../ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c | 4 +-
.../net/ethernet/chelsio/cxgb4/cxgb4_uld.c | 2 +-
drivers/net/ethernet/chelsio/cxgb4/sge.c | 40 +++++-----
drivers/net/ethernet/chelsio/cxgb4vf/sge.c | 6 +-
drivers/net/ethernet/dlink/sundance.c | 41 +++++-----
.../net/ethernet/huawei/hinic/hinic_hw_cmdq.c | 2 +-
.../net/ethernet/huawei/hinic/hinic_hw_eqs.c | 18 ++---
.../net/ethernet/huawei/hinic/hinic_hw_eqs.h | 2 +-
drivers/net/ethernet/ibm/ehea/ehea.h | 3 +-
drivers/net/ethernet/ibm/ehea/ehea_main.c | 14 ++--
drivers/net/ethernet/ibm/ibmvnic.c | 24 +++---
drivers/net/ethernet/ibm/ibmvnic.h | 2 +-
drivers/net/ethernet/jme.c | 80 ++++++++++---------
drivers/net/ethernet/jme.h | 9 ++-
.../net/ethernet/marvell/mvpp2/mvpp2_main.c | 9 ++-
drivers/net/ethernet/marvell/skge.c | 12 +--
drivers/net/ethernet/marvell/skge.h | 3 +-
drivers/net/ethernet/mediatek/mtk_wed_wo.c | 12 +--
drivers/net/ethernet/mediatek/mtk_wed_wo.h | 3 +-
43 files changed, 288 insertions(+), 266 deletions(-)

--
2.34.1