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@xxxxxxxxx>
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;