From: David Mercado <david.merc...@windriver.com> Fix irq_set_affinity() to allow usage of buslocks with "slow bus" IRQ controllers, such as the LSI Axxia GIC.
Signed-off-by: David Mercado <david.merc...@windriver.com> --- kernel/irq/manage.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index c891fe3..4291484 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -180,16 +180,16 @@ int __irq_set_affinity_locked(struct irq_data *data, const struct cpumask *mask) */ int irq_set_affinity(unsigned int irq, const struct cpumask *mask) { - struct irq_desc *desc = irq_to_desc(irq); unsigned long flags; + struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, + IRQ_GET_DESC_CHECK_GLOBAL); int ret; if (!desc) return -EINVAL; - raw_spin_lock_irqsave(&desc->lock, flags); ret = __irq_set_affinity_locked(irq_desc_get_irq_data(desc), mask); - raw_spin_unlock_irqrestore(&desc->lock, flags); + irq_put_desc_busunlock(desc, flags); return ret; } -- 1.7.9.5 -- _______________________________________________ linux-yocto mailing list linux-yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/linux-yocto