There exists potential resource leak in the error path, fix it.

Fixes: 818e915fbac5 ("irqchip: Add Loongson HyperTransport Vector support")
Signed-off-by: Tiezhu Yang <yangtie...@loongson.cn>
---
 drivers/irqchip/irq-loongson-htvec.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-loongson-htvec.c 
b/drivers/irqchip/irq-loongson-htvec.c
index 1ece933..b36d403 100644
--- a/drivers/irqchip/irq-loongson-htvec.c
+++ b/drivers/irqchip/irq-loongson-htvec.c
@@ -192,7 +192,7 @@ static int htvec_of_init(struct device_node *node,
        if (!priv->htvec_domain) {
                pr_err("Failed to create IRQ domain\n");
                err = -ENOMEM;
-               goto iounmap_base;
+               goto irq_dispose;
        }
 
        htvec_reset(priv);
@@ -203,6 +203,9 @@ static int htvec_of_init(struct device_node *node,
 
        return 0;
 
+irq_dispose:
+       for (; i > 0; i--)
+               irq_dispose_mapping(parent_irq[i - 1]);
 iounmap_base:
        iounmap(priv->base);
 free_priv:
-- 
2.1.0

Reply via email to