x86/rtc: Stop using deprecated functions
authorBenjamin Gaignard <benjamin.gaignard@linaro.org>
Fri, 9 Mar 2018 18:42:50 +0000 (10:42 -0800)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 15 Mar 2018 08:47:24 +0000 (09:47 +0100)
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.

Use the proper y2038 safe functions.

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Stephen Boyd <stephen.boyd@linaro.org>
Cc: Miroslav Lichvar <mlichvar@redhat.com>
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Link: https://lkml.kernel.org/r/1520620971-9567-5-git-send-email-john.stultz@linaro.org
arch/x86/kernel/rtc.c

index 69ac9cb9cac63c8c30049864c2a0092926328747..f7b82ed7b5b5e3e34b5d18860884d5016c204a37 100644 (file)
@@ -41,11 +41,11 @@ EXPORT_SYMBOL(rtc_lock);
  */
 int mach_set_rtc_mmss(const struct timespec *now)
 {
-       unsigned long nowtime = now->tv_sec;
+       unsigned long long nowtime = now->tv_sec;
        struct rtc_time tm;
        int retval = 0;
 
-       rtc_time_to_tm(nowtime, &tm);
+       rtc_time64_to_tm(nowtime, &tm);
        if (!rtc_valid_tm(&tm)) {
                retval = mc146818_set_time(&tm);
                if (retval)
@@ -53,7 +53,7 @@ int mach_set_rtc_mmss(const struct timespec *now)
                               __func__, retval);
        } else {
                printk(KERN_ERR
-                      "%s: Invalid RTC value: write of %lx to RTC failed\n",
+                      "%s: Invalid RTC value: write of %llx to RTC failed\n",
                        __func__, nowtime);
                retval = -EINVAL;
        }