From 31691f9649b096eac387137de2dbf07f767508f7 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 14 Nov 2017 11:06:41 +0100 Subject: [PATCH] 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 --- .../130-irqchip-armada-xp-backport.patch | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 target/linux/mvebu/patches-4.9/130-irqchip-armada-xp-backport.patch 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 00000000000..14cbb7beb52 --- /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