Skip to content

Commit

Permalink
clk: fsl-sai: fix memory leak
Browse files Browse the repository at this point in the history
[ Upstream commit e81bed4 ]

If the device is removed we don't unregister the composite clock. Fix
that.

Fixes: 9cd1020 ("clk: fsl-sai: new driver")
Signed-off-by: Michael Walle <michael@walle.cc>
Link: https://lore.kernel.org/r/20201105192746.19564-2-michael@walle.cc
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
mwalle authored and gregkh committed Dec 30, 2020
1 parent 608918e commit 45d670e
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions drivers/clk/clk-fsl-sai.c
Expand Up @@ -68,9 +68,20 @@ static int fsl_sai_clk_probe(struct platform_device *pdev)
if (IS_ERR(hw))
return PTR_ERR(hw);

platform_set_drvdata(pdev, hw);

return devm_of_clk_add_hw_provider(dev, of_clk_hw_simple_get, hw);
}

static int fsl_sai_clk_remove(struct platform_device *pdev)
{
struct clk_hw *hw = platform_get_drvdata(pdev);

clk_hw_unregister_composite(hw);

return 0;
}

static const struct of_device_id of_fsl_sai_clk_ids[] = {
{ .compatible = "fsl,vf610-sai-clock" },
{ }
Expand All @@ -79,6 +90,7 @@ MODULE_DEVICE_TABLE(of, of_fsl_sai_clk_ids);

static struct platform_driver fsl_sai_clk_driver = {
.probe = fsl_sai_clk_probe,
.remove = fsl_sai_clk_remove,
.driver = {
.name = "fsl-sai-clk",
.of_match_table = of_fsl_sai_clk_ids,
Expand Down

0 comments on commit 45d670e

Please sign in to comment.