summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAlexandre Belloni2019-04-30 11:28:15 +0200
committerAlexandre Belloni2019-04-30 11:50:11 +0200
commita7ab6bed284f1fe70d847e93276ff2979122f555 (patch)
tree50aa7ef90d253971ad74b0ff573fb3104fe5a901 /drivers
parentrtc: 88pm860x: prevent use-after-free on device remove (diff)
downloadkernel-qcow2-linux-a7ab6bed284f1fe70d847e93276ff2979122f555.tar.gz
kernel-qcow2-linux-a7ab6bed284f1fe70d847e93276ff2979122f555.tar.xz
kernel-qcow2-linux-a7ab6bed284f1fe70d847e93276ff2979122f555.zip
rtc: jz4740: set range
RTC_SEC is a 32-bit seconds counter. Tested-by: Mathieu Malaterre <malat@debian.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/rtc/rtc-jz4740.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/rtc/rtc-jz4740.c b/drivers/rtc/rtc-jz4740.c
index d0a891777f44..079469627bd7 100644
--- a/drivers/rtc/rtc-jz4740.c
+++ b/drivers/rtc/rtc-jz4740.c
@@ -348,10 +348,18 @@ static int jz4740_rtc_probe(struct platform_device *pdev)
device_init_wakeup(&pdev->dev, 1);
- rtc->rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
- &jz4740_rtc_ops, THIS_MODULE);
+ rtc->rtc = devm_rtc_allocate_device(&pdev->dev);
if (IS_ERR(rtc->rtc)) {
ret = PTR_ERR(rtc->rtc);
+ dev_err(&pdev->dev, "Failed to allocate rtc device: %d\n", ret);
+ return ret;
+ }
+
+ rtc->rtc->ops = &jz4740_rtc_ops;
+ rtc->rtc->range_max = U32_MAX;
+
+ ret = rtc_register_device(rtc->rtc);
+ if (ret) {
dev_err(&pdev->dev, "Failed to register rtc device: %d\n", ret);
return ret;
}