[PATCH] arm64: use cpu_online_mask when using forced irq_set_affinity
Catalin Marinas
catalin.marinas at arm.com
Mon May 12 08:30:42 PDT 2014
On Fri, May 09, 2014 at 05:37:44PM +0100, Sudeep Holla wrote:
> From: Sudeep Holla <sudeep.holla at arm.com>
>
> Commit 01f8fa4f01d8("genirq: Allow forcing cpu affinity of interrupts")
> enabled the forced irq_set_affinity which previously refused to route an
> interrupt to an offline cpu.
>
> Commit ffde1de64012("irqchip: Gic: Support forced affinity setting")
> implements this force logic and disables the cpu online check for GIC
> interrupt controller.
>
> When __cpu_disable calls migrate_irqs, it disables the current cpu in
> cpu_online_mask and uses forced irq_set_affinity to migrate the IRQs
> away from the cpu but passes affinity mask with the cpu being offlined
> also included in it.
>
> When calling irq_set_affinity with force == true in a cpu hotplug path,
> the caller must ensure that the cpu being offlined is not present in the
> affinity mask or it may be selected as the target CPU, leading to the
> interrupt not being migrated.
>
> This patch uses cpu_online_mask when using forced irq_set_affinity so
> that the IRQs are properly migrated away.
>
> Signed-off-by: Sudeep Holla <sudeep.holla at arm.com>
> Acked-by: Mark Rutland <mark.rutland at arm.com>
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Will Deacon <will.deacon at arm.com>
Applied, thanks.
--
Catalin
More information about the linux-arm-kernel
mailing list