From: Felix Fietkau Date: Tue, 14 Nov 2017 10:06:41 +0000 (+0100) Subject: mvebu: backport a kernel irq fix for setting IRQ affinity X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=31691f9649b096eac387137de2dbf07f767508f7;p=openwrt%2Fstaging%2Fadrian.git mvebu: backport a kernel irq fix for setting IRQ affinity The IRQ controller can only set the affinity to a single CPU. Update the mask in the controller data. Suggested-by: Sebastian Gottschall Signed-off-by: Felix Fietkau --- diff --git a/target/linux/mvebu/patches-4.9/130-irqchip-armada-xp-backport.patch b/target/linux/mvebu/patches-4.9/130-irqchip-armada-xp-backport.patch new file mode 100644 index 0000000000..14cbb7beb5 --- /dev/null +++ b/target/linux/mvebu/patches-4.9/130-irqchip-armada-xp-backport.patch @@ -0,0 +1,17 @@ +Backport a change that updates the effective affinity mask. The Armada IRQ +controller only supports setting the affinity to a single CPU, and the IRQ +subsystem needs to know about that. + +Signed-off-by: Felix Fietkau +--- +--- a/drivers/irqchip/irq-armada-370-xp.c ++++ b/drivers/irqchip/irq-armada-370-xp.c +@@ -251,6 +251,8 @@ static int armada_xp_set_affinity(struct + writel(reg, main_int_base + ARMADA_370_XP_INT_SOURCE_CTL(hwirq)); + raw_spin_unlock(&irq_controller_lock); + ++ cpumask_copy(irq_data_get_affinity_mask(d), cpumask_of(cpu)); ++ + return IRQ_SET_MASK_OK; + } + #endif