Fix a race in the initialization of HPET, which might result in a 
5 minute lockup on boot.

Signed-off-by: Jiri Bohac <[EMAIL PROTECTED]>

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);
+
+               while (hpet_readl(HPET_COUNTER) <  trigger)
                        /* do nothing */ ;
        } else {
                int c1, c2;

--
-
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/

Reply via email to