Skip to content

Commit 8c8df9b

Browse files
3V3RYONEmathieupoirier
authored andcommitted
remoteproc: k3-r5: Add devm action to release tsp
Use a device lifecycle managed action to release tsp ti_sci_proc handle. This helps prevent mistakes like releasing out of order in cleanup functions and forgetting to release on error paths. Signed-off-by: Beleswar Padhi <[email protected]> Reviewed-by: Andrew Davis <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mathieu Poirier <[email protected]>
1 parent de182d2 commit 8c8df9b

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

drivers/remoteproc/ti_k3_r5_remoteproc.c

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1487,6 +1487,13 @@ static int k3_r5_core_of_get_sram_memories(struct platform_device *pdev,
14871487
return 0;
14881488
}
14891489

1490+
static void k3_r5_release_tsp(void *data)
1491+
{
1492+
struct ti_sci_proc *tsp = data;
1493+
1494+
ti_sci_proc_release(tsp);
1495+
}
1496+
14901497
static int k3_r5_core_of_init(struct platform_device *pdev)
14911498
{
14921499
struct device *dev = &pdev->dev;
@@ -1580,6 +1587,10 @@ static int k3_r5_core_of_init(struct platform_device *pdev)
15801587
goto err;
15811588
}
15821589

1590+
ret = devm_add_action_or_reset(dev, k3_r5_release_tsp, core->tsp);
1591+
if (ret)
1592+
goto err;
1593+
15831594
platform_set_drvdata(pdev, core);
15841595
devres_close_group(dev, k3_r5_core_of_init);
15851596

@@ -1596,13 +1607,7 @@ static int k3_r5_core_of_init(struct platform_device *pdev)
15961607
*/
15971608
static void k3_r5_core_of_exit(struct platform_device *pdev)
15981609
{
1599-
struct k3_r5_core *core = platform_get_drvdata(pdev);
16001610
struct device *dev = &pdev->dev;
1601-
int ret;
1602-
1603-
ret = ti_sci_proc_release(core->tsp);
1604-
if (ret)
1605-
dev_err(dev, "failed to release proc, ret = %d\n", ret);
16061611

16071612
platform_set_drvdata(pdev, NULL);
16081613
devres_release_group(dev, k3_r5_core_of_init);

0 commit comments

Comments
 (0)