On Tue, 10 Nov 2015, Arnd Bergmann wrote: > On Tuesday 10 November 2015 11:57:55 Stefano Stabellini wrote: > > + op.u.settime64.nsecs = now.tv_nsec; > > + op.u.settime64.system_time = arch_timer_read_counter() * > > (u64)NSEC_PER_SEC; > > + do_div(op.u.settime64.system_time, arch_timer_get_rate()); > > NSEC_PER_SEC is a large number, doesn't that multiplication overflow the > 64-bit system_time variable?
It could be a concern, you are right. I think I can solve this issue and remove multiple do_divs by calculating nsec_per_tick at initialization time and use it here and in xen_read_wallclock. > > + printk("GTOD: Setting to %llu.%u at %llu\n", > > %llu.%09u > > so you get the leading zeroes. > > > + op.u.settime64.secs, > > + op.u.settime64.nsecs, > > + op.u.settime64.system_time); > > + (void)HYPERVISOR_platform_op(&op); > > Arnd > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/