Skip to contentSkip to conversation

irqchip: brcmstb-l2: fix error handling of irq_of_parse_and_map

PATCH In review Dmitry Torokhov 2 participants 2 messages Nov 14, 2014 – Nov 15, 2014

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 irqchip: brcmstb-l2: fix error handling of irq_of_parse_and_map

Return value of irq_of_parse_and_map() is unsigned int, with 0 indicating failure, so testing for negative result never works.

---

Not tested, found by casual code inspection.

 drivers/irqchip/irq-brcmstb-l2.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/irqchip/irq-brcmstb-l2.c +2 -2
index 4aa653a..313c2c6 100644
@@ -139,9 +139,9 @@ int __init brcmstb_l2_intc_of_init(struct device_node *np,
 	writel(0xffffffff, data->base + CPU_CLEAR);
 
 	data->parent_irq = irq_of_parse_and_map(np, 0);
-	if (data->parent_irq < 0) {
+	if (!data->parent_irq) {
 		pr_err("failed to find parent interrupt\n");
-		ret = data->parent_irq;
+		ret = -EINVAL;
 		goto out_unmap;
 	}
 
Signature · 5 lines
2.1.0.rc2.206.gedb03e5


-- 
Dmitry
Acked-by on v1 1/1
#1 lore raw

2014-11-14 14:16 GMT-08:00 Dmitry Torokhov <[email protected]>:

Quoted 4 lines

Return value of irq_of_parse_and_map() is unsigned int, with 0 indicating failure, so testing for negative result never works.

Quoted 29 lines

---

Not tested, found by casual code inspection.

 drivers/irqchip/irq-brcmstb-l2.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/irqchip/irq-brcmstb-l2.c +2 -3
index 4aa653a..313c2c6 100644
@@ -139,9 +139,9 @@ int __init brcmstb_l2_intc_of_init(struct device_node *np,
        writel(0xffffffff, data->base + CPU_CLEAR);
 
        data->parent_irq = irq_of_parse_and_map(np, 0);
-       if (data->parent_irq < 0) {
+       if (!data->parent_irq) {
                pr_err("failed to find parent interrupt\n");
-               ret = data->parent_irq;
+               ret = -EINVAL;
                goto out_unmap;
        }
 
--

2.1.0.rc2.206.gedb03e5

--
Dmitry

Signature · 1 line
Florian