lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 12 Jun 2014 07:45:36 +0000 From: "Li.Xiubo@...escale.com" <Li.Xiubo@...escale.com> To: Stephen Boyd <sboyd@...eaurora.org> CC: Marc Zyngier <Marc.Zyngier@....com>, "tglx@...utronix.de" <tglx@...utronix.de>, "daniel.lezcano@...aro.org" <daniel.lezcano@...aro.org>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, "linux-arm-kernel@...ts.infradead.org" <linux-arm-kernel@...ts.infradead.org> Subject: RE: [PATCH] clocksource: arch_arm_timer: Fix timecounter initialization > > drivers/clocksource/arm_arch_timer.c | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/clocksource/arm_arch_timer.c > b/drivers/clocksource/arm_arch_timer.c > > index 5163ec1..6c3cfd8 100644 > > --- a/drivers/clocksource/arm_arch_timer.c > > +++ b/drivers/clocksource/arm_arch_timer.c > > @@ -426,7 +426,7 @@ struct timecounter *arch_timer_get_timecounter(void) > > > > static void __init arch_counter_register(unsigned type) > > { > > - u64 start_count; > > + u64 start_count, start_ns; > > > > /* Register the CP15 based counter if we have one */ > > if (type & ARCH_CP15_TIMER) > > @@ -438,7 +438,8 @@ static void __init arch_counter_register(unsigned type) > > clocksource_register_hz(&clocksource_counter, arch_timer_rate); > > cyclecounter.mult = clocksource_counter.mult; > > cyclecounter.shift = clocksource_counter.shift; > > - timecounter_init(&timecounter, &cyclecounter, start_count); > > + start_ns = cyclecounter_cyc2ns(&cyclecounter, start_count); > > + timecounter_init(&timecounter, &cyclecounter, start_ns); > > > > /* 56 bits minimum, so we assume worst case rollover */ > > sched_clock_register(arch_timer_read_counter, 56, arch_timer_rate); > > This doesn't make much sense. We're converting start_count, which could > be a very large number, into nanoseconds. It looks like we're assuming > the counter always starts at 0 which is not always true if you sit in a > bootloader for a long time. Yes, the counter here may usually start counting at bootloader time from zero. > Perhaps it would be better to just do > > timecounter_init(&timecounter, &cyclecounter, 0); > > or > > timecounter_init(&timecounter, &cyclecounter, > ktime_to_ns(ktime_get_real())); > Here the ktime_get_real() will always return 0, before setting the system clock, Like: "rtc-ds3232 1-0068: setting system clock to 2014-06-12 13:01:24 UTC (1402578084)" And if so, why not just set it to 0 ? And by the way, 0 is must here ? Thanks, BRs Xiubo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists