mips: Validate online cpus in irq_set_affinity() callbacks
authorThomas Gleixner <tglx@linutronix.de>
Tue, 4 Mar 2014 20:43:39 +0000 (20:43 +0000)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 12 Mar 2014 12:07:40 +0000 (13:07 +0100)
commitd3575762b66303574d6403bf4345c4bf187e26ec
treed457d6ee0fc69b8e1898392dece144f0589a3bc0
parentf2f6087c783872808dbeb152da618c0b636b0c18
mips: Validate online cpus in irq_set_affinity() callbacks

The [user space] interface does not filter out offline cpus. It merily
guarantees that the mask contains at least one online cpu.

So the selector in the irq chip implementation needs to make sure to
pick only an online cpu because otherwise:

     Offline Core 1
     Set affinity to 0xe (is valid due to online mask 0xd)
     cpumask_first will pick core 1, which is offline

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Link: http://lkml.kernel.org/r/20140304203100.744800502@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/mips/sibyte/bcm1480/irq.c
arch/mips/sibyte/sb1250/irq.c