irqchip/gic-v3-its: Don't bind LPI to unavailable NUMA node
authorYang Yingliang <[email protected]>
Fri, 22 Jun 2018 09:52:51 +0000 (10:52 +0100)
committerThomas Gleixner <[email protected]>
Fri, 22 Jun 2018 12:22:01 +0000 (14:22 +0200)
commitc1797b11a09c8323c92b074fd48b89a936c991d0
treef4ed347b92bdaf64eecf8c7fb7c8d061cb002205
parentcbaf45a6be497c272e80500e4fd9bccdf20d5050
irqchip/gic-v3-its: Don't bind LPI to unavailable NUMA node

On a NUMA system, if an ITS is local to an offline node, the ITS driver may
pick an offline CPU to bind the LPI.  In this case, pick an online CPU (and
the first one will do).

But on some systems, binding an LPI to non-local node CPU may cause
deadlock (see Cavium erratum 23144).  In this case, just fail the activate
and return an error code.

Signed-off-by: Yang Yingliang <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Cc: Jason Cooper <[email protected]>
Cc: Alexandre Belloni <[email protected]>
Cc: Sumit Garg <[email protected]>
Cc: [email protected]
Link: https://lkml.kernel.org/r/[email protected]
drivers/irqchip/irq-gic-v3-its.c