aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mvebu
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2017-11-14 11:06:41 +0100
committerFelix Fietkau <nbd@nbd.name>2017-11-15 18:49:12 +0100
commit31691f9649b096eac387137de2dbf07f767508f7 (patch)
tree194c2f0ee82c3be376e60f5685ec99cda4d9a064 /target/linux/mvebu
parentd91494eedf06ac6b31c1aa9f7172871b16af96c8 (diff)
downloadupstream-31691f9649b096eac387137de2dbf07f767508f7.tar.gz
upstream-31691f9649b096eac387137de2dbf07f767508f7.tar.bz2
upstream-31691f9649b096eac387137de2dbf07f767508f7.zip
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 <s.gottschall@dd-wrt.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'target/linux/mvebu')
-rw-r--r--target/linux/mvebu/patches-4.9/130-irqchip-armada-xp-backport.patch17
1 files changed, 17 insertions, 0 deletions
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 <nbd@nbd.name>
+---
+--- 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