On 18/06/2024 16:58, Mark Brown wrote:
On Mon, Jun 17, 2024 at 03:33:59PM +0100, Richard Fitzgerald wrote:
On 17/06/2024 15:04, Mark Brown wrote:
Have all architectures removed 0 as a valid IRQ?
From discussion threads we can find 0 might still used on x86 for a legacy device.
Some of the arm platforms were also an issue in the past, though possibly they've all been modernised by now. Don't know about other older architectures.
But the conversations we can find on this don't seem to exclude passing a negative error number, just that 0 can normally be assumed invalid.
Yes, the question was specifically about the assumption that 0 is invalid. The status of 0 is kind of a mess, people keep assuming that it isn't valid and it just depends if users of platforms which try to use 0 trip up over it. Sometimes people work on trying to eliminate uses of 0 but it tends to get you into older code nobody wants to touch.
The kerneldoc for SPI says:
- @irq: Negative, or the number passed to request_irq() to receive
- interrupts from this device.
Which includes the 0 as valid thing...
The statement of truth from Linus Torvalds et al. seems to be that 0 is invalid except on x86. And on x86 it is specifically reserved for a legacy timer IRQ so it can't be anything else.