Skip to content
/ linux Public

Commit af51e8d

Browse files
Sebastian Andrzej SiewiorSasha Levin
authored andcommitted
iio: Use IRQF_NO_THREAD
[ Upstream commit 04d390a ] The interrupt handler iio_trigger_generic_data_rdy_poll() will invoke other interrupt handler and this supposed to happen from within the hardirq. Use IRQF_NO_THREAD to forbid forced-threading. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 12cb0a1 commit af51e8d

File tree

4 files changed

+8
-9
lines changed

4 files changed

+8
-9
lines changed

drivers/iio/accel/bma180.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -986,8 +986,9 @@ static int bma180_probe(struct i2c_client *client)
986986
}
987987

988988
ret = devm_request_irq(dev, client->irq,
989-
iio_trigger_generic_data_rdy_poll, IRQF_TRIGGER_RISING,
990-
"bma180_event", data->trig);
989+
iio_trigger_generic_data_rdy_poll,
990+
IRQF_TRIGGER_RISING | IRQF_NO_THREAD,
991+
"bma180_event", data->trig);
991992
if (ret) {
992993
dev_err(dev, "unable to request IRQ\n");
993994
goto err_trigger_free;

drivers/iio/adc/ad7766.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ static int ad7766_probe(struct spi_device *spi)
261261
* don't enable the interrupt to avoid extra load on the system
262262
*/
263263
ret = devm_request_irq(&spi->dev, spi->irq, ad7766_irq,
264-
IRQF_TRIGGER_FALLING | IRQF_NO_AUTOEN,
264+
IRQF_TRIGGER_FALLING | IRQF_NO_AUTOEN | IRQF_NO_THREAD,
265265
dev_name(&spi->dev),
266266
ad7766->trig);
267267
if (ret < 0)

drivers/iio/gyro/itg3200_buffer.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,9 @@ int itg3200_probe_trigger(struct iio_dev *indio_dev)
118118
if (!st->trig)
119119
return -ENOMEM;
120120

121-
ret = request_irq(st->i2c->irq,
122-
&iio_trigger_generic_data_rdy_poll,
123-
IRQF_TRIGGER_RISING,
124-
"itg3200_data_rdy",
125-
st->trig);
121+
ret = request_irq(st->i2c->irq, &iio_trigger_generic_data_rdy_poll,
122+
IRQF_TRIGGER_RISING | IRQF_NO_THREAD,
123+
"itg3200_data_rdy", st->trig);
126124
if (ret)
127125
goto error_free_trig;
128126

drivers/iio/light/si1145.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1248,7 +1248,7 @@ static int si1145_probe_trigger(struct iio_dev *indio_dev)
12481248

12491249
ret = devm_request_irq(&client->dev, client->irq,
12501250
iio_trigger_generic_data_rdy_poll,
1251-
IRQF_TRIGGER_FALLING,
1251+
IRQF_TRIGGER_FALLING | IRQF_NO_THREAD,
12521252
"si1145_irq",
12531253
trig);
12541254
if (ret < 0) {

0 commit comments

Comments
 (0)