On Thu, 01 Feb 2007 10:59:53 +0100 [EMAIL PROTECTED] wrote: > Fix a race in the initialization of HPET, which might result in a > 5 minute lockup on boot. >
What race? Please always describe bugs when fixing them. > > Index: linux-2.6.20-rc5/arch/x86_64/kernel/apic.c > =================================================================== > --- linux-2.6.20-rc5.orig/arch/x86_64/kernel/apic.c > +++ linux-2.6.20-rc5/arch/x86_64/kernel/apic.c > @@ -764,10 +767,12 @@ static void setup_APIC_timer(unsigned in > > /* wait for irq slice */ > if (vxtime.hpet_address && hpet_use_timer) { > - int trigger = hpet_readl(HPET_T0_CMP); > - while (hpet_readl(HPET_COUNTER) >= trigger) > - /* do nothing */ ; > - while (hpet_readl(HPET_COUNTER) < trigger) > + int trigger; > + do > + trigger = hpet_readl(HPET_T0_CMP); > + while (hpet_readl(HPET_COUNTER) >= trigger); > + Is this signedness-safe and wraparound-safe? It might be better to make `trigger' unsigned and do while (hpet_readl(HPET_COUNTER) - trigger >= 0) > + while (hpet_readl(HPET_COUNTER) < trigger) > /* do nothing */ ; ditto. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/