genirq/msi: Shutdown managed interrupts with unsatifiable affinities
authorMarc Zyngier <maz@kernel.org>
Tue, 5 Apr 2022 18:50:38 +0000 (19:50 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 10 Apr 2022 19:06:30 +0000 (21:06 +0200)
commitd802057c7c553ad426520a053da9f9fe08e2c35a
treeee982e60c08510f4283b870fa7f4c6b24e4d71fb
parent3123109284176b1532874591f7c81f3837bbdc17
genirq/msi: Shutdown managed interrupts with unsatifiable affinities

When booting with maxcpus=<small number>, interrupt controllers
such as the GICv3 ITS may not be able to satisfy the affinity of
some managed interrupts, as some of the HW resources are simply
not available.

The same thing happens when loading a driver using managed interrupts
while CPUs are offline.

In order to deal with this, do not try to activate such interrupt
if there is no online CPU capable of handling it. Instead, place
it in shutdown state. Once a capable CPU shows up, it will be
activated.

Reported-by: John Garry <john.garry@huawei.com>
Reported-by: David Decotigny <ddecotig@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: John Garry <john.garry@huawei.com>
Link: https://lore.kernel.org/r/20220405185040.206297-2-maz@kernel.org
kernel/irq/msi.c