[PATCH 1/3] powerpc/xive: Don't call cpu_online() on an invalid CPU number
Benjamin Herrenschmidt
benh at kernel.crashing.org
Mon Apr 10 16:23:19 AEST 2017
If the interrupt didn't have a selected target yet, we could
call cpu_online() and do other cpumask tests with cpu #-1 which
would result in random outcomes.
Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
---
arch/powerpc/sysdev/xive/common.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/sysdev/xive/common.c b/arch/powerpc/sysdev/xive/common.c
index 006a53e..dbbe446 100644
--- a/arch/powerpc/sysdev/xive/common.c
+++ b/arch/powerpc/sysdev/xive/common.c
@@ -662,7 +662,8 @@ static int xive_irq_set_affinity(struct irq_data *d,
* If existing target is already in the new mask, and is
* online then do nothing.
*/
- if (cpu_online(xd->target) &&
+ if (xd->target != XIVE_INVALID_TARGET &&
+ cpu_online(xd->target) &&
cpumask_test_cpu(xd->target, cpumask))
return IRQ_SET_MASK_OK;
--
2.9.3
More information about the Linuxppc-dev
mailing list