Re: [PATCH v4] MIPS: Replace setup_irq() by request_irq()

From: Guenter Roeck
Date: Fri Mar 13 2020 - 12:47:58 EST


On Thu, Mar 05, 2020 at 05:27:53PM +0530, afzal mohammed wrote:
> request_irq() is preferred over setup_irq(). Invocations of setup_irq()
> occur after memory allocators are ready.
>
> Per tglx[1], setup_irq() existed in olden days when allocators were not
> ready by the time early interrupts were initialized.
>
> Hence replace setup_irq() by request_irq().
>
> remove_irq() has been replaced by free_irq() as well.
>
> There were build error's during previous version, couple of which was
> reported by kbuild test robot <lkp@xxxxxxxxx> of which one was reported
> by Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx> as well. There were a
> few more issues including build errors, those also have been fixed.
>
> [1] https://lkml.kernel.org/r/alpine.DEB.2.20.1710191609480.1971@nanos
>
> Signed-off-by: afzal mohammed <afzal.mohd.ma@xxxxxxxxx>

This patch causes all my mips qemu emulations to hang during boot. This affects
all mips, mips64, mipsel, and mipsel64 emulations.

Reverting this patch fixes the problem.

Example log:

...
Failed to request irq 23 (timer)
clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112584971 ns
sched_clock: 32 bits at 100MHz, resolution 9ns, wraps every 21474814971ns
Console: colour dummy device 80x25
printk: console [tty0] enabled
printk: bootconsole [uart8250] disabled

[ silence ]

Bisect log attached.

Guenter

---
# bad: [2e602db729948ce577bf07e2b113f2aa806b62c7] Add linux-next specific files for 20200313
# good: [2c523b344dfa65a3738e7039832044aa133c75fb] Linux 5.6-rc5
git bisect start 'HEAD' 'v5.6-rc5'
# bad: [acfda12b3a9b7b8d8cb4ff5f6ff0e48f688e254c] Merge remote-tracking branch 'spi-nor/spi-nor/next'
git bisect bad acfda12b3a9b7b8d8cb4ff5f6ff0e48f688e254c
# bad: [bfd143114215b2c553277ee8ae4a8b8a6201de2e] Merge remote-tracking branch 'pstore/for-next/pstore'
git bisect bad bfd143114215b2c553277ee8ae4a8b8a6201de2e
# good: [9e771e47962b731c28d1b0a12967f711bf5cc281] Merge remote-tracking branch 'scmi/for-linux-next'
git bisect good 9e771e47962b731c28d1b0a12967f711bf5cc281
# bad: [cee36340e05bf662d19cb845708fa881369ed583] Merge remote-tracking branch 'xtensa/xtensa-for-next'
git bisect bad cee36340e05bf662d19cb845708fa881369ed583
# bad: [95c7851a03071bd2374b84b4f0079b3dcae30614] Merge remote-tracking branch 'nds32/next'
git bisect bad 95c7851a03071bd2374b84b4f0079b3dcae30614
# good: [43a3834a7d0fbb9116649185ff0926968cc553d5] Merge remote-tracking branch 'tegra/for-next'
git bisect good 43a3834a7d0fbb9116649185ff0926968cc553d5
# good: [8fae22fc750017fdf998ec3aa1315741fd3de857] Merge remote-tracking branch 'h8300/h8300-next'
git bisect good 8fae22fc750017fdf998ec3aa1315741fd3de857
# good: [e798861fd7b297370a8dd7b8dad2e139c1d08446] Merge remote-tracking branch 'm68knommu/for-next'
git bisect good e798861fd7b297370a8dd7b8dad2e139c1d08446
# bad: [ac8fd122e070ce0e60c608d4f085f7af77290844] MIPS: Replace setup_irq() by request_irq()
git bisect bad ac8fd122e070ce0e60c608d4f085f7af77290844
# good: [f6541f347bba6edbcbb1c930f802bb80b0c56468] MIPS: configs: Cleanup old Kconfig options
git bisect good f6541f347bba6edbcbb1c930f802bb80b0c56468
# good: [e5096625bc6bd9e3a0d5f7f9d7ecebda0383c7f5] MIPS: pic32mzda: Drop pointless static qualifier
git bisect good e5096625bc6bd9e3a0d5f7f9d7ecebda0383c7f5
# good: [172a37e9d011510aee37f62cc5ac4e53e49d17bb] arch/mips: change duplicated word in NUMA help text
git bisect good 172a37e9d011510aee37f62cc5ac4e53e49d17bb
# good: [792a402c2840054533ef56279c212ef6da87d811] MIPS: OCTEON: irq: Fix potential NULL pointer dereference
git bisect good 792a402c2840054533ef56279c212ef6da87d811
# first bad commit: [ac8fd122e070ce0e60c608d4f085f7af77290844] MIPS: Replace setup_irq() by request_irq()