[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <e11a245e-95ed-eff0-05a8-264f7598672f@ispras.ru>
Date: Thu, 18 Mar 2021 11:07:10 +0300
From: Pavel Andrianov <andrianov@...ras.ru>
To: Jonathan Cameron <jic23@...nel.org>
Cc: Lars-Peter Clausen <lars@...afoo.de>, ldv-project@...uxtesting.org,
Peter Meerwald-Stadler <pmeerw@...erw.net>,
Alexandru Ardelean <alexandru.ardelean@...log.com>,
linux-iio@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: A potential data race in drivers/iio/adc/berlin2-adc.ko
Hi,
berlin2_adc_probe [1] registers two interrupt handlers: berlin2_adc_irq [2]
and berlin2_adc_tsen_irq [3]. The interrupt handlers operate with the
same data, for example, modify
priv->data with different masks:
priv->data &= BERLIN2_SM_ADC_MASK;
and
priv->data &= BERLIN2_SM_TSEN_MASK;
If the two interrupt handlers are executed simultaneously, a potential
data race takes place. So, the question is if the situation is possible.
For example, in the case of the handlers are executed on different CPU
cores.
Best regards,
Pavel
[1]
https://elixir.bootlin.com/linux/latest/source/drivers/iio/adc/berlin2-adc.c#L283
[2]
https://elixir.bootlin.com/linux/latest/source/drivers/iio/adc/berlin2-adc.c#L239
[3]
https://elixir.bootlin.com/linux/latest/source/drivers/iio/adc/berlin2-adc.c#L259
Powered by blists - more mailing lists