* [PATCH v2 0/5] clk: imx: imx8: Fix some error handling paths
@ 2023-09-14 20:31 Christophe JAILLET
2023-09-14 20:31 ` [PATCH v2 1/5] clk: imx: imx8: Fix an error handling path in clk_imx_acm_attach_pm_domains() Christophe JAILLET
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: Christophe JAILLET @ 2023-09-14 20:31 UTC (permalink / raw)
To: abelvesa, peng.fan, mturquette, sboyd, shawnguo, s.hauer, kernel,
festevam, linux-imx, shengjiu.wang
Cc: linux-clk, linux-arm-kernel, linux-kernel, kernel-janitors,
Christophe JAILLET
This serie fix some error handling paths. It is split in different patches to
ease review because the issues are unrelated and the proposed fixes are maybe
wrong (I don't have the hardware to test anything)
Some of v1 patches had been incorrectly hand modified. There was a extra ')' in
patch 3 and 4 that prevented the merge.
This v2 is a cleanly regenarated serie, compile tested at each step. This
time, git format-patch did all the work and the patches have NOT been hand
modified afterwards.
Some log messages have also been slightly tweaked.
R-b tags have been added.
v1: https://lore.kernel.org/all/cover.1693126687.git.christophe.jaillet@wanadoo.fr/
Christophe JAILLET (5):
clk: imx: imx8: Fix an error handling path in
clk_imx_acm_attach_pm_domains()
clk: imx: imx8: Fix an error handling path if
devm_clk_hw_register_mux_parent_data_table() fails
clk: imx: imx8: Fix an error handling path in imx8_acm_clk_probe()
clk: imx: imx8: Add a message in case of
devm_clk_hw_register_mux_parent_data_table() error
clk: imx: imx8: Simplify clk_imx_acm_detach_pm_domains()
drivers/clk/imx/clk-imx8-acm.c | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/5] clk: imx: imx8: Fix an error handling path in clk_imx_acm_attach_pm_domains()
2023-09-14 20:31 [PATCH v2 0/5] clk: imx: imx8: Fix some error handling paths Christophe JAILLET
@ 2023-09-14 20:31 ` Christophe JAILLET
2023-09-14 20:31 ` [PATCH v2 2/5] clk: imx: imx8: Fix an error handling path if devm_clk_hw_register_mux_parent_data_table() fails Christophe JAILLET
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Christophe JAILLET @ 2023-09-14 20:31 UTC (permalink / raw)
To: abelvesa, peng.fan, mturquette, sboyd, shawnguo, s.hauer, kernel,
festevam, linux-imx, shengjiu.wang
Cc: linux-clk, linux-arm-kernel, linux-kernel, kernel-janitors,
Christophe JAILLET
If a dev_pm_domain_attach_by_id() call fails, previously allocated
resources need to be released.
Fixes: d3a0946d7ac9 ("clk: imx: imx8: add audio clock mux driver")
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
drivers/clk/imx/clk-imx8-acm.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/imx/clk-imx8-acm.c b/drivers/clk/imx/clk-imx8-acm.c
index 1e82f72b75c6..87025a6772d0 100644
--- a/drivers/clk/imx/clk-imx8-acm.c
+++ b/drivers/clk/imx/clk-imx8-acm.c
@@ -279,8 +279,10 @@ static int clk_imx_acm_attach_pm_domains(struct device *dev,
for (i = 0; i < dev_pm->num_domains; i++) {
dev_pm->pd_dev[i] = dev_pm_domain_attach_by_id(dev, i);
- if (IS_ERR(dev_pm->pd_dev[i]))
- return PTR_ERR(dev_pm->pd_dev[i]);
+ if (IS_ERR(dev_pm->pd_dev[i])) {
+ ret = PTR_ERR(dev_pm->pd_dev[i]);
+ goto detach_pm;
+ }
dev_pm->pd_dev_link[i] = device_link_add(dev,
dev_pm->pd_dev[i],
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/5] clk: imx: imx8: Fix an error handling path if devm_clk_hw_register_mux_parent_data_table() fails
2023-09-14 20:31 [PATCH v2 0/5] clk: imx: imx8: Fix some error handling paths Christophe JAILLET
2023-09-14 20:31 ` [PATCH v2 1/5] clk: imx: imx8: Fix an error handling path in clk_imx_acm_attach_pm_domains() Christophe JAILLET
@ 2023-09-14 20:31 ` Christophe JAILLET
2023-09-14 20:31 ` [PATCH v2 3/5] clk: imx: imx8: Fix an error handling path in imx8_acm_clk_probe() Christophe JAILLET
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Christophe JAILLET @ 2023-09-14 20:31 UTC (permalink / raw)
To: abelvesa, peng.fan, mturquette, sboyd, shawnguo, s.hauer, kernel,
festevam, linux-imx, shengjiu.wang
Cc: linux-clk, linux-arm-kernel, linux-kernel, kernel-janitors,
Christophe JAILLET
If a devm_clk_hw_register_mux_parent_data_table() call fails, it is likely
that the probe should fail with an error code.
Set 'ret' before leaving the function.
Fixes: d3a0946d7ac9 ("clk: imx: imx8: add audio clock mux driver")
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
drivers/clk/imx/clk-imx8-acm.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/clk/imx/clk-imx8-acm.c b/drivers/clk/imx/clk-imx8-acm.c
index 87025a6772d0..73b3b5354951 100644
--- a/drivers/clk/imx/clk-imx8-acm.c
+++ b/drivers/clk/imx/clk-imx8-acm.c
@@ -373,6 +373,7 @@ static int imx8_acm_clk_probe(struct platform_device *pdev)
sels[i].shift, sels[i].width,
0, NULL, NULL);
if (IS_ERR(hws[sels[i].clkid])) {
+ ret = PTR_ERR(hws[sels[i].clkid]);
pm_runtime_disable(&pdev->dev);
goto err_clk_register;
}
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 3/5] clk: imx: imx8: Fix an error handling path in imx8_acm_clk_probe()
2023-09-14 20:31 [PATCH v2 0/5] clk: imx: imx8: Fix some error handling paths Christophe JAILLET
2023-09-14 20:31 ` [PATCH v2 1/5] clk: imx: imx8: Fix an error handling path in clk_imx_acm_attach_pm_domains() Christophe JAILLET
2023-09-14 20:31 ` [PATCH v2 2/5] clk: imx: imx8: Fix an error handling path if devm_clk_hw_register_mux_parent_data_table() fails Christophe JAILLET
@ 2023-09-14 20:31 ` Christophe JAILLET
2023-09-14 20:31 ` [PATCH v2 4/5] clk: imx: imx8: Add a message in case of devm_clk_hw_register_mux_parent_data_table() error Christophe JAILLET
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Christophe JAILLET @ 2023-09-14 20:31 UTC (permalink / raw)
To: abelvesa, peng.fan, mturquette, sboyd, shawnguo, s.hauer, kernel,
festevam, linux-imx, shengjiu.wang
Cc: linux-clk, linux-arm-kernel, linux-kernel, kernel-janitors,
Christophe JAILLET
If an error occurs after a successful clk_imx_acm_attach_pm_domains() call,
it must be undone.
Add an explicit error handling path, re-order the code and add the missing
clk_imx_acm_detach_pm_domains() call.
Fixes: d3a0946d7ac9 ("clk: imx: imx8: add audio clock mux driver")
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
drivers/clk/imx/clk-imx8-acm.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/clk/imx/clk-imx8-acm.c b/drivers/clk/imx/clk-imx8-acm.c
index 73b3b5354951..1c95ae905eec 100644
--- a/drivers/clk/imx/clk-imx8-acm.c
+++ b/drivers/clk/imx/clk-imx8-acm.c
@@ -374,7 +374,6 @@ static int imx8_acm_clk_probe(struct platform_device *pdev)
0, NULL, NULL);
if (IS_ERR(hws[sels[i].clkid])) {
ret = PTR_ERR(hws[sels[i].clkid]);
- pm_runtime_disable(&pdev->dev);
goto err_clk_register;
}
}
@@ -384,12 +383,16 @@ static int imx8_acm_clk_probe(struct platform_device *pdev)
ret = devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, clk_hw_data);
if (ret < 0) {
dev_err(dev, "failed to register hws for ACM\n");
- pm_runtime_disable(&pdev->dev);
+ goto err_clk_register;
}
-err_clk_register:
+ pm_runtime_put_sync(&pdev->dev);
+ return 0;
+err_clk_register:
pm_runtime_put_sync(&pdev->dev);
+ pm_runtime_disable(&pdev->dev);
+ clk_imx_acm_detach_pm_domains(&pdev->dev, &priv->dev_pm);
return ret;
}
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 4/5] clk: imx: imx8: Add a message in case of devm_clk_hw_register_mux_parent_data_table() error
2023-09-14 20:31 [PATCH v2 0/5] clk: imx: imx8: Fix some error handling paths Christophe JAILLET
` (2 preceding siblings ...)
2023-09-14 20:31 ` [PATCH v2 3/5] clk: imx: imx8: Fix an error handling path in imx8_acm_clk_probe() Christophe JAILLET
@ 2023-09-14 20:31 ` Christophe JAILLET
2023-09-14 20:31 ` [PATCH v2 5/5] clk: imx: imx8: Simplify clk_imx_acm_detach_pm_domains() Christophe JAILLET
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Christophe JAILLET @ 2023-09-14 20:31 UTC (permalink / raw)
To: abelvesa, peng.fan, mturquette, sboyd, shawnguo, s.hauer, kernel,
festevam, linux-imx, shengjiu.wang
Cc: linux-clk, linux-arm-kernel, linux-kernel, kernel-janitors,
Christophe JAILLET
If devm_clk_hw_register_mux_parent_data_table() fails, we branch to the
error handling path and imx_check_clk_hws() is never called.
Actually, imx_check_clk_hws() is a no-op because values in 'hws' are either
valid, either NULL.
Move the call to imx_check_clk_hws() in the error handling path, so that
an error is logged.
Fixes: d3a0946d7ac9 ("clk: imx: imx8: add audio clock mux driver")
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
drivers/clk/imx/clk-imx8-acm.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/clk/imx/clk-imx8-acm.c b/drivers/clk/imx/clk-imx8-acm.c
index 1c95ae905eec..c744fb78bb44 100644
--- a/drivers/clk/imx/clk-imx8-acm.c
+++ b/drivers/clk/imx/clk-imx8-acm.c
@@ -374,12 +374,11 @@ static int imx8_acm_clk_probe(struct platform_device *pdev)
0, NULL, NULL);
if (IS_ERR(hws[sels[i].clkid])) {
ret = PTR_ERR(hws[sels[i].clkid]);
+ imx_check_clk_hws(hws, IMX_ADMA_ACM_CLK_END);
goto err_clk_register;
}
}
- imx_check_clk_hws(hws, IMX_ADMA_ACM_CLK_END);
-
ret = devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, clk_hw_data);
if (ret < 0) {
dev_err(dev, "failed to register hws for ACM\n");
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 5/5] clk: imx: imx8: Simplify clk_imx_acm_detach_pm_domains()
2023-09-14 20:31 [PATCH v2 0/5] clk: imx: imx8: Fix some error handling paths Christophe JAILLET
` (3 preceding siblings ...)
2023-09-14 20:31 ` [PATCH v2 4/5] clk: imx: imx8: Add a message in case of devm_clk_hw_register_mux_parent_data_table() error Christophe JAILLET
@ 2023-09-14 20:31 ` Christophe JAILLET
2023-09-15 7:00 ` [PATCH v2 0/5] clk: imx: imx8: Fix some error handling paths S.J. Wang
2023-10-04 8:24 ` Abel Vesa
6 siblings, 0 replies; 8+ messages in thread
From: Christophe JAILLET @ 2023-09-14 20:31 UTC (permalink / raw)
To: abelvesa, peng.fan, mturquette, sboyd, shawnguo, s.hauer, kernel,
festevam, linux-imx, shengjiu.wang
Cc: linux-clk, linux-arm-kernel, linux-kernel, kernel-janitors,
Christophe JAILLET
The return value of clk_imx_acm_detach_pm_domains() is never used.
Simplify the code and turn it into a void function.
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
drivers/clk/imx/clk-imx8-acm.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers/clk/imx/clk-imx8-acm.c b/drivers/clk/imx/clk-imx8-acm.c
index c744fb78bb44..735b08296cc8 100644
--- a/drivers/clk/imx/clk-imx8-acm.c
+++ b/drivers/clk/imx/clk-imx8-acm.c
@@ -310,20 +310,18 @@ static int clk_imx_acm_attach_pm_domains(struct device *dev,
* @dev: deivice pointer
* @dev_pm: multi power domain for device
*/
-static int clk_imx_acm_detach_pm_domains(struct device *dev,
- struct clk_imx_acm_pm_domains *dev_pm)
+static void clk_imx_acm_detach_pm_domains(struct device *dev,
+ struct clk_imx_acm_pm_domains *dev_pm)
{
int i;
if (dev_pm->num_domains <= 1)
- return 0;
+ return;
for (i = 0; i < dev_pm->num_domains; i++) {
device_link_del(dev_pm->pd_dev_link[i]);
dev_pm_domain_detach(dev_pm->pd_dev[i], false);
}
-
- return 0;
}
static int imx8_acm_clk_probe(struct platform_device *pdev)
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 8+ messages in thread
* RE: [PATCH v2 0/5] clk: imx: imx8: Fix some error handling paths
2023-09-14 20:31 [PATCH v2 0/5] clk: imx: imx8: Fix some error handling paths Christophe JAILLET
` (4 preceding siblings ...)
2023-09-14 20:31 ` [PATCH v2 5/5] clk: imx: imx8: Simplify clk_imx_acm_detach_pm_domains() Christophe JAILLET
@ 2023-09-15 7:00 ` S.J. Wang
2023-10-04 8:24 ` Abel Vesa
6 siblings, 0 replies; 8+ messages in thread
From: S.J. Wang @ 2023-09-15 7:00 UTC (permalink / raw)
To: Christophe JAILLET, abelvesa@kernel.org, Peng Fan,
mturquette@baylibre.com, sboyd@kernel.org, shawnguo@kernel.org,
s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com,
dl-linux-imx
Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org
>
> This serie fix some error handling paths. It is split in different patches to ease
> review because the issues are unrelated and the proposed fixes are maybe
> wrong (I don't have the hardware to test anything)
>
> Some of v1 patches had been incorrectly hand modified. There was a extra ')'
> in patch 3 and 4 that prevented the merge.
>
> This v2 is a cleanly regenarated serie, compile tested at each step. This time,
> git format-patch did all the work and the patches have NOT been hand
> modified afterwards.
>
>
> Some log messages have also been slightly tweaked.
> R-b tags have been added.
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Tested-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Best regards
Wang Shengjiu
>
> v1:
> https://lore.k/
> ernel.org%2Fall%2Fcover.1693126687.git.christophe.jaillet%40wanadoo.fr%2
> F&data=05%7C01%7Cshengjiu.wang%40nxp.com%7C5134bf2d7d924e4ca9ae
> 08dbb561881c%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6383
> 03202724496811%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL
> CJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&s
> data=f0SvmM0H1Ki%2Bp3Qqsya8u87CbVowC4bXym2i%2FSBCgJc%3D&reser
> ved=0
>
> Christophe JAILLET (5):
> clk: imx: imx8: Fix an error handling path in
> clk_imx_acm_attach_pm_domains()
> clk: imx: imx8: Fix an error handling path if
> devm_clk_hw_register_mux_parent_data_table() fails
> clk: imx: imx8: Fix an error handling path in imx8_acm_clk_probe()
> clk: imx: imx8: Add a message in case of
> devm_clk_hw_register_mux_parent_data_table() error
> clk: imx: imx8: Simplify clk_imx_acm_detach_pm_domains()
>
> drivers/clk/imx/clk-imx8-acm.c | 27 +++++++++++++++------------
> 1 file changed, 15 insertions(+), 12 deletions(-)
>
> --
> 2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/5] clk: imx: imx8: Fix some error handling paths
2023-09-14 20:31 [PATCH v2 0/5] clk: imx: imx8: Fix some error handling paths Christophe JAILLET
` (5 preceding siblings ...)
2023-09-15 7:00 ` [PATCH v2 0/5] clk: imx: imx8: Fix some error handling paths S.J. Wang
@ 2023-10-04 8:24 ` Abel Vesa
6 siblings, 0 replies; 8+ messages in thread
From: Abel Vesa @ 2023-10-04 8:24 UTC (permalink / raw)
To: abelvesa, peng.fan, mturquette, sboyd, shawnguo, s.hauer, kernel,
festevam, linux-imx, shengjiu.wang, Christophe JAILLET
Cc: linux-clk, linux-arm-kernel, linux-kernel, kernel-janitors
On Thu, 14 Sep 2023 22:31:01 +0200, Christophe JAILLET wrote:
> This serie fix some error handling paths. It is split in different patches to
> ease review because the issues are unrelated and the proposed fixes are maybe
> wrong (I don't have the hardware to test anything)
>
> Some of v1 patches had been incorrectly hand modified. There was a extra ')' in
> patch 3 and 4 that prevented the merge.
>
> [...]
Applied, thanks!
[1/5] clk: imx: imx8: Fix an error handling path in clk_imx_acm_attach_pm_domains()
commit: 156624e2cf815ce98fad5a24f04370f4459ae6f4
[2/5] clk: imx: imx8: Fix an error handling path if devm_clk_hw_register_mux_parent_data_table() fails
commit: 9a0108acdb1b6189dcc8f9318edfc6b7e0281df4
[3/5] clk: imx: imx8: Fix an error handling path in imx8_acm_clk_probe()
commit: e9a164e367f039629fd5466a79b9f495646e1261
[4/5] clk: imx: imx8: Add a message in case of devm_clk_hw_register_mux_parent_data_table() error
commit: ef23d44b7fcbd19773dcedcb50ca2f625107604f
[5/5] clk: imx: imx8: Simplify clk_imx_acm_detach_pm_domains()
commit: 3af29a89de2c6e49737a1201b7d6fd5ad3f635a4
Best regards,
--
Abel Vesa <abel.vesa@linaro.org>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-10-04 8:25 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-14 20:31 [PATCH v2 0/5] clk: imx: imx8: Fix some error handling paths Christophe JAILLET
2023-09-14 20:31 ` [PATCH v2 1/5] clk: imx: imx8: Fix an error handling path in clk_imx_acm_attach_pm_domains() Christophe JAILLET
2023-09-14 20:31 ` [PATCH v2 2/5] clk: imx: imx8: Fix an error handling path if devm_clk_hw_register_mux_parent_data_table() fails Christophe JAILLET
2023-09-14 20:31 ` [PATCH v2 3/5] clk: imx: imx8: Fix an error handling path in imx8_acm_clk_probe() Christophe JAILLET
2023-09-14 20:31 ` [PATCH v2 4/5] clk: imx: imx8: Add a message in case of devm_clk_hw_register_mux_parent_data_table() error Christophe JAILLET
2023-09-14 20:31 ` [PATCH v2 5/5] clk: imx: imx8: Simplify clk_imx_acm_detach_pm_domains() Christophe JAILLET
2023-09-15 7:00 ` [PATCH v2 0/5] clk: imx: imx8: Fix some error handling paths S.J. Wang
2023-10-04 8:24 ` Abel Vesa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).