On 8/4/24 11:36, Guenter Roeck wrote:
Hi,
On 7/31/24 03:03, Greg Kroah-Hartman wrote:
This is the start of the stable review cycle for the 6.10.3 release. There are 809 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Fri, 02 Aug 2024 09:47:47 +0000. Anything received after that time might be too late.
[ ... ]
Rafael J. Wysocki rafael.j.wysocki@intel.com genirq: Set IRQF_COND_ONESHOT in request_irq()
With this patch in v6.10.3, all my parisc64 qemu tests get stuck with repeated error messages
[ 0.000000] ============================================================================= [ 0.000000] BUG kmem_cache_node (Not tainted): objects 21 > max 16 [ 0.000000] -----------------------------------------------------------------------------
This never stops until the emulation aborts.
Reverting this patch fixes the problem for me.
I noticed a similar problem in the mainline kernel but it is either spurious there or the problem has been fixed.
As a follow-up, the patch below (on top of v6.10.3) "fixes" the problem for me. I guess that suggests some kind of race condition.
Added Helge and the parisc mailing list to Cc:. Sorry, I forgot that earlier.
Guenter
--- diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index dd53298ef1a5..53a0f654ab56 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -8,6 +8,7 @@
#define pr_fmt(fmt) "genirq: " fmt
+#include <linux/delay.h> #include <linux/irq.h> #include <linux/kthread.h> #include <linux/module.h> @@ -2156,6 +2157,8 @@ int request_threaded_irq(unsigned int irq, irq_handler_t handler, struct irq_desc *desc; int retval;
+ udelay(1); + if (irq == IRQ_NOTCONNECTED) return -ENOTCONN;