2012-10-10 05:42:04

by Mike Qiu

[permalink] [raw]
Subject: Re: [PATCH] No need to call irq_domain_legacy_revmap() for twice

Any comments?
Thanks
在 2012-09-24一的 17:37 +0800,Mike Qiu写道:
> Function irq_create_mapping() calls irq_find_mapping(). The later
> function has checked if the indicated IRQ domain has hw IRQ mapped to
> virtual IRQ through legacy mode or not and return the value of the
> legacy irq number by call irq_domain_legacy_revmap(). We needn't
> to call irq_domain_legacy_revmap() to do same check in
> irq_create_mapping() again.
>
> The patch removes the duplicate call.
>
> Signed-off-by: Mike Qiu <[email protected]>
> ---
> kernel/irq/irqdomain.c | 7 +++++--
> 1 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
> index 49a7772..286d672 100644
> --- a/kernel/irq/irqdomain.c
> +++ b/kernel/irq/irqdomain.c
> @@ -547,9 +547,12 @@ unsigned int irq_create_mapping(struct irq_domain *domain,
> return virq;
> }
>
> - /* Get a virtual interrupt number */
> + /*
> + * For IRQ domain with type of IRQ_DOMAIN_MAP_LEGACY, we needn't
> + * create the IRQ mapping for non-existing one, so just return 0.
> + */
> if (domain->revmap_type == IRQ_DOMAIN_MAP_LEGACY)
> - return irq_domain_legacy_revmap(domain, hwirq);
> + return 0;
>
> /* Allocate a virtual interrupt number */
> hint = hwirq % nr_irqs;