linux/drivers/net
Sukadev Bhattiprolu 2c6197e7ea ibmvnic: delay complete()
[ Upstream commit 6b278c0cb3 ]

If we get CRQ_INIT, we set errno to -EIO and first call complete() to
notify the waiter. Then we try to schedule a FAILOVER reset. If this
occurs while adapter is in PROBING state, ibmvnic_reset() changes the
error code to EAGAIN and returns without scheduling the FAILOVER. The
purpose of setting error code to EAGAIN is to ask the waiter to retry.

But due to the earlier complete() call, the waiter may already have seen
the -EIO response and decided not to retry. This can cause intermittent
failures when bringing up ibmvnic adapters during boot, specially in
in kexec/kdump kernels.

Defer the complete() call until after scheduling the reset.

Also streamline the error code to EAGAIN. Don't see why we need EIO
sometimes. All 3 callers of ibmvnic_reset_init() can handle EAGAIN.

Fixes: 17c8705838 ("ibmvnic: Return error code if init interrupted by transport event")
Reported-by: Vaishnavi Bhat <vaish123@in.ibm.com>
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
Reviewed-by: Dany Madden <drt@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-11-18 19:16:45 +01:00
..
appletalk
arcnet
bonding bonding: 3ad: pass parameter bond_params by reference 2021-09-07 10:28:50 +01:00
caif
can can: bittiming: can_fixup_bittiming(): change type of tseg1 and alltseg to unsigned int 2021-11-18 19:16:19 +01:00
dsa net: dsa: rtl8366: Fix a bug in deleting VLANs 2021-11-18 19:16:26 +01:00
ethernet ibmvnic: delay complete() 2021-11-18 19:16:45 +01:00
fddi fddi: switch from 'pci_' to 'dma_' API 2021-08-29 10:50:24 +01:00
fjes
hamradio hamradio: baycom_epp: fix build for UML 2021-10-18 12:57:42 +01:00
hippi
hyperv
ieee802154
ipa asm-generic: build fixes for v5.15 2021-10-08 11:57:54 -07:00
ipvlan
mctp
mdio net: mdio-ipq4019: Fix the error for an optional regs resource 2021-09-28 17:28:54 -07:00
netdevsim Driver core update for 5.15-rc1 2021-09-01 08:44:42 -07:00
pcs net: pcs: xpcs: fix incorrect steps on disable EEE 2021-10-06 11:18:27 +01:00
phy net: phylink: avoid mvneta warning when setting pause parameters 2021-11-18 19:16:44 +01:00
plip
ppp
slip
team
usb usbnet: fix error return code in usbnet_probe() 2021-10-27 12:06:15 -07:00
vmxnet3 vmxnet3: do not stop tx queues after netif_device_detach() 2021-10-28 12:51:17 +01:00
wan net: wan: wanxl: define CROSS_COMPILE_M68K 2021-09-16 14:08:04 +01:00
wireguard
wireless wcn36xx: Channel list update before hardware scan 2021-11-18 19:16:43 +01:00
wwan Networking stragglers and fixes for 5.15-rc1, including changes from netfilter, 2021-09-07 14:02:58 -07:00
xen-netback xen-netback: correct success/error reporting for the SKB-with-fraglist case 2021-09-19 12:10:26 +01:00
bareudp.c
dummy.c
eql.c
geneve.c
gtp.c
ifb.c ifb: fix building without CONFIG_NET_CLS_ACT 2021-11-18 19:16:04 +01:00
Kconfig ifb: Depend on netfilter alternatively to tc 2021-11-18 19:15:58 +01:00
LICENSE.SRC
loopback.c
macsec.c
macvlan.c
macvtap.c
Makefile
mdio.c
mhi_net.c drivers: net: mhi: fix error path in mhi_net_newlink 2021-09-24 14:25:05 +01:00
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c
tun.c
veth.c
virtio_net.c virtio-net: fix for skb_over_panic inside big mode 2021-10-09 13:50:33 +01:00
vrf.c vrf: run conntrack only in context of lower/physdev for locally generated packets 2021-11-18 19:16:19 +01:00
vsockmon.c
vxlan.c nexthop: Fix memory leaks in nexthop notification chain listeners 2021-09-23 12:33:22 +01:00
xen-netfront.c xen/netfront: stop tx queues during live migration 2021-10-25 16:13:12 +01:00