diff options
author | Vincenzo Maffione <[email protected]> | 2017-09-16 18:00:00 +0200 |
---|---|---|
committer | Jeff Kirsher <[email protected]> | 2017-10-26 07:42:57 -0700 |
commit | 44c445c3d1b4eacff23141fa7977c3b2ec3a45c9 (patch) | |
tree | 27f2d4565203b13f07fb9bd69615c179fed88008 /tools/perf/scripts/python/call-graph-from-sql.py | |
parent | 78e0ea6791d7baafb8a0ca82b1bd0c7b3453c919 (diff) |
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 <[email protected]>
Tested-by: Aaron Brown <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/call-graph-from-sql.py')
0 files changed, 0 insertions, 0 deletions