MediaTek soc driver updates for v6.14

This adds fixes avoiding iomap leaks on error paths in
 the MediaTek devapc driver.
 -----BEGIN PGP SIGNATURE-----
 
 iJ4EABYKAEYWIQQn3Xxr56ypAcSHzXSaNgTPrZeEeAUCZ35GhCgcYW5nZWxvZ2lv
 YWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEuY29tAAoJEJo2BM+tl4R44ZcBAOK1
 5yka/w6R2qKYnzltNGdCnjxpovAnW2trFBA/vnbEAQCSmm2aDqqG67yvbrMFHJRb
 Ok16cqdRfgXWKRvDrl9bBA==
 =5WSn
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmeHy9wACgkQYKtH/8kJ
 Uid+NxAAir9xb/02OV6KEnvXkr+qGt2fhfANXWjG65ujQm+/7Xh8+Iprg363qPjr
 gsuDQ6nRmt0vgQx2ASjcmq52zFmhhqQB+xdKFEB7JlfNatBxycL7YHgaVoCxbgZ+
 IiCEkTDHhJxSWZn2DnujrCqa7DC8bPwtjusAtXCU3vesVP+AzdrvuSChnQ0stAQ2
 WkirCjMIwMFXz4jv/ncDZPX0i9Z3k0tbJMVzmkr7ULHQ265dgie75hNIKw2rvH5p
 BHatkfnewnjRsmP/0e0XinL2saMNyPof2kpEXljYGuwI5XYOhFy+HPSYH53PyD3g
 cyNSC4ixGgGHFFZjX5hOJ+JM7XTo0riny5rpGwTAypSMT9dGxP0RVMPCJcLtEOPC
 VcHmZ2bMqYojDrhB5H+5XpIAvEB9AwaNR8swp/HGmVX1s31dyefNWeBNdR44V6XX
 hqcKYUPTViSI5N2qk7PqmnATWyFE9bounxPiKxq/XHhwl8rw0s/vJumXfym008nq
 zIrXWnn/G49eb8F7amR/RssYtkF+2jEiiO5sD7Q4HHqXNlMlV9KCm/gImrBlhAtA
 J9c0d/PMbZRChtxxpQ6fxfrHMxUJ7vLBMA9KRcIV9LZL2HQdyd1sgEiHUtKZ8mmX
 OtE7U/DcI+4mcLCT/71HN6Fi5Qt4Zv6NKkHoUNmfCJnpjr9c3to=
 =z7u7
 -----END PGP SIGNATURE-----

Merge tag 'mtk-soc-for-v6.14' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/drivers

MediaTek soc driver updates for v6.14

This adds fixes avoiding iomap leaks on error paths in
the MediaTek devapc driver.

* tag 'mtk-soc-for-v6.14' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux:
  soc: mediatek: mtk-devapc: Fix leaking IO map on driver remove
  soc: mediatek: mtk-devapc: Fix leaking IO map on error paths

Link: https://lore.kernel.org/r/20250108100826.32458-2-angelogioacchino.delregno@collabora.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2025-01-15 15:53:16 +01:00
commit f783d74ca6

View File

@ -273,23 +273,31 @@ static int mtk_devapc_probe(struct platform_device *pdev)
return -EINVAL;
devapc_irq = irq_of_parse_and_map(node, 0);
if (!devapc_irq)
return -EINVAL;
if (!devapc_irq) {
ret = -EINVAL;
goto err;
}
ctx->infra_clk = devm_clk_get_enabled(&pdev->dev, "devapc-infra-clock");
if (IS_ERR(ctx->infra_clk))
return -EINVAL;
if (IS_ERR(ctx->infra_clk)) {
ret = -EINVAL;
goto err;
}
ret = devm_request_irq(&pdev->dev, devapc_irq, devapc_violation_irq,
IRQF_TRIGGER_NONE, "devapc", ctx);
if (ret)
return ret;
goto err;
platform_set_drvdata(pdev, ctx);
start_devapc(ctx);
return 0;
err:
iounmap(ctx->infra_base);
return ret;
}
static void mtk_devapc_remove(struct platform_device *pdev)
@ -297,6 +305,7 @@ static void mtk_devapc_remove(struct platform_device *pdev)
struct mtk_devapc_context *ctx = platform_get_drvdata(pdev);
stop_devapc(ctx);
iounmap(ctx->infra_base);
}
static struct platform_driver mtk_devapc_driver = {