WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Xen

xen-devel

[Top] [All Lists]

[Xen-devel] [PATCH] x86/HPET: fix oversight in 23033:84bacd800bf8 (2nd t

To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] x86/HPET: fix oversight in 23033:84bacd800bf8 (2nd try)
From: "Jan Beulich" <JBeulich@xxxxxxxxxx>
Date: 2011年3月17日 11:43:34 +0000
Delivery-date: 2011年3月17日 04:44:14 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Clearly for the adjusted BUG_ON()s to not yield false positives
num_hpets_used (rather than num_chs_used, as done mistakenly in
23042:599ceb5b0a9b) must be incremented before setting up an IRQ (and
decremented back when the setup failed). To avoid further confusion,
just eliminate the local variable altogether.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -392,17 +392,17 @@ static int __init hpet_assign_irq(unsign
 return irq;
 }
 
-static unsigned int __init hpet_fsb_cap_lookup(void)
+static void __init hpet_fsb_cap_lookup(void)
 {
 u32 id;
- unsigned int i, num_chs, num_chs_used;
+ unsigned int i, num_chs;
 
 /* TODO. */
 if ( iommu_intremap )
 {
 printk(XENLOG_INFO "HPET's MSI mode hasn't been supported when "
 "Interrupt Remapping is enabled.\n");
- return 0;
+ return;
 }
 
 id = hpet_read32(HPET_ID);
@@ -412,13 +412,12 @@ static unsigned int __init hpet_fsb_cap_
 
 hpet_events = xmalloc_array(struct hpet_event_channel, num_chs);
 if ( !hpet_events )
- return 0;
+ return;
 memset(hpet_events, 0, num_chs * sizeof(*hpet_events));
 
- num_chs_used = 0;
 for ( i = 0; i < num_chs; i++ )
 {
- struct hpet_event_channel *ch = &hpet_events[num_chs_used];
+ struct hpet_event_channel *ch = &hpet_events[num_hpets_used];
 u32 cfg = hpet_read32(HPET_Tn_CFG(i));
 
 /* Only consider HPET timer with MSI support */
@@ -428,14 +427,12 @@ static unsigned int __init hpet_fsb_cap_
 ch->flags = 0;
 ch->idx = i;
 
- if ( (ch->irq = hpet_assign_irq(num_chs_used++)) < 0 )
- num_chs_used--;
+ if ( (ch->irq = hpet_assign_irq(num_hpets_used++)) < 0 )
+ num_hpets_used--;
 }
 
 printk(XENLOG_INFO "HPET: %u timers (%u will be used for broadcast)\n",
- num_chs, num_chs_used);
-
- return num_chs_used;
+ num_chs, num_hpets_used);
 }
 
 static struct hpet_event_channel *hpet_get_channel(unsigned int cpu)
@@ -555,7 +552,7 @@ void __init hpet_broadcast_init(void)
 
 cfg = hpet_read32(HPET_CFG);
 
- num_hpets_used = hpet_fsb_cap_lookup();
+ hpet_fsb_cap_lookup();
 if ( num_hpets_used > 0 )
 {
 /* Stop HPET legacy interrupts */

Attachment: x86-hpet-fix-23042.patch
Description: Text document

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] x86/HPET: fix oversight in 23033:84bacd800bf8 (2nd try), Jan Beulich <=
Previous by Date: Re: [Xen-devel] How to make vfb option work in stubdom , Stefano Stabellini
Next by Date: [Xen-users] Re: [Xen-devel] Kernel panic with 2.6.32-30 under network activity , Jan Beulich
Previous by Thread: [Xen-devel] [PATCH] mce_cleanup , Liu, Jinsong
Next by Thread: [Xen-devel] [linux test] 6540: regressions - trouble: broken/fail/pass , xen . org
Indexes: [Date] [Thread] [Top] [All Lists]

Copyright ©, Citrix Systems Inc. All rights reserved. Legal and Privacy
Citrix This site is hosted by Citrix

AltStyle によって変換されたページ (->オリジナル) /