Re: [PATCH v4] MIPS: Replace setup_irq() by request_irq()
From: afzal mohammed
Date: Wed Mar 11 2020 - 05:03:13 EST
Hi,
On Tue, Mar 10, 2020 at 10:31:26PM -0700, Nathan Chancellor wrote:
> This patch regresses booting malta_defconfig with both GCC and clang
> with this rootfs and QEMU 4.2.0:
On a quick debug, Diff at the end seems to fix the issue. i realize that
all the execution sequences that can alter the earlier statically
defined struct irqaction fields needs to be taken care carefully,let me
recheck the resolution here as well as other instances where this kind
of issue can happen. i will sent a proper patch later.
>
> https://github.com/ClangBuiltLinux/continuous-integration/blob/a85e3e44c2570847e22ad8f92f317c2b007c4517/images/mipsel/rootfs.cpio
>
> $ timeout 2m qemu-system-mipsel -machine malta -cpu 24Kf -initrd rootfs.cpio -kernel vmlinux -m 512m -display none -serial mon:stdio
>
> just hangs. I have not done further debugging past the initial bisect.
Thanks for the reproducer.
Regards
afzal
diff --git a/arch/mips/kernel/cevt-r4k.c b/arch/mips/kernel/cevt-r4k.c
index 64e917dfe6b2..d24e4f2985c3 100644
--- a/arch/mips/kernel/cevt-r4k.c
+++ b/arch/mips/kernel/cevt-r4k.c
@@ -252,7 +252,7 @@ unsigned int __weak get_c0_compare_int(void)
int r4k_clockevent_init(void)
{
- unsigned long flags = IRQF_PERCPU | IRQF_TIMER | IRQF_SHARED;
+ unsigned long flags = IRQF_PERCPU | IRQF_TIMER;
unsigned int cpu = smp_processor_id();
struct clock_event_device *cd;
unsigned int irq, min_delta;