[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <91aafb3174ca943e240dd8164f27080eab085e29.camel@gmail.com>
Date: Wed, 28 Jan 2026 11:40:56 +0000
From: Nuno Sá <noname.nuno@...il.com>
To: Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
linux-kernel@...r.kernel.org
Cc: linux-rt-devel@...ts.linux.dev, Thomas Gleixner <tglx@...nel.org>,
Jonathan Cameron
<jic23@...nel.org>, David Lechner <dlechner@...libre.com>, Nuno
Sá
<nuno.sa@...log.com>, Andy Shevchenko <andy@...nel.org>,
linux-iio@...r.kernel.org
Subject: Re: [PATCH 20/21] iio: magnetometer: Remove IRQF_ONESHOT
On Fri, 2026-01-23 at 12:37 +0100, Sebastian Andrzej Siewior wrote:
> Passing IRQF_ONESHOT ensures that the interrupt source is masked until
> the secondary (threaded) handler is done. If only a primary handler is
> used then the flag makes no sense because the interrupt can not fire
> (again) while its handler is running.
> The flag also disallows force-threading of the primary handler and the
> irq-core will warn about this.
> The force-threading functionality is required on PREEMPT_RT because the
> handler is using locks with can sleep on PREEMPT_RT.
>
> Remove IRQF_ONESHOT from irqflags.
>
> Cc: Jonathan Cameron <jic23@...nel.org>
> Cc: David Lechner <dlechner@...libre.com>
> Cc: "Nuno Sá" <nuno.sa@...log.com>
> Cc: Andy Shevchenko <andy@...nel.org>
> Cc: linux-iio@...r.kernel.org
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
> ---
Reviewed-by: Nuno Sá <nuno.sa@...log.com>
> drivers/iio/magnetometer/ak8975.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/ak8975.c
> index 3fd0171e5d69b..d30315ad85ded 100644
> --- a/drivers/iio/magnetometer/ak8975.c
> +++ b/drivers/iio/magnetometer/ak8975.c
> @@ -581,7 +581,7 @@ static int ak8975_setup_irq(struct ak8975_data *data)
> irq = gpiod_to_irq(data->eoc_gpiod);
>
> rc = devm_request_irq(&client->dev, irq, ak8975_irq_handler,
> - IRQF_TRIGGER_RISING | IRQF_ONESHOT,
> + IRQF_TRIGGER_RISING,
> dev_name(&client->dev), data);
> if (rc < 0) {
> dev_err(&client->dev, "irq %d request failed: %d\n", irq, rc);
Powered by blists - more mailing lists