[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1a68f6d5-6541-4b04-8628-397001cb1e55@kernel.org>
Date: Wed, 21 Jan 2026 11:20:53 +0100
From: Hans de Goede <hansg@...nel.org>
To: Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
"Borah, Chaitanya Kumar" <chaitanya.kumar.borah@...el.com>
Cc: "Kurmi, Suresh Kumar" <suresh.kumar.kurmi@...el.com>,
"Saarinen, Jani" <jani.saarinen@...el.com>,
"intel-gfx@...ts.freedesktop.org" <intel-gfx@...ts.freedesktop.org>,
"intel-xe@...ts.freedesktop.org" <intel-xe@...ts.freedesktop.org>,
linux-kernel@...r.kernel.org, linux-rt-devel@...ts.linux.dev,
sfr@...b.auug.org.au, ilpo.jarvinen@...ux.intel.com,
regressions@...mhuis.info
Subject: Re: REGRESSION on linux-next (next-20260115)
Hi,
On 21-Jan-26 10:01, Sebastian Andrzej Siewior wrote:
> On 2026-01-21 13:59:38 [+0530], Borah, Chaitanya Kumar wrote:
>>
>> Looks like it.
>> 9: 1 0 IO-APIC 9-fasteoi acpi, INT0002
>
> Does the following help?
>
> diff --git a/drivers/platform/x86/intel/int0002_vgpio.c b/drivers/platform/x86/intel/int0002_vgpio.c
> index 6f5629dc3f8db..562e880256436 100644
> --- a/drivers/platform/x86/intel/int0002_vgpio.c
> +++ b/drivers/platform/x86/intel/int0002_vgpio.c
> @@ -206,8 +206,8 @@ static int int0002_probe(struct platform_device *pdev)
> * FIXME: augment this if we managed to pull handling of shared
> * IRQs into gpiolib.
> */
> - ret = devm_request_irq(dev, irq, int0002_irq,
> - IRQF_ONESHOT | IRQF_SHARED, "INT0002", chip);
> + ret = devm_request_irq(dev, irq, int0002_irq, IRQF_SHARED, "INT0002",
> + chip);
> if (ret) {
> dev_err(dev, "Error requesting IRQ %d: %d\n", irq, ret);
> return ret;
> diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
> index 266f2b39213a0..b2bb878abd113 100644
> --- a/include/linux/interrupt.h
> +++ b/include/linux/interrupt.h
> @@ -228,7 +228,7 @@ static inline int __must_check
> devm_request_irq(struct device *dev, unsigned int irq, irq_handler_t handler,
> unsigned long irqflags, const char *devname, void *dev_id)
> {
> - return devm_request_threaded_irq(dev, irq, handler, NULL, irqflags,
> + return devm_request_threaded_irq(dev, irq, handler, NULL, irqflags | IRQF_COND_ONESHOT,
> devname, dev_id);
> }
>
> My guess would be that the int0002_vgpio.c results in a warning without
> requesting the interrupt while the interrupt.h change should fix it and
> the warning should be gone.
Right, so as the commit message of commit 8f812373d195 ("platform/x86: intel:
int0002_vgpio: Pass IRQF_ONESHOT to request_irq()") explains
the int0002_vgpio driver *must* use the same flags to request
the IRQ as the ACPI core does, which is why it passes IRQF_ONESHOT
even though it does not have a threaded handler.
This worked fine until commit aef30c8d569c ("genirq: Warn about using
IRQF_ONESHOT without a threaded handler") as Chaitanya's bisect
pointed out.
Sebastian as I agree that switching to IRQF_COND_ONESHOT on
the int0002_vgpio.c side is a good way to fix this.
But If I'm reading your proposed changes correct then your suggestion
is to drop IRQF_ONESHOT from int0002_vgpio.c and then instead of
replacing it with IRQF_COND_ONESHOT you want to always pass
IRQF_COND_ONESHOT when using the non-threaded request_irq functions?
I'm not objecting against this, just making sure I understand
correctly.
Note in that case you should also add this to the non devm_
prefixed version.
Regards,
Hans
Powered by blists - more mailing lists