From: Zheng Liang <[email protected]>

[ Upstream commit 1eab0fea2514b269e384c117f5b5772b882761f0 ]

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

Reported-by: Hulk Robot <[email protected]>
Signed-off-by: Zheng Liang <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
Acked-by: Linus Walleij <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Sasha Levin <[email protected]>
---
 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