linux_dsm_epyc7002/drivers/net
Jacob Keller e8d2f4c674 i40e: fix CONFIG_BUSY checks in i40e_set_settings function
The check for I40E_CONFIG_BUSY state bit in the i40e_set_link_ksettings
function is fishy. First we can notice a few things about the check here.

First a similar check was introduced by commit
'c7d05ca89f8e ("i40e: driver ethtool core")'

Later a commit introducing the link settings was added by commit
'bf9c71417f72 ("i40e: Implement set_settings for ethtool")'

However, this second check was against vsi->state instead of pf->state,
and also failed to set the bit, it only checks. That indicates the locking
was not quite correct. The only other place that the state bit
in vsi->state gets used is to protect the filter list.

Since this code does not care about the mac filter list,  and seems
clear the original code should have set the pf->state bit. Fix these
issues by using pf->state correctly, and by actually setting the bit
so that we properly lock as expected.

Since these checks occur while holding the rtnl_lock(), lets also add a
timeout so that we don't potentially softlock the system.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-04-19 17:17:03 -07:00
..
appletalk
arcnet
bonding bonding: deliver link-local packets with skb->dev set to link that packets arrived on 2017-04-17 15:45:47 -04:00
caif
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-04-15 21:16:30 -04:00
cris net: cris: eth_v10: use new api ethtool_{get|set}_link_ksettings 2017-03-27 15:53:19 -07:00
dsa net: dsa: mt7530: Include gpio/consumer.h for GPIO functions 2017-04-09 18:28:54 -07:00
ethernet i40e: fix CONFIG_BUSY checks in i40e_set_settings function 2017-04-19 17:17:03 -07:00
fddi
fjes Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-03-23 16:41:27 -07:00
hamradio
hippi
hyperv hv_netvsc: change netvsc device default duplex to FULL 2017-04-17 15:12:33 -04:00
ieee802154 ieee802154: ca8210: Add checks for kmalloc allocation failures 2017-04-12 22:02:39 +02:00
ipvlan
irda irda: vlsi_ir: fix check for DMA mapping errors 2017-03-25 20:14:40 -07:00
phy net: phy: test the right variable in phy_write_mmd() 2017-04-17 15:10:42 -04:00
plip
ppp
slip
team Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-04-15 21:16:30 -04:00
usb smsc95xx: Add comments to the registers definition 2017-04-17 13:04:52 -04:00
vmxnet3 net: vmxnet3: use new api ethtool_{get|set}_link_ksettings 2017-03-22 19:26:52 -07:00
wan ucc/hdlc: fix two little issue 2017-03-13 21:53:48 -07:00
wimax net: wimax/i2400m: fix NULL-deref at probe 2017-03-13 12:28:40 -07:00
wireless netlink: pass extended ACK struct to parsing functions 2017-04-13 13:58:22 -04:00
xen-netback xen-netback: fix race condition on XenBus disconnect 2017-03-12 23:44:43 -07:00
dummy.c Enable tx timestamping on loopback and dummy 2017-03-21 14:40:01 -07:00
eql.c
geneve.c
gtp.c gtp: support SGSN-side tunnels 2017-03-25 20:11:19 -07:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c Cleanup some warning from timestamping code. 2017-03-21 14:40:02 -07:00
macsec.c netlink: pass extended ACK struct to parsing functions 2017-04-13 13:58:22 -04:00
macvlan.c
macvtap.c
Makefile net: phy: Allow building mdio-boardinfo into the kernel 2017-03-29 10:32:32 -07:00
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c net: net_netdev: use new api ethtool_{get|set}_link_ksettings 2017-03-13 15:25:53 -07:00
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
tun.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-03-23 16:41:27 -07:00
veth.c netlink: pass extended ACK struct to parsing functions 2017-04-13 13:58:22 -04:00
virtio_net.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-04-15 21:16:30 -04:00
vrf.c net: rtnetlink: plumb extended ack to doit function 2017-04-17 15:35:38 -04:00
vxlan.c vxlan: fix ND proxy when skb doesn't have transport header offset 2017-04-03 18:50:42 -07:00
xen-netfront.c