Skip to content

Commit 5efcc36

Browse files
glneomathieupoirier
authored andcommitted
remoteproc: omap: Use devm action to release reserved memory
This helps prevent mistakes like freeing out of order in cleanup functions and forgetting to free on error paths. Signed-off-by: Andrew Davis <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mathieu Poirier <[email protected]>
1 parent 6159855 commit 5efcc36

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

drivers/remoteproc/omap_remoteproc.c

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1277,6 +1277,13 @@ static int omap_rproc_of_get_timers(struct platform_device *pdev,
12771277
return 0;
12781278
}
12791279

1280+
static void omap_rproc_mem_release(void *data)
1281+
{
1282+
struct device *dev = data;
1283+
1284+
of_reserved_mem_device_release(dev);
1285+
}
1286+
12801287
static int omap_rproc_probe(struct platform_device *pdev)
12811288
{
12821289
struct device_node *np = pdev->dev.of_node;
@@ -1346,27 +1353,24 @@ static int omap_rproc_probe(struct platform_device *pdev)
13461353
dev_warn(&pdev->dev, "Typically this should be provided,\n");
13471354
dev_warn(&pdev->dev, "only omit if you know what you are doing.\n");
13481355
}
1356+
ret = devm_add_action_or_reset(&pdev->dev, omap_rproc_mem_release, &pdev->dev);
1357+
if (ret)
1358+
return ret;
13491359

13501360
platform_set_drvdata(pdev, rproc);
13511361

13521362
ret = rproc_add(rproc);
13531363
if (ret)
1354-
goto release_mem;
1364+
return ret;
13551365

13561366
return 0;
1357-
1358-
release_mem:
1359-
of_reserved_mem_device_release(&pdev->dev);
1360-
1361-
return ret;
13621367
}
13631368

13641369
static void omap_rproc_remove(struct platform_device *pdev)
13651370
{
13661371
struct rproc *rproc = platform_get_drvdata(pdev);
13671372

13681373
rproc_del(rproc);
1369-
of_reserved_mem_device_release(&pdev->dev);
13701374
}
13711375

13721376
static const struct dev_pm_ops omap_rproc_pm_ops = {

0 commit comments

Comments
 (0)