From: Benjamin Gaignard <[email protected]>

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.

Cc: Arnd Bergmann <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: [email protected]
Cc: Miroslav Lichvar <[email protected]>
Cc: Richard Cochran <[email protected]>
Cc: Prarit Bhargava <[email protected]>
Cc: Stephen Boyd <[email protected]>
Cc: Alexandre Belloni <[email protected]>
Signed-off-by: Benjamin Gaignard <[email protected]>
Signed-off-by: John Stultz <[email protected]>
---
 arch/x86/kernel/rtc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c
index 69ac9cb..f7b82ed 100644
--- a/arch/x86/kernel/rtc.c
+++ b/arch/x86/kernel/rtc.c
@@ -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;
        }
-- 
2.7.4

Reply via email to