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>
This commit is contained in:

committed by
Thomas Gleixner

parent
75c5158f70
commit
d4f587c67f
@@ -87,19 +87,26 @@ enum swarm_rtc_type {
|
||||
|
||||
enum swarm_rtc_type swarm_rtc_type;
|
||||
|
||||
unsigned long read_persistent_clock(void)
|
||||
void read_persistent_clock(struct timespec *ts)
|
||||
{
|
||||
unsigned long sec;
|
||||
|
||||
switch (swarm_rtc_type) {
|
||||
case RTC_XICOR:
|
||||
return xicor_get_time();
|
||||
sec = xicor_get_time();
|
||||
break;
|
||||
|
||||
case RTC_M4LT81:
|
||||
return m41t81_get_time();
|
||||
sec = m41t81_get_time();
|
||||
break;
|
||||
|
||||
case RTC_NONE:
|
||||
default:
|
||||
return mktime(2000, 1, 1, 0, 0, 0);
|
||||
sec = mktime(2000, 1, 1, 0, 0, 0);
|
||||
break;
|
||||
}
|
||||
ts->tv_sec = sec;
|
||||
tv->tv_nsec = 0;
|
||||
}
|
||||
|
||||
int rtc_mips_set_time(unsigned long sec)
|
||||
|
Reference in New Issue
Block a user