Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

regulator: mt6363: Fix incorrect and redundant IRQ disposal in probe

In mt6363_regulator_probe(), devm_add_action_or_reset() is used to
automatically dispose of the IRQ mapping if the probe fails or the
device is removed.

The manual call to irq_dispose_mapping() in the error path was redundant
as the reset action already triggers mt6363_irq_remove(). Furthermore,
the manual call incorrectly passed the hardware IRQ number (info->hwirq)
instead of the virtual IRQ mapping (info->virq).

Remove the redundant and incorrect manual disposal.

Fixes: 3c36965df808 ("regulator: Add support for MediaTek MT6363 SPMI PMIC Regulators")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
Link: https://patch.msgid.link/20260223-mt6363-v1-1-c99a2e8ac621@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Felix Gu and committed by
Mark Brown
23942b71 11439c46

+1 -3
+1 -3
drivers/regulator/mt6363-regulator.c
··· 899 "Failed to map IRQ%d\n", info->hwirq); 900 901 ret = devm_add_action_or_reset(dev, mt6363_irq_remove, &info->virq); 902 - if (ret) { 903 - irq_dispose_mapping(info->hwirq); 904 return ret; 905 - } 906 907 config.driver_data = info; 908 INIT_DELAYED_WORK(&info->oc_work, mt6363_oc_irq_enable_work);
··· 899 "Failed to map IRQ%d\n", info->hwirq); 900 901 ret = devm_add_action_or_reset(dev, mt6363_irq_remove, &info->virq); 902 + if (ret) 903 return ret; 904 905 config.driver_data = info; 906 INIT_DELAYED_WORK(&info->oc_work, mt6363_oc_irq_enable_work);