[REPORT] net: e1000e: possible data races
From: Jia-Ju Bai
Date: Wed Oct 03 2018 - 09:18:48 EST
CPU0:
e1000e_get_stats64
line 5944: spin_lock()
e1000e_update_stats
line 4949: hw->mac.tx_packet_delta = er32(TPT); [WRITE]
CPU1:
e1000_watchdog_task
e1000e_update_adaptive
line 1762: mac->tx_packet_delta [READ]
line 1763: mac->tx_packet_delta [READ]
line 1776: mac->tx_packet_delta [READ]
As for mac->tx_packet_delta, the WRITE operation in CPU0 is performed
with holding a spinlock, but the READ operations in CPU1 are performed
without holding this spinlock, so there may exist data races.
These possible races are detected by a runtime testing.
I do not find a good way to fix these races, so I only report them.
Best wishes,
Jia-Ju Bai