From: Pavel Andrianov <andria...@ispras.ru> Date: Tue, 16 Aug 2016 16:39:06 +0300
> smc_reset may be executed in parallel with timer function media_check. > To avoid data race in smc_set_xcvr a spinlock was added. > > Found by Linux Driver Verification project (linuxtesting.org). > > Signed-off-by: Pavel Andrianov <andria...@ispras.ru> This is not sufficient. You have to block basically the entire function, because both smc_reset and media_check program the bank selection so could corrupt eachother's register accesses.