Messages in this thread | | | Subject | Re: [PATCH] x86: avoid modifying global flag tsc_unstable in unsychronized_tsc() | From | Alok Kataria <> | Date | Mon, 12 Oct 2009 18:21:39 -0700 |
| |
On Mon, 2009-10-12 at 07:22 -0700, Hillier, Gernot wrote: > From: Gernot Hillier <gernot.hillier@siemens.com> > > The current behavior of unsynchronized_tsc() prevents the warning for > unsychronized TSCs to be printed: tsc_init() calls unsynchronized_tsc() > first to check for such problems; if found, mark_tsc_unstable() is > called. However, the latter bails out immediately as unsynchronized_ > tsc() did already set the global flag tsc_unstable. Thus, the intended > warning message "Marking TSC unstable due to TSCs unsynchronized" won't > show up. > > This patch changes the behavior for unsynchronized_tsc() to only *check* > for the quirk condition, but not to modify any global flags. If I'm not > mistaken, the only place to *set* the flag shall be mark_tsc_unstable().
Yes, you are right. The patch looks good to me.
Thanks, Alok
> > Signed-off-by: Gernot Hillier <gernot.hillier@siemens.com> > Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com> > Reviewed-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com> > > diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c > index cd982f4..ffbb786 100644 > --- a/arch/x86/kernel/tsc.c > +++ b/arch/x86/kernel/tsc.c > @@ -836,10 +836,10 @@ __cpuinit int unsynchronized_tsc(void) > if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) { > /* assume multi socket systems are not synchronized: */ > if (num_possible_cpus() > 1) > - tsc_unstable = 1; > + return 1; > } > > - return tsc_unstable; > + return 0; > } > > static void __init init_tsc_clocksource(void) >
| |