A potential data race in drivers/net/ethernet/smsc/smc91c92_cs.ko

From: Pavel Andrianov
Date: Fri Aug 12 2016 - 05:55:09 EST


Hi!

There is a potential data race in drivers/net/ethernet/smsc/smc91c92_cs.ko.
Regard two threads:

Thread 1 Thread 2
...
... ->smc_open
->smc_tx_timeout ->mod_timer
-> smc_reset ->media_check - timer function
-> smc_set_xcvr ->smc_set_xcvr

In this case the struct 'smc' is modified from two threads simultaneously. Likely, the first thread should acquire the same spinlock smc->lock as the second thread in media_check.

--
Pavel Andrianov
Linux Verification Center, ISPRAS
web: http://linuxtesting.org
e-mail: andrianov@xxxxxxxxx