On 17/03/16 04:01, Axel Lin wrote:
> Current code calls irq_domain_alloc_irqs_parent() in .alloc,
> so it should call irq_domain_free_irqs_parent() accordingly in .free.
> Fix it by switching to use irq_domain_free_irqs_common() instead.
> 
> Signed-off-by: Axel Lin <axel....@ingics.com>
> ---
>  drivers/gpio/gpio-xgene-sb.c | 15 +--------------
>  1 file changed, 1 insertion(+), 14 deletions(-)
> 
> diff --git a/drivers/gpio/gpio-xgene-sb.c b/drivers/gpio/gpio-xgene-sb.c
> index 31cbcb8..0332586 100644
> --- a/drivers/gpio/gpio-xgene-sb.c
> +++ b/drivers/gpio/gpio-xgene-sb.c
> @@ -216,23 +216,10 @@ static int xgene_gpio_sb_domain_alloc(struct irq_domain 
> *domain,
>                       &parent_fwspec);
>  }
>  
> -static void xgene_gpio_sb_domain_free(struct irq_domain *domain,
> -             unsigned int virq,
> -             unsigned int nr_irqs)
> -{
> -     struct irq_data *d;
> -     unsigned int i;
> -
> -     for (i = 0; i < nr_irqs; i++) {
> -             d = irq_domain_get_irq_data(domain, virq + i);
> -             irq_domain_reset_irq_data(d);
> -     }
> -}
> -
>  static const struct irq_domain_ops xgene_gpio_sb_domain_ops = {
>       .translate      = xgene_gpio_sb_domain_translate,
>       .alloc          = xgene_gpio_sb_domain_alloc,
> -     .free           = xgene_gpio_sb_domain_free,
> +     .free           = irq_domain_free_irqs_common,
>       .activate       = xgene_gpio_sb_domain_activate,
>       .deactivate     = xgene_gpio_sb_domain_deactivate,
>  };
> 

Ah, nice catch. For both patches:

Acked-by: Marc Zyngier <marc.zyng...@arm.com>

Thanks,

        M.
-- 
Jazz is not dead. It just smells funny...

Reply via email to