2018-10-03 13:04:25

by Jia-Ju Bai

[permalink] [raw]
Subject: [REPORT] net: e100: possible data races

CPU0:
e100_set_multicast_list
e100_exec_cb
line 854: spin_lock_irqsave()
line 866: e100_configure (function pointer)
line 1114: nic->flags [READ]
line 1123: nic->flags [READ]

CPU1:
e100_watchdog
line 1731: nic->flags [WRITE]
line 1733: nic->flags [WRITE]

As for nic->flags, the WRITE operations in CPU0 are 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