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>
This commit is contained in:
Felix Fietkau 2017-11-14 11:06:41 +01:00
parent d91494eedf
commit 31691f9649

View file

@ -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