OSDN Git Service

irqdomain: Fix irq_create_direct_mapping() to test irq_domain type.
authorGrant Likely <grant.likely@secretlab.ca>
Mon, 4 Jun 2012 05:04:38 +0000 (22:04 -0700)
committerGrant Likely <grant.likely@secretlab.ca>
Wed, 11 Jul 2012 15:16:13 +0000 (16:16 +0100)
irq_create_direct_mapping can only be used with the NOMAP type.  Make
the function test to ensure it is passed the correct type of
irq_domain.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Rob Herring <rob.herring@calxeda.com>
kernel/irq/irqdomain.c

index f540bb1..c0e638b 100644 (file)
@@ -481,8 +481,8 @@ unsigned int irq_create_direct_mapping(struct irq_domain *domain)
        if (domain == NULL)
                domain = irq_default_domain;
 
-       BUG_ON(domain == NULL);
-       WARN_ON(domain->revmap_type != IRQ_DOMAIN_MAP_NOMAP);
+       if (WARN_ON(!domain || domain->revmap_type != IRQ_DOMAIN_MAP_NOMAP))
+               return 0;
 
        virq = irq_alloc_desc_from(1, of_node_to_nid(domain->of_node));
        if (!virq) {