[linux-yocto] [PATCH 122/161] kernel/irq/manage.c: Fix irq_set_affinity to allow use with buslocks
Cristian Bercaru
cristian.bercaru at windriver.com
Thu May 21 12:21:44 PDT 2015
From: David Mercado <david.mercado at 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.mercado at 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 a45a2c9..3774b90 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -182,16 +182,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
More information about the linux-yocto
mailing list