linux-stable/drivers/net
Kai-Heng Feng 3046b09d45 igb: Report speed and duplex as unknown when device is runtime suspended
commit 165ae7a8fe upstream.

igb device gets runtime suspended when there's no link partner. We can't
get correct speed under that state:
$ cat /sys/class/net/enp3s0/speed
1000

In addition to that, an error can also be spotted in dmesg:
[  385.991957] igb 0000:03:00.0 enp3s0: PCIe link lost

Since device can only be runtime suspended when there's no link partner,
we can skip reading register and let the following logic set speed and
duplex with correct status.

The more generic approach will be wrap get_link_ksettings() with begin()
and complete() callbacks. However, for this particular issue, begin()
calls igb_runtime_resume() , which tries to rtnl_lock() while the lock
is already hold by upper ethtool layer.

So let's take this approach until the igb_runtime_resume() no longer
needs to hold rtnl_lock.

CC: stable <stable@vger.kernel.org>
Suggested-by: Alexander Duyck <alexander.duyck@gmail.com>
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-06-22 09:31:19 +02:00
..
appletalk
arcnet
bonding bonding: Fix reference count leak in bond_sysfs_slave_add. 2020-06-03 08:21:38 +02:00
caif
can slcan: Don't transmit uninitialized stack data in padding 2020-04-13 10:48:05 +02:00
dsa net: dsa: mt7530: set CPU port to fallback mode 2020-06-07 13:18:48 +02:00
ethernet igb: Report speed and duplex as unknown when device is runtime suspended 2020-06-22 09:31:19 +02:00
fddi
fjes fjes: fix missed check in fjes_acpi_add 2019-12-31 16:41:14 +01:00
hamradio drivers: net: hamradio: Fix suspicious RCU usage warning in bpqether.c 2020-06-03 08:21:15 +02:00
hippi
hyperv hv_netvsc: Fix unwanted wakeup in netvsc_attach() 2020-03-05 16:43:46 +01:00
ieee802154
ipvlan ipvlan: don't deref eth hdr before checking it's set 2020-03-18 07:17:39 +01:00
netdevsim netdevsim: fix stack-out-of-bounds in nsim_dev_debugfs_init() 2020-02-11 04:35:06 -08:00
phy net: phy: fix aneg restart in phy_ethtool_set_eee 2020-05-20 08:20:09 +02:00
plip
ppp pppoe: only process PADT targeted at local interfaces 2020-05-20 08:20:09 +02:00
slip slip: not call free_netdev before rtnl_unlock in slip_open 2020-03-21 08:11:53 +01:00
team team: fix hang in team_mode_get() 2020-04-29 16:33:09 +02:00
usb net: usb: qmi_wwan: add Telit LE910C1-EUX composition 2020-06-10 20:24:54 +02:00
vmxnet3 net: vmxnet3: fix possible buffer overflow caused by bad DMA value in vmxnet3_get_rss() 2020-06-22 09:30:57 +02:00
wan wan: ixp4xx_hss: fix compile-testing on 64-bit 2020-02-24 08:36:46 +01:00
wimax wimax/i2400m: Fix potential urb refcnt leak 2020-05-10 10:31:26 +02:00
wireless b43_legacy: Fix connection problem with WPA3 2020-06-22 09:31:19 +02:00
xen-netback
dummy.c
eql.c
geneve.c geneve: use the correct nlattr array in NL_SET_ERR_MSG_ATTR 2020-04-29 16:33:11 +02:00
gtp.c gtp: set NLM_F_MULTI flag in gtp_genl_dump_pdp() 2020-05-27 17:46:33 +02:00
ifb.c net: Fix CONFIG_NET_CLS_ACT=n and CONFIG_NFT_FWD_NETDEV={y, m} build 2020-04-01 11:02:18 +02:00
Kconfig net: Fix CONFIG_NET_CLS_ACT=n and CONFIG_NFT_FWD_NETDEV={y, m} build 2020-04-01 11:02:18 +02:00
LICENSE.SRC
loopback.c
macsec.c net: macsec: preserve ingress frame ordering 2020-05-14 07:58:21 +02:00
macvlan.c macvlan: Skip loopback packets in RX handler 2020-06-22 09:31:09 +02:00
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c net_failover: fixed rollback in net_failover_open() 2020-06-17 16:40:19 +02:00
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c
tun.c tun: correct header offsets in napi frags mode 2020-06-17 16:40:20 +02:00
veth.c veth: Adjust hard_start offset on redirect XDP frames 2020-06-22 09:31:06 +02:00
virtio_net.c virtio_net: fix lockdep warning on 32 bit 2020-05-20 08:20:10 +02:00
vrf.c vrf: Check skb for XFRM_TRANSFORMED flag 2020-04-29 16:33:11 +02:00
vsockmon.c
vxlan.c vxlan: Avoid infinite loop when suppressing NS messages with invalid options 2020-06-17 16:40:20 +02:00
xen-netfront.c