[linux-yocto] [PATCH 33/57] kernel/irq/manage.c: Fix irq_set_affinity to allow use with buslocks
Bruce Ashfield
bruce.ashfield at windriver.com
Thu Mar 20 01:39:50 PDT 2014
On 14-03-18 12:56 AM, Charlie Paul wrote:
> 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.
This change looks like it should be after patch 35/57, which introduces
the slow bus.
Also in this commit log, we describe the non-working state .. is it a
hang ? A trap ? A lock message ?
Bruce
>
> 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 dc4db32..5f14a0f 100644
> --- a/kernel/irq/manage.c
> +++ b/kernel/irq/manage.c
> @@ -195,16 +195,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;
> }
>
>
More information about the linux-yocto
mailing list