aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2009-08-14 09:47:31 -0400
committerThomas Gleixner <tglx@linutronix.de>2009-08-15 04:55:46 -0400
commitd4f587c67fc39e0030ddd718675e252e208da4d7 (patch)
tree2222681c57966cc6b8404afdff3ab1a09ac7ea69 /arch/powerpc/kernel
parent75c5158f70c065b9704b924503d96e8297838f79 (diff)
timekeeping: Increase granularity of read_persistent_clock()
The persistent clock of some architectures (e.g. s390) have a better granularity than seconds. To reduce the delta between the host clock and the guest clock in a virtualized system change the read_persistent_clock function to return a struct timespec. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Ingo Molnar <mingo@elte.hu> Acked-by: John Stultz <johnstul@us.ibm.com> Cc: Daniel Walker <dwalker@fifo99.com> LKML-Reference: <20090814134811.013873340@de.ibm.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r--arch/powerpc/kernel/time.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index eae4511ceeac..ad63f30fe3da 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -769,7 +769,7 @@ int update_persistent_clock(struct timespec now)
769 return ppc_md.set_rtc_time(&tm); 769 return ppc_md.set_rtc_time(&tm);
770} 770}
771 771
772unsigned long read_persistent_clock(void) 772void read_persistent_clock(struct timespec *ts)
773{ 773{
774 struct rtc_time tm; 774 struct rtc_time tm;
775 static int first = 1; 775 static int first = 1;
@@ -787,8 +787,9 @@ unsigned long read_persistent_clock(void)
787 if (!ppc_md.get_rtc_time) 787 if (!ppc_md.get_rtc_time)
788 return 0; 788 return 0;
789 ppc_md.get_rtc_time(&tm); 789 ppc_md.get_rtc_time(&tm);
790 return mktime(tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday, 790 ts->tv_sec = mktime(tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday,
791 tm.tm_hour, tm.tm_min, tm.tm_sec); 791 tm.tm_hour, tm.tm_min, tm.tm_sec);
792 ts->tv_nsec = 0;
792} 793}
793 794
794/* clocksource code */ 795/* clocksource code */