ARM: CPU hotplug: ensure we migrate all IRQs off a downed CPU
authorRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 21 Jul 2011 14:14:21 +0000 (15:14 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 21 Jul 2011 14:14:21 +0000 (15:14 +0100)
commit78359cb86b8c4c8946f6732eac2757fa5e1d4de4
tree750a896b26ca01b98e8106bef9f2b8a03ac2d32e
parentca15af19ac07908c8ca386f6d944a18aa343b868
ARM: CPU hotplug: ensure we migrate all IRQs off a downed CPU

Our selection of interrupts to consider for IRQ migration is sub-
standard.  We were potentially including per-CPU interrupts in our
migration strategy, but omitting chained interrupts.  This caused
some interrupts to remain on a downed CPU.

We were also trying to migrate interrupts which were not migratable,
resulting in an OOPS.

Instead, iterate over all interrupts, skipping per-CPU interrupts
or interrupts whose affinity does not include the downed CPU, and
attempt to set the affinity for every one else if their chip
implements irq_set_affinity().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/irq.c