[PATCH v2] driver: pmc_atom: free pmc->regmap when pmc_setup_clks fails

From: Dongliang Mu
Date: Sun Dec 05 2021 - 03:49:11 EST


Smatch reports:

drivers/platform/x86/pmc_atom.c:496
pmc_setup_dev() warn: 'pmc->regmap' not released on lines: 496.

Fix this by deallocating pm->regmap when pmc_setup_clks fails.

Fixes: 282a4e4ce5f9("platform/x86: Enable Atom PMC platform clocks")
Signed-off-by: Dongliang Mu <mudongliangabcd@xxxxxxxxx>
---
drivers/platform/x86/pmc_atom.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/platform/x86/pmc_atom.c b/drivers/platform/x86/pmc_atom.c
index a9d2a4b98e57..e338c1572237 100644
--- a/drivers/platform/x86/pmc_atom.c
+++ b/drivers/platform/x86/pmc_atom.c
@@ -488,9 +488,11 @@ static int pmc_setup_dev(struct pci_dev *pdev, const struct pci_device_id *ent)

/* Register platform clocks - PMC_PLT_CLK [0..5] */
ret = pmc_setup_clks(pdev, pmc->regmap, data);
- if (ret)
+ if (ret) {
+ iounmap(pmc->regmap);
dev_warn(&pdev->dev, "platform clocks register failed: %d\n",
ret);
+ }

pmc->init = true;
return ret;
--
2.25.1