irqchip/irq-mvebu-sei: Move misplaced select() callback to SEI CP domain
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Thu, 21 Nov 2024 12:48:25 +0000 (12:48 +0000)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 26 Nov 2024 18:58:27 +0000 (19:58 +0100)
commit12aaf67584cf19dc84615b7aba272fe642c35b8b
treee0fd1ee4e50f8eda6b563dfccb584176e0fe4b28
parent7eef7e306d3c40a0c5b9ff6adc9b273cc894dbd5
irqchip/irq-mvebu-sei: Move misplaced select() callback to SEI CP domain

Commit fbdf14e90ce4 ("irqchip/irq-mvebu-sei: Switch to MSI parent")
introduced in v6.11-rc1 broke Mavell Armada platforms (and possibly others)
by incorrectly switching irq-mvebu-sei to MSI parent.

In the above commit, msi_parent_ops is set for the sei->cp_domain, but
rather than adding a .select method to mvebu_sei_cp_domain_ops (which is
associated with sei->cp_domain), it was added to mvebu_sei_domain_ops which
is associated with sei->sei_domain, which doesn't have any
msi_parent_ops. This makes the call to msi_lib_irq_domain_select() always
fail.

This bug manifests itself with the following kernel messages on Armada 8040
based systems:

 platform f21e0000.interrupt-controller:interrupt-controller@50: deferred probe pending: (reason unknown)
 platform f41e0000.interrupt-controller:interrupt-controller@50: deferred probe pending: (reason unknown)

Move the select callback to mvebu_sei_cp_domain_ops to cure it.

Fixes: fbdf14e90ce4 ("irqchip/irq-mvebu-sei: Switch to MSI parent")
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/all/E1tE6bh-004CmX-QU@rmk-PC.armlinux.org.uk
drivers/irqchip/irq-mvebu-sei.c