]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mfd: mt6397-irq: Fix missing irq_domain_remove() in error path
authorHaotian Zhang <vulab@iscas.ac.cn>
Tue, 18 Nov 2025 12:15:00 +0000 (20:15 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jan 2026 12:09:31 +0000 (13:09 +0100)
[ Upstream commit b4b1bd1f330fdd13706382be6c90ce9f58cee3f5 ]

If devm_request_threaded_irq() fails after irq_domain_create_linear()
succeeds in mt6397_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_create_linear() to properly release the IRQ domain.

Fixes: a4872e80ce7d ("mfd: mt6397: Extract IRQ related code from core driver")
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
Link: https://patch.msgid.link/20251118121500.605-1-vulab@iscas.ac.cn
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mfd/mt6397-irq.c

index 2924919da991a5e4f4ab881f7939e738809f13ae..e1daed7edc841f10e745597609bd96827360fa71 100644 (file)
@@ -206,6 +206,7 @@ int mt6397_irq_init(struct mt6397_chip *chip)
        if (ret) {
                dev_err(chip->dev, "failed to register irq=%d; err: %d\n",
                        chip->irq, ret);
+               irq_domain_remove(chip->irq_domain);
                return ret;
        }