From: Jan Beulich Date: Tue, 15 Mar 2011 10:02:36 +0000 (+0000) Subject: x86/HPET: fix oversight in 23033:84bacd800bf8 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=436308d761e9f1a580f35cc69abb4d594b6fe4fb;p=xen.git x86/HPET: fix oversight in 23033:84bacd800bf8 Clearly for the adjusted BUG_ON()s to not yield false positives num_chs_used must be incremented before setting up an IRQ (and decremented back when the setup failed). Signed-off-by: Jan Beulich --- diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c index b5301c59c2..987a9ff8ce 100644 --- a/xen/arch/x86/hpet.c +++ b/xen/arch/x86/hpet.c @@ -428,10 +428,8 @@ static unsigned int __init hpet_fsb_cap_lookup(void) ch->flags = 0; ch->idx = i; - if ( (ch->irq = hpet_assign_irq(num_chs_used)) < 0 ) - continue; - - num_chs_used++; + if ( (ch->irq = hpet_assign_irq(num_chs_used++)) < 0 ) + num_chs_used--; } printk(XENLOG_INFO "HPET: %u timers (%u will be used for broadcast)\n",