Messages in this thread Patch in this message |  | | From | Yangtao Li <> | | Subject | [PATCH 13/31] spi: spi-qcom-qspi: fix potential mem leak in qcom_qspi_probe() | | Date | Fri, 1 Jan 2021 16:54:49 +0000 |
| |
We should use dev_pm_opp_put_clkname() to free opp table each time dev_pm_opp_of_add_table() got error.
Signed-off-by: Yangtao Li <tiny.windzz@gmail.com> --- drivers/spi/spi-qcom-qspi.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/spi/spi-qcom-qspi.c b/drivers/spi/spi-qcom-qspi.c index 8863be370884..915ae115d8c1 100644 --- a/drivers/spi/spi-qcom-qspi.c +++ b/drivers/spi/spi-qcom-qspi.c @@ -536,9 +536,12 @@ static int qcom_qspi_probe(struct platform_device *pdev) return PTR_ERR(ctrl->opp_table); /* OPP table is optional */ ret = dev_pm_opp_of_add_table(&pdev->dev); - if (ret && ret != -ENODEV) { - dev_err(&pdev->dev, "invalid OPP table in device tree\n"); - goto exit_probe_put_clkname; + if (ret) { + dev_pm_opp_put_clkname(ctrl->opp_table); + if (ret != -ENODEV) { + dev_err(&pdev->dev, "invalid OPP table in device tree\n"); + return ret; + } } pm_runtime_use_autosuspend(dev); @@ -551,8 +554,6 @@ static int qcom_qspi_probe(struct platform_device *pdev) pm_runtime_disable(dev); dev_pm_opp_of_remove_table(&pdev->dev); - -exit_probe_put_clkname: dev_pm_opp_put_clkname(ctrl->opp_table); return ret; -- 2.25.1
|  |