mirror_ubuntu-kernels/drivers/net/ethernet/broadcom
Thinh Tran bf23ffc8a9 bnx2x: new flag for track HW resource allocation
While injecting PCIe errors to the upstream PCIe switch of
a BCM57810 NIC, system hangs/crashes were observed.

After several calls to bnx2x_tx_timout() complete,
bnx2x_nic_unload() is called to free up HW resources
and bnx2x_napi_disable() is called to release NAPI objects.
Later, when the EEH driver calls bnx2x_io_slot_reset() to
complete the recovery process, bnx2x attempts to disable
NAPI again by calling bnx2x_napi_disable() and freeing
resources which have already been freed, resulting in a
hang or crash.

Introduce a new flag to track the HW resource and NAPI
allocation state, refactor duplicated code into a single
function, check page pool allocation status before freeing,
and reduces debug output when a TX timeout event occurs.

Reviewed-by: Manish Chopra <manishc@marvell.com>
Tested-by: Abdul Haleem <abdhalee@in.ibm.com>
Tested-by: David Christensen <drc@linux.vnet.ibm.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Tested-by: Venkata Sai Duggi <venkata.sai.duggi@ibm.com>
Signed-off-by: Thinh Tran <thinhtr@linux.vnet.ibm.com>
Link: https://lore.kernel.org/r/20230818161443.708785-2-thinhtr@linux.vnet.ibm.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-08-22 17:07:40 -07:00
..
bnx2x bnx2x: new flag for track HW resource allocation 2023-08-22 17:07:40 -07:00
bnxt bnxt_en: Fix max_mtu setting for multi-buf XDP 2023-08-01 15:04:58 -07:00
genet net: bcmgenet: Fix return value check for fixed_phy_register() 2023-08-20 10:58:28 +01:00
b44.c broadcom: b44: Use b44_writephy() return value 2023-08-16 07:08:29 +01:00
b44.h
bcm63xx_enet.c net: ethernet: broadcom: bcm63xx_enet: Drop empty platform remove function 2022-12-30 07:28:49 +00:00
bcm63xx_enet.h
bcm4908_enet.c net: broadcom: bcm4908_enet: report queued and transmitted bytes 2022-11-02 20:38:04 -07:00
bcm4908_enet.h
bcmsysport.c net: systemport: Replace platform_get_irq with platform_get_irq_optional 2023-06-02 09:56:23 +01:00
bcmsysport.h net: systemport: Add support for RDMA overflow statistic counter 2022-10-31 20:05:03 -07:00
bgmac-bcma-mdio.c net: ethernet: bgmac: Fix refcount leak in bcma_mdio_mii_register 2022-06-06 14:38:15 -07:00
bgmac-bcma.c net: bgmac: fix BCM5358 support by setting correct flags 2023-02-09 22:25:31 -08:00
bgmac-platform.c Revert "net: ethernet: bgmac: Use devm_platform_ioremap_resource_byname" 2022-02-17 08:45:34 -08:00
bgmac.c net: bgmac: Fix return value check for fixed_phy_register() 2023-08-20 10:58:28 +01:00
bgmac.h bgmac: fix *initial* chip reset to support BCM5358 2023-02-28 11:10:05 +01:00
bnx2_fw.h
bnx2.c net: remove __skb_frag_set_page() 2023-05-13 19:47:56 +01:00
bnx2.h bnx2: Drop redundant pci_enable_pcie_error_reporting() 2023-03-08 23:34:38 -08:00
cnic_defs.h
cnic_if.h
cnic.c dma-mapping updates for Linux 2.6 2022-12-13 09:05:19 -08:00
cnic.h
Kconfig bnxt_en: Add auxiliary driver support 2023-02-01 19:02:06 -08:00
Makefile net: ethernet: bgmac: Remove -Warray-bounds exception 2022-10-07 08:50:07 +01:00
sb1250-mac.c ethernet: broadcom/sb1250-mac: clean up after SIBYTE_BCM1x55 removal 2023-03-24 09:04:01 +00:00
tg3.c tg3: Use slab_build_skb() when needed 2023-08-21 19:11:58 -07:00
tg3.h tg3: Read VPD with pci_vpd_alloc() 2021-08-20 15:49:00 -05:00
unimac.h