rtc: pl031: fix resource leak in pl031_probe
authorZheng Liang <zhengliang6@huawei.com>
Thu, 12 Nov 2020 09:31:39 +0000 (17:31 +0800)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Sat, 14 Nov 2020 22:42:29 +0000 (23:42 +0100)
When devm_rtc_allocate_device is failed in pl031_probe, it should release
mem regions with device.

Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Zheng Liang <zhengliang6@huawei.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20201112093139.32566-1-zhengliang6@huawei.com
drivers/rtc/rtc-pl031.c

index c6b8927..d4b2ab7 100644 (file)
@@ -361,8 +361,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;
        ldata->rtc->range_min = vendor->range_min;