Commit 0d0b752f authored by Alexandra Winter's avatar Alexandra Winter Committed by Jakub Kicinski
Browse files

s390/qeth: move netif_napi_add_tx() and napi_enable() from under BH

Like other drivers qeth is calling local_bh_enable() after napi_schedule()
to kick-start softirqs [0].
Since netif_napi_add_tx() and napi_enable() now take the netdev_lock()
mutex [1], move them out from under the BH protection. Same solution as in
commit a6055864 ("wifi: mt76: move napi_enable() from under BH")

Fixes: 1b23cdbd ("net: protect netdev->napi_list with netdev_lock()")
Link: https://lore.kernel.org/netdev/20240612181900.4d9d18d0@kernel.org/ [0]
Link: https://lore.kernel.org/netdev/20250115035319.559603-1-kuba@kernel.org/

 [1]
Signed-off-by: default avatarAlexandra Winter <wintera@linux.ibm.com>
Acked-by: default avatarJoe Damato <jdamato@fastly.com>
Link: https://patch.msgid.link/20250212163659.2287292-1-wintera@linux.ibm.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent fee5d688
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -7050,14 +7050,16 @@ int qeth_open(struct net_device *dev)
	card->data.state = CH_STATE_UP;
	netif_tx_start_all_queues(dev);

	local_bh_disable();
	qeth_for_each_output_queue(card, queue, i) {
		netif_napi_add_tx(dev, &queue->napi, qeth_tx_poll);
		napi_enable(&queue->napi);
		napi_schedule(&queue->napi);
	}

	napi_enable(&card->napi);

	local_bh_disable();
	qeth_for_each_output_queue(card, queue, i) {
		napi_schedule(&queue->napi);
	}
	napi_schedule(&card->napi);
	/* kick-start the NAPI softirq: */
	local_bh_enable();