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:
parent
d91494eedf
commit
31691f9649
1 changed files with 17 additions and 0 deletions
|
@ -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
|
Loading…
Reference in a new issue