Re: [PATCH] sh: Avoid using IRQ0 on SH3 and SH4

From: Guenter Roeck
Date: Thu Jul 06 2023 - 11:52:13 EST


On 7/6/23 07:01, John Paul Adrian Glaubitz wrote:
Hi Guenter!

On Thu, 2023-07-06 at 06:57 -0700, Guenter Roeck wrote:
On Thu, Jun 01, 2023 at 11:22:17PM +0300, Sergey Shtylyov wrote:
IRQ0 is no longer returned by platform_get_irq() and its ilk -- they now
return -EINVAL instead. However, the kernel code supporting SH3/4-based
SoCs still maps the IRQ #s starting at 0 -- modify that code to start the
IRQ #s from 16 instead.

The patch should mostly affect the AP-SH4A-3A/AP-SH4AD-0A boards as they
indeed are using IRQ0 for the SMSC911x compatible Ethernet chip.


Unfortunately it also affects all sh4 emulations in qemu, and results in
boot stalls with those. There isn't a relevant log to attach because there
is no error message - booting just stalls until the emulation is aborted.

Reverting this patch fixes the problem.

Bisect log is attached for reference. Note that bisect requires applying
commit 7497840d462c ("sh: Provide unxlate_dev_mem_ptr() in asm/io.h"),
which is also the reason why the problem was not observed earlier since
it was hiding behind a build failure.

Interesting. My naive understanding was that IRQ0 is no longer usable in the
kernel as Sergey claimed. Was that not correct?


I have no idea. All I know is that all my sh4 qemu emulations hang during boot
after this patch is applied. I don't have CONFIG_SMSC911X enabled in my builds.
I also don't see any error messages from failed IRQ requests after reverting
this patch.

Guenter