/* If we can't use the TSC, the kernel falls back to our lower-priority "lguest_clock", where we read the time value given to us by the Host.  */
static cycle_t lguest_clock_read(struct clocksource *cs)
/* If we can't use the TSC, the kernel falls back to our lower-priority "lguest_clock", where we read the time value given to us by the Host.  */
static cycle_t lguest_clock_read(struct clocksource *cs)
{
	unsigned long sec, nsec;
	do {
		sec = lguest_data.time.tv_sec;
		rmb();
		nsec = lguest_data.time.tv_nsec;
		rmb();
	} while (unlikely(lguest_data.time.tv_sec != sec));
	return sec*1000000000ULL + nsec;
}