linux/drivers/net/ethernet/pensando/ionic
Nikhil P. Rao c91b4d6e5c ionic: use netif_txq_maybe_stop() in ionic_tx()
Commit 061b9bedbe ("ionic: Rework Tx start/stop flow") replaced
ionic_maybe_stop_tx() with netif_txq_maybe_stop() to get the memory
barriers around the stop/start bits right, but did not cover the stop
in ionic_tx() added by commit 138506ab24 ("ionic: Check stop no
restart"). Convert the remaining site.

netif_txq_maybe_stop() requires the ring indexes to be updated before
it is invoked, so the post has to come first. But ring_dbell comes
from __netdev_tx_sent_queue(), which runs after that and reads the
stop bit, so it is not known in time to pass to ionic_txq_post(). Post
without the doorbell and ring it separately.

The stop condition is unchanged. The re-check only clears the stop bit
when space has become available, so the doorbell starvation fixed by
commit 138506ab24 ("ionic: Check stop no restart") cannot recur.

Fixes: 138506ab24 ("ionic: Check stop no restart")
Signed-off-by: Nikhil P. Rao <nikhil.rao@amd.com>
Reviewed-by: Brett Creeley <brett.creeley@amd.com>
Link: https://patch.msgid.link/20260901055627.1373129-1-nikhil.rao@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-04 15:50:51 -07:00
..
ionic_api.h net: ionic: Provide doorbell and CMB region information 2025-09-11 02:18:36 -04:00
ionic_aux.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ionic_aux.h net: ionic: Create an auxiliary device for rdma driver 2025-09-11 02:18:35 -04:00
ionic_bus_pci.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ionic_bus.h
ionic_debugfs.c ionic: Remove redundant null pointer checks in ionic_debugfs_add_qcq() 2024-09-04 16:58:37 -07:00
ionic_debugfs.h
ionic_dev.c ionic: Get "link_down_count" ext link stat from firmware 2026-06-15 18:15:08 -07:00
ionic_dev.h ionic: Get "link_down_count" ext link stat from firmware 2026-06-15 18:15:08 -07:00
ionic_devlink.c ionic: catch failure from devlink_alloc 2023-05-03 09:14:47 +01:00
ionic_devlink.h
ionic_ethtool.c net: ionic: register PHC for rdma timestamping 2026-07-22 04:53:36 -04:00
ionic_ethtool.h
ionic_fw.c ionic: check cmd_regs before copying in or out 2024-02-27 13:03:32 +01:00
ionic_if.h Including fixes from Bluetooth, IPSec and Netfilter. 2026-08-27 13:53:43 -07:00
ionic_lif.c RDMA v7.3 merge window pull 2026-08-21 11:48:54 -07:00
ionic_lif.h net: ionic: Add PHC state page for user space access 2026-07-22 04:53:36 -04:00
ionic_main.c ionic: add missing dma_rmb() after the completion publish check 2026-08-17 12:58:46 -07:00
ionic_phc.c net: ionic: Add PHC state page for user space access 2026-07-22 04:53:36 -04:00
ionic_regs.h
ionic_rx_filter.c ionic: Change list definition method 2026-07-02 11:13:05 +02:00
ionic_rx_filter.h ionic: Remove unused declarations 2023-08-22 10:30:06 -07:00
ionic_stats.c ionic: Report "rx_bits_phy" stat to ethtool 2026-06-15 18:15:08 -07:00
ionic_stats.h ionic: Report "rx_bits_phy" stat to ethtool 2026-06-15 18:15:08 -07:00
ionic_txrx.c ionic: use netif_txq_maybe_stop() in ionic_tx() 2026-09-04 15:50:51 -07:00
ionic_txrx.h ionic: Allow XDP program to be hot swapped 2024-09-09 19:18:15 -07:00
ionic.h net: ionic: Export the APIs from net driver to support device commands 2025-09-11 02:18:35 -04:00
Makefile net: ionic: Create an auxiliary device for rdma driver 2025-09-11 02:18:35 -04:00