From: Alexandre Belloni <alexandre.belloni@free-electrons.com>
To: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Cc: linaro-kernel@lists.linaro.org,
Alessandro Zummo <a.zummo@towertech.it>,
rtc-linux@googlegroups.com, linux-kernel@vger.kernel.org
Subject: [rtc-linux] Re: [PATCH v2 08/22] rtc: ds1305: stop using rtc deprecated functions
Date: Wed, 12 Jul 2017 10:30:15 +0200 [thread overview]
Message-ID: <20170712083015.jbdh4e47agxuqt5d@piout.net> (raw)
In-Reply-To: <1499846682-14093-9-git-send-email-benjamin.gaignard@linaro.org>
Well, again, please don't.
I'll be randomly taking this one as an example.
That RTC will fail in 2100, 6 years before rtc_tm_to_time begins to be
an issue.
Once again, your patch hides the fact that there is an issue. There is
no other way than reading the datasheet and actually think about what
your are doing instead of using sed/coccinelle/whatever.
On 12/07/2017 at 10:04:28 +0200, Benjamin Gaignard wrote:
> rtc_time_to_tm() and rtc_tm_to_time() are deprecated because they
> rely on 32bits variables and that will make rtc break in y2038/2016.
> Stop using those two functions to safer 64bits ones.
>
> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> CC: Alessandro Zummo <a.zummo@towertech.it>
> CC: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> CC: rtc-linux@googlegroups.com
> CC: linux-kernel@vger.kernel.org
> ---
> drivers/rtc/rtc-ds1305.c | 11 ++++-------
> 1 file changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/rtc/rtc-ds1305.c b/drivers/rtc/rtc-ds1305.c
> index 72b2293..b41168b 100644
> --- a/drivers/rtc/rtc-ds1305.c
> +++ b/drivers/rtc/rtc-ds1305.c
> @@ -324,23 +324,20 @@ static int ds1305_set_alarm(struct device *dev, struct rtc_wkalrm *alm)
> {
> struct ds1305 *ds1305 = dev_get_drvdata(dev);
> struct spi_device *spi = ds1305->spi;
> - unsigned long now, later;
> + unsigned long long now, later;
> struct rtc_time tm;
> int status;
> u8 buf[1 + DS1305_ALM_LEN];
>
> /* convert desired alarm to time_t */
> - status = rtc_tm_to_time(&alm->time, &later);
> - if (status < 0)
> - return status;
> + later = rtc_tm_to_time64(&alm->time);
>
> /* Read current time as time_t */
> status = ds1305_get_time(dev, &tm);
> if (status < 0)
> return status;
> - status = rtc_tm_to_time(&tm, &now);
> - if (status < 0)
> - return status;
> +
> + now = rtc_tm_to_time64(&tm);
>
> /* make sure alarm fires within the next 24 hours */
> if (later <= now)
> --
> 1.9.1
>
--
Alexandre Belloni, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
--
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
next prev parent reply other threads:[~2017-07-12 8:30 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1499846682-14093-1-git-send-email-benjamin.gaignard@linaro.org>
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 04/22] rtc: ab-b5ze-s3: stop using rtc deprecated functions Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 05/22] rtc: ab8500: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 06/22] rtc: cpcap: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 07/22] rtc: davinci: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 08/22] rtc: ds1305: " Benjamin Gaignard
2017-07-12 8:30 ` Alexandre Belloni [this message]
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 09/22] rtc: ds1511: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 10/22] rtc: ds1553: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 11/22] rtc: gemini: " Benjamin Gaignard
2017-07-12 17:20 ` [rtc-linux] " 'Hans Ulli Kroll' via rtc-linux
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 12/22] rtc: mv: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 13/22] rtc: omap: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 14/22] rtc: pcap: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 15/22] rtc: rs5c348: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 16/22] rtc: sh: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 17/22] rtc: snvs: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 18/22] rtc: stk17ta8: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 19/22] rtc: sun6i: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 20/22] rtc: sysfs: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 21/22] rtc: test: " Benjamin Gaignard
2017-07-12 8:04 ` [rtc-linux] [PATCH v2 22/22] power: suspend " Benjamin Gaignard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170712083015.jbdh4e47agxuqt5d@piout.net \
--to=alexandre.belloni@free-electrons.com \
--cc=a.zummo@towertech.it \
--cc=benjamin.gaignard@linaro.org \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rtc-linux@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox