3
0
Fork 0
forked from mirrors/linux
kernel/drivers/net/ethernet
Alexander Duyck ce2fa1dba2 fbnic: Do not allow mailbox to toggle to ready outside fbnic_mbx_poll_tx_ready
We had originally thought to have the mailbox go to ready in the background
while we were doing other things. One issue with this though is that we
can't disable it by clearing the ready state without also blocking
interrupts or calls to mbx_poll as it will just pop back to life during an
interrupt.

In order to prevent that from happening we can pull the code for toggling
to ready out of the interrupt path and instead place it in the
fbnic_mbx_poll_tx_ready path so that it becomes the only spot where the
Rx/Tx can toggle to the ready state. By doing this we can prevent races
where we disable the DMA and/or free buffers only to have an interrupt fire
and undo what we have done.

Fixes: da3cde0820 ("eth: fbnic: Add FW communication mechanism")
Signed-off-by: Alexander Duyck <alexanderduyck@fb.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/174654722518.499179.11612865740376848478.stgit@ahduyck-xeon-server.home.arpa
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-05-08 11:33:30 +02:00
..
3com treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
8390 treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
actions
adaptec
adi
aeroflex
agere treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
airoha net: airoha: Add missing field to ppe_mbox_data struct 2025-05-07 18:08:41 -07:00
alacritech
allwinner
alteon
altera
amazon treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
amd pds_core: remove write-after-free of client_id 2025-04-28 15:54:30 -07:00
apm
apple treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
aquantia treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
arc
asix
atheros treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
broadcom bnxt_en: fix module unload sequence 2025-05-01 06:58:20 -07:00
brocade treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
cadence net: ethernet: Drop unused of_gpio.h 2025-03-24 13:54:15 -07:00
calxeda
cavium lib/crc: remove CONFIG_LIBCRC32C 2025-04-04 11:31:42 -07:00
chelsio cxgb4: fix memory leak in cxgb4_init_ethtool_filters() error path 2025-04-16 17:52:18 -07:00
cirrus
cisco treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
cortina Networking changes for 6.15. 2025-03-26 21:48:21 -07:00
davicom
dec treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
dlink net: dlink: Correct endianness handling of led_mode 2025-04-29 11:50:38 -07:00
emulex
engleder tsnep: Select speed for loopback 2025-03-20 08:45:08 +01:00
ezchip
faraday
freescale net: fec: ERR007885 Workaround for conventional TX 2025-05-01 07:10:00 -07:00
fujitsu
fungible
google treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
hisilicon net: hns3: defer calling ptp_clock_register() 2025-05-01 07:19:48 -07:00
huawei
i825xx
ibm net: ibmveth: make veth_pool_store stop hanging 2025-04-04 07:34:11 -07:00
intel ice: use DSN instead of PCI BDF for ice_adapter index 2025-05-06 18:27:14 -07:00
litex
marvell octeon_ep: Fix host hang issue during device reboot 2025-05-01 07:11:44 -07:00
mediatek net: ethernet: mtk_eth_soc: do not reset PSE when setting FE 2025-05-06 13:37:34 +02:00
mellanox net/mlx5: E-switch, Fix error handling for enabling roce 2025-04-24 18:19:56 -07:00
meta fbnic: Do not allow mailbox to toggle to ready outside fbnic_mbx_poll_tx_ready 2025-05-08 11:33:30 +02:00
micrel treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
microchip net: lan743x: Fix memleak issue when GSO enabled 2025-05-01 07:04:58 -07:00
microsoft Rather tiny PR, mostly so that we can get into our trees your fix 2025-04-01 20:00:51 -07:00
moxa
mscc net: mscc: ocelot: delete PVID VLAN when readding it as non-PVID 2025-04-25 18:45:43 -07:00
myricom treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
natsemi treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
neterion treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
netronome treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
ni
nvidia treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
nxp
oki-semi treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
packetengines treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
pasemi treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
pensando treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
qlogic treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
qualcomm Networking changes for 6.15. 2025-03-26 21:48:21 -07:00
rdc
realtek rtase: Modify the condition used to detect overflow in rtase_calc_time_mitigation 2025-04-25 18:59:42 -07:00
renesas renesas: reject PTP_STRICT_FLAGS as unsupported 2025-03-20 08:50:02 +01:00
rocker treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
samsung treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
seeq treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
sfc treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
sgi treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
silan
sis treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
smsc treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
socionext net: netsec: Add metadata support for xdp mode 2025-03-25 04:35:41 -07:00
stmicro net: stmmac: fix multiplication overflow when reading timestamp 2025-04-24 11:50:20 +02:00
sun net/niu: Niu requires MSIX ENTRY_DATA fields touch before entry reads 2025-04-15 08:32:19 +02:00
sunplus
synopsys treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
tehuti net: tn40xx: add pci-id of the aqr105-based Tehuti TN4010 cards 2025-03-25 13:53:21 -07:00
ti net: ti: icssg-prueth: Report BQL before sending XDP packets 2025-05-07 18:19:12 -07:00
toshiba
tundra treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
vertexcom net: vertexcom: mse102x: Fix RX error handling 2025-05-01 07:24:05 -07:00
via
wangxun net: txgbe: fix memory leak in txgbe_probe() error path 2025-04-16 18:12:36 -07:00
wiznet
xilinx
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
jme.c
jme.h
Kconfig
korina.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
lantiq_etop.c
lantiq_xrx200.c
Makefile
oa_tc6.c