linux/drivers/net/ethernet
Slawomir Laba 3ccd54ef44 iavf: Fix init state closure on remove
When init states of the adapter work, the errors like lack
of communication with the PF might hop in. If such events
occur the driver restores previous states in order to retry
initialization in a proper way. When remove task kicks in,
this situation could lead to races with unregistering the
netdevice as well as resources cleanup. With the commit
introducing the waiting in remove for init to complete,
this problem turns into an endless waiting if init never
recovers from errors.

Introduce __IAVF_IN_REMOVE_TASK bit to indicate that the
remove thread has started.

Make __IAVF_COMM_FAILED adapter state respect the
__IAVF_IN_REMOVE_TASK bit and set the __IAVF_INIT_FAILED
state and return without any action instead of trying to
recover.

Make __IAVF_INIT_FAILED adapter state respect the
__IAVF_IN_REMOVE_TASK bit and return without any further
actions.

Make the loop in the remove handler break when adapter has
__IAVF_INIT_FAILED state set.

Fixes: 898ef1cb1c ("iavf: Combine init and watchdog state machines")
Signed-off-by: Slawomir Laba <slawomirx.laba@intel.com>
Signed-off-by: Phani Burra <phani.r.burra@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Mateusz Palczewski <mateusz.palczewski@intel.com>
Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2022-02-25 11:37:07 -08:00
..
3com ethernet: 3com/typhoon: don't write directly to netdev->dev_addr 2022-01-26 15:40:01 +00:00
8390 ethernet: 8390/etherh: don't write directly to netdev->dev_addr 2022-01-26 15:40:01 +00:00
actions
adaptec
aeroflex
agere et131x: Remove useless DMA-32 fallback configuration 2022-01-09 16:52:19 -08:00
alacritech
allwinner net: ethernet: sun4i-emac: Fix an error handling path in emac_probe() 2022-01-15 22:34:52 +00:00
alteon net: alteon: Simplify DMA setting 2022-01-09 16:52:18 -08:00
altera
amazon net: ena: Extract recurring driver reset code into a function 2022-01-07 19:25:52 -08:00
amd net: amd-xgbe: disable interrupts during pci removal 2022-02-09 12:52:59 +00:00
apm
apple net: apple: bmac: Fix build since dev_addr constification 2022-01-14 11:22:57 +00:00
aquantia net: atlantic: Use the bitmap API instead of hand-writing it 2022-01-24 12:57:01 +00:00
arc
asix
atheros atl1c: fix tx timeout after link flap on Mikrotik 10/25G NIC 2022-02-11 14:41:02 -08:00
broadcom bnx2x: fix driver load from initrd 2022-02-24 09:06:18 -08:00
brocade bna: Simplify DMA setting 2022-01-09 16:52:18 -08:00
cadence net: macb: Align the dma and coherent dma masks 2022-02-10 15:09:04 +00:00
calxeda
cavium
chelsio net: chelsio: cxgb3: check the return value of pci_find_capability() 2022-02-25 12:52:05 +00:00
cirrus
cisco Updates for the interrupt subsystem: 2022-01-13 08:53:45 -08:00
cortina
davicom
dec
dlink
emulex Updates for the interrupt subsystem: 2022-01-13 08:53:45 -08:00
engleder
ezchip
faraday drivers/net/ftgmac100: fix DHCP potential failure with systemd 2022-02-23 12:50:19 +00:00
freescale dpaa2-eth: Initialize mutex used in one step timestamping path 2022-02-15 14:33:30 +00:00
fujitsu
google gve: Recording rx queue before sending to napi 2022-02-08 16:52:31 -08:00
hisilicon net: hns3: handle empty unknown interrupt for VF 2022-01-25 13:08:05 +00:00
huawei Updates for the interrupt subsystem: 2022-01-13 08:53:45 -08:00
i825xx ethernet: i825xx: don't write directly to netdev->dev_addr 2022-01-26 15:40:01 +00:00
ibm ibmvnic: Allow queueing resets during probe 2022-02-25 10:57:47 +00:00
intel iavf: Fix init state closure on remove 2022-02-25 11:37:07 -08:00
litex net: ethernet: litex: Add the dependency on HAS_IOMEM 2022-02-08 20:43:40 -08:00
marvell net: mv643xx_eth: process retval from of_get_mac_address 2022-02-24 10:05:08 -08:00
mediatek net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config() 2022-01-15 22:33:17 +00:00
mellanox net/mlx5e: Fix VF min/max rate parameters interchange mistake 2022-02-23 16:08:19 -08:00
micrel
microchip net: sparx5: Fix add vlan when invalid operation 2022-02-25 12:54:48 +00:00
microsoft
moxa
mscc net: mscc: ocelot: fix use-after-free in ocelot_vlan_del() 2022-02-15 14:38:20 +00:00
myricom myri10ge: Simplify DMA setting 2022-01-09 16:52:18 -08:00
natsemi
neterion
netronome nfp: flower: Fix a potential leak in nfp_tunnel_add_shared_mac() 2022-02-18 21:08:14 -08:00
ni
nvidia
nxp
oki-semi
packetengines
pasemi
pensando
qlogic net/qla3xxx: Remove useless DMA-32 fallback configuration 2022-01-09 16:52:21 -08:00
qualcomm
rdc
realtek Power management updates for 5.17-rc1 2022-01-10 20:34:00 -08:00
renesas
rocker Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-01-09 17:00:17 -08:00
samsung net: sxgbe: fix return value of __setup handler 2022-02-25 08:53:13 -08:00
seeq ethernet: seeq/ether3: don't write directly to netdev->dev_addr 2022-01-26 15:40:01 +00:00
sfc
sgi
silan
sis
smsc ethernet: smc911x: fix indentation in get/set EEPROM 2022-02-01 19:59:03 -08:00
socionext
stmicro net: stmmac: fix return value of __setup handler 2022-02-25 08:53:17 -08:00
sun
synopsys
tehuti
ti net: cpsw: Properly initialise struct page_pool_params 2022-01-25 11:06:33 +00:00
toshiba
tundra ethernet: tundra: don't write directly to netdev->dev_addr 2022-01-26 15:40:01 +00:00
vertexcom Revert "net: vertexcom: default to disabled on kbuild" 2022-01-10 21:11:07 -08:00
via
wiznet
xilinx net: ll_temac: check the return value of devm_kmalloc() 2022-02-18 12:00:44 +00:00
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c
jme.h
Kconfig
korina.c
lantiq_etop.c
lantiq_xrx200.c
Makefile