From 1b382bca0b138cb7274a6c3838fd59a66f462bed Mon Sep 17 00:00:00 2001 From: Martin Schwidefsky Date: Sat, 22 Aug 2009 22:23:13 +0200 Subject: [PATCH] --- yaml --- r: 163076 b: refs/heads/master c: d90246cd8e0141332a8ab09c3c1800cc2028a686 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/powerpc/kernel/time.c | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 16cbb2c5cdc6..1059575202e6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: da15cfdae03351c689736f8d142618592e3cebc3 +refs/heads/master: d90246cd8e0141332a8ab09c3c1800cc2028a686 diff --git a/trunk/arch/powerpc/kernel/time.c b/trunk/arch/powerpc/kernel/time.c index ad63f30fe3da..a508388fb87c 100644 --- a/trunk/arch/powerpc/kernel/time.c +++ b/trunk/arch/powerpc/kernel/time.c @@ -774,6 +774,7 @@ void read_persistent_clock(struct timespec *ts) struct rtc_time tm; static int first = 1; + ts->tv_nsec = 0; /* XXX this is a litle fragile but will work okay in the short term */ if (first) { first = 0; @@ -781,15 +782,18 @@ void read_persistent_clock(struct timespec *ts) timezone_offset = ppc_md.time_init(); /* get_boot_time() isn't guaranteed to be safe to call late */ - if (ppc_md.get_boot_time) - return ppc_md.get_boot_time() -timezone_offset; + if (ppc_md.get_boot_time) { + ts->tv_sec = ppc_md.get_boot_time() - timezone_offset; + return; + } + } + if (!ppc_md.get_rtc_time) { + ts->tv_sec = 0; + return; } - if (!ppc_md.get_rtc_time) - return 0; ppc_md.get_rtc_time(&tm); ts->tv_sec = mktime(tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); - ts->tv_nsec = 0; } /* clocksource code */