Messages in this thread Patch in this message | | | From | Mike Qiu <> | Subject | [PATCH] No need to call irq_domain_legacy_revmap() for twice | Date | Mon, 24 Sep 2012 17:37:55 +0800 |
| |
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 <qiudayu@linux.vnet.ibm.com> --- 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; -- 1.7.7.6
| |