linux-stable/drivers/net
Vincenzo Maffione 44c445c3d1 e1000: fix race condition between e1000_down() and e1000_watchdog
This patch fixes a race condition that can result into the interface being
up and carrier on, but with transmits disabled in the hardware.
The bug may show up by repeatedly IFF_DOWN+IFF_UP the interface, which
allows e1000_watchdog() interleave with e1000_down().

    CPU x                           CPU y
    --------------------------------------------------------------------
    e1000_down():
        netif_carrier_off()
                                    e1000_watchdog():
                                        if (carrier == off) {
                                            netif_carrier_on();
                                            enable_hw_transmit();
                                        }
        disable_hw_transmit();
                                    e1000_watchdog():
                                        /* carrier on, do nothing */

Signed-off-by: Vincenzo Maffione <v.maffione@gmail.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-10-26 07:42:57 -07:00
..
appletalk
arcnet
bonding net: bonding: fix tlb_dynamic_lb default value 2017-09-12 20:58:12 -07:00
caif
can can: kvaser_usb: Ignore CMD_FLUSH_QUEUE_REPLY messages 2017-10-24 13:00:36 +02:00
cris
dsa net: dsa: mv88e6060: fix switch MAC address 2017-10-14 18:40:03 -07:00
ethernet e1000: fix race condition between e1000_down() and e1000_watchdog 2017-10-26 07:42:57 -07:00
fddi
fjes
hamradio
hippi
hyperv hv_netvsc: fix send buffer failure on MTU change 2017-09-21 15:17:16 -07:00
ieee802154
ipvlan
phy net: phy: Fix truncation of large IRQ numbers in phy_attached_print() 2017-09-21 20:35:17 -07:00
plip
ppp ppp: fix race in ppp device destruction 2017-10-06 10:16:34 -07:00
slip
team
usb cdc_ether: flag the Huawei ME906/ME909 as WWAN 2017-10-24 18:32:54 +09:00
vmxnet3
wan - For the randstruct plugin, enable automatic randomization of structures 2017-09-07 20:30:19 -07:00
wimax wimax/i2400m: Remove VLAIS 2017-10-10 12:35:05 -07:00
wireless iwlwifi: nvm: set the correct offsets to 3168 series 2017-10-06 13:59:44 +03:00
xen-netback xen-netfront, xen-netback: Use correct minimum MTU values 2017-10-16 16:00:44 -04:00
dummy.c
eql.c
geneve.c geneve: Fix function matching VNI and tunnel ID on big-endian 2017-10-21 02:50:42 +01:00
gtp.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c macsec: fix memory leaks when skb_to_sgvec fails 2017-10-11 14:07:20 -07:00
macvlan.c
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 tap: double-free in error path in tap_open() 2017-10-26 17:57:39 +09:00
tun.c tun: allow positive return values on dev_get_valid_name() call 2017-10-26 10:10:03 +09:00
veth.c
virtio_net.c
vrf.c net: vrf: avoid gcc-4.6 warning 2017-09-15 14:22:21 -07:00
vsockmon.c
vxlan.c
xen-netfront.c xen-netfront, xen-netback: Use correct minimum MTU values 2017-10-16 16:00:44 -04:00