linux/drivers/net
Sudheer Mogilappagari fe2647ab0c i40evf: prevent VF close returning before state transitions to DOWN
Currently i40evf_close() can return before state transitions to
__I40EVF_DOWN because of the latency involved in processing and
receiving response from PF driver and scheduling of VF watchdog_task.
Due to this inconsistency an immediate call to i40evf_open() fails
because state is still DOWN_PENDING.

When a VF interface is in up state and we try to add it as slave,
The bonding driver calls dev_close() and dev_open() in short duration
resulting in dev_open returning error. The ifenslave command needs
to be run again for dev_open to succeed.

This fix ensures that watchdog timer is scheduled immediately after
admin queue operations are scheduled in i40evf_down(). In addition a
wait condition is added at the end of i40evf_close so that function
wont return when state is still DOWN_PENDING. The timeout value is
chosen after some profiling and includes some buffer.

Signed-off-by: Sudheer Mogilappagari <sudheer.mogilappagari@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-08-25 14:45:55 -07:00
..
appletalk
arcnet
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-15 20:23:23 -07:00
caif
can can: constify platform_device_id 2017-08-13 20:12:23 -07:00
cris
dsa net: dsa: mv88e6xxx: make irq_chip const 2017-08-20 20:02:29 -07:00
ethernet i40evf: prevent VF close returning before state transitions to DOWN 2017-08-25 14:45:55 -07:00
fddi net: defxx: constify eisa_device_id 2017-08-19 17:13:41 -07:00
fjes
hamradio hamradio: baycom: make hdlcdrv_ops const 2017-08-07 14:26:46 -07:00
hippi
hyperv hv_netvsc: Fix rndis_filter_close error during netvsc_remove 2017-08-24 21:55:59 -07:00
ieee802154
ipvlan Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-09 16:28:45 -07:00
irda net: irda: stir4200: constify usb_device_id 2017-08-08 17:47:58 -07:00
phy net: mdio-gpio: make mdiobb_ops const 2017-08-22 14:22:18 -07:00
plip
ppp ppp: fix xmit recursion detection on ppp channels 2017-08-08 21:06:11 -07:00
slip
team team: use a larger struct for mac address 2017-07-29 11:25:05 -07:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-09 16:28:45 -07:00
vmxnet3
wan wan: dscc4: convert to plain DMA API 2017-08-11 14:42:28 -07:00
wimax
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-15 20:23:23 -07:00
xen-netback
dummy.c
eql.c
geneve.c geneve: use netlink_ext_ack for error reporting in rtnl operations 2017-08-11 13:45:02 -07:00
gtp.c gtp: Initialize 64-bit per-cpu stats correctly 2017-08-01 20:06:07 -07:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c
macvlan.c macvlan: add offload features for encapsulation 2017-08-18 16:06:54 -07:00
macvtap.c
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c tun/tap: use paren's with sizeof 2017-08-16 11:01:57 -07:00
tun.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-21 17:06:42 -07:00
veth.c
virtio_net.c net: drop unused attribute argument from sysfs queue funcs 2017-08-18 22:38:31 -07:00
vrf.c net: vrf: Drop local rtable and rt6_info 2017-08-13 20:05:12 -07:00
vsockmon.c
vxlan.c vxlan: change vxlan_[config_]validate() to use netlink_ext_ack for error reporting 2017-08-13 20:00:29 -07:00
xen-netfront.c