A potential race in drivers/atm/eni.ko

From: Pavel Andrianov
Date: Mon Aug 08 2016 - 04:17:08 EST


Hi!

There is a potential race in drivers/atm/eni.ko.

In the interrupt handler eni_int the field eni_dev->events is masked (line 1519) with a spinlock protection. In eni_start eni_dev->events is initialized (line 1844), but it is done after interrupts are requested (line 1813). Thus, the interrupt may occur while initialization is not finishing and the new value of events will be lost. Moreover, the spinlock, which is used in the interrupt handler, is also initialized (line 1842) after request_irq (line 1813).

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