]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mfd: mt6358-irq: Fix missing irq_domain_remove() in error path
authorHaotian Zhang <vulab@iscas.ac.cn>
Tue, 18 Nov 2025 12:14:27 +0000 (20:14 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Dec 2025 12:55:02 +0000 (13:55 +0100)
[ Upstream commit 384bd58bf7095e4c4c8fcdbcede316ef342c630c ]

If devm_request_threaded_irq() fails after irq_domain_add_linear()
succeeds in mt6358_irq_init(), the function returns without removing
the created IRQ domain, leading to a resource leak.

Call irq_domain_remove() in the error path after a successful
irq_domain_add_linear() to properly release the IRQ domain.

Fixes: 2b91c28f2abd ("mfd: Add support for the MediaTek MT6358 PMIC")
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
Link: https://patch.msgid.link/20251118121427.583-1-vulab@iscas.ac.cn
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mfd/mt6358-irq.c

index 49830b526ee880bf36fda79b6fe54c12ec3d74d6..10a0952615a17c41419b6863c75afe4ab6b2fda4 100644 (file)
@@ -286,6 +286,7 @@ int mt6358_irq_init(struct mt6397_chip *chip)
        if (ret) {
                dev_err(chip->dev, "Failed to register IRQ=%d, ret=%d\n",
                        chip->irq, ret);
+               irq_domain_remove(chip->irq_domain);
                return ret;
        }