From: Zheng Liang <zhenglia...@huawei.com>

[ Upstream commit 1eab0fea2514b269e384c117f5b5772b882761f0 ]

When devm_rtc_allocate_device is failed in pl031_probe, it should release
mem regions with device.

Reported-by: Hulk Robot <hul...@huawei.com>
Signed-off-by: Zheng Liang <zhenglia...@huawei.com>
Signed-off-by: Alexandre Belloni <alexandre.bell...@bootlin.com>
Acked-by: Linus Walleij <linus.wall...@linaro.org>
Link: https://lore.kernel.org/r/20201112093139.32566-1-zhenglia...@huawei.com
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/rtc/rtc-pl031.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/rtc/rtc-pl031.c b/drivers/rtc/rtc-pl031.c
index 180caebbd3552..9566958476dfc 100644
--- a/drivers/rtc/rtc-pl031.c
+++ b/drivers/rtc/rtc-pl031.c
@@ -379,8 +379,10 @@ static int pl031_probe(struct amba_device *adev, const 
struct amba_id *id)
 
        device_init_wakeup(&adev->dev, true);
        ldata->rtc = devm_rtc_allocate_device(&adev->dev);
-       if (IS_ERR(ldata->rtc))
-               return PTR_ERR(ldata->rtc);
+       if (IS_ERR(ldata->rtc)) {
+               ret = PTR_ERR(ldata->rtc);
+               goto out;
+       }
 
        ldata->rtc->ops = ops;
 
-- 
2.27.0



Reply via email to