of: irq: Fix interrupt-map entry matching
authorTomasz Figa <t.figa@samsung.com>
Tue, 5 Nov 2013 15:21:18 +0000 (16:21 +0100)
committerRob Herring <rob.herring@calxeda.com>
Thu, 7 Nov 2013 16:37:59 +0000 (10:37 -0600)
This patch fixes interrupt-map entry matching code to properly match all
specifier cells with interrupt map entries.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Tested-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
drivers/of/irq.c

index d385bb8247723f9444673ab6a850f8e0915a191f..786b0b47fae46802503ecbecee5719887830c44c 100644 (file)
@@ -199,7 +199,7 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq)
                        /* Compare specifiers */
                        match = 1;
                        for (i = 0; i < (addrsize + intsize); i++, imaplen--)
-                               match = !((match_array[i] ^ *imap++) & imask[i]);
+                               match &= !((match_array[i] ^ *imap++) & imask[i]);
 
                        pr_debug(" -> match=%d (imaplen=%d)\n", match, imaplen);