From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751754AbXBALMe (ORCPT ); Thu, 1 Feb 2007 06:12:34 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751751AbXBALMe (ORCPT ); Thu, 1 Feb 2007 06:12:34 -0500 Received: from styx.suse.cz ([82.119.242.94]:53741 "EHLO mail.suse.cz" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751721AbXBALMd (ORCPT ); Thu, 1 Feb 2007 06:12:33 -0500 X-Greylist: delayed 1247 seconds by postgrey-1.27 at vger.kernel.org; Thu, 01 Feb 2007 06:12:33 EST Message-Id: <20070201103753.357427000@jet.suse.cz> References: <20070201095952.589234000@jet.suse.cz> User-Agent: quilt/0.44-16.5 Date: Thu, 01 Feb 2007 10:59:53 +0100 From: jbohac@suse.cz To: Andi Kleen Cc: linux-kernel@vger.kernel.org, Jiri Bohac , Vojtech Pavlik , ssouhlal@freebsd.org, arjan@infradead.org, tglx@linutronix.de, johnstul@us.ibm.com, zippel@linux-m68k.org, andrea@suse.de Subject: [patch 1/9] Fix HPET init race Content-Disposition: inline; filename=fix_hpet_init_race Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Fix a race in the initialization of HPET, which might result in a 5 minute lockup on boot. Signed-off-by: Jiri Bohac 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; --