diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2009-08-14 09:47:31 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-08-15 04:55:46 -0400 |
commit | d4f587c67fc39e0030ddd718675e252e208da4d7 (patch) | |
tree | 2222681c57966cc6b8404afdff3ab1a09ac7ea69 /arch/powerpc/kernel | |
parent | 75c5158f70c065b9704b924503d96e8297838f79 (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.c | 7 |
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 | ||
772 | unsigned long read_persistent_clock(void) | 772 | void 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 */ |