[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [HVM] Remove a duplicated range checking in vioapic_set_irq.



# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID 2d20b54322535f8d64696e3b7f0feaf2207a244b
# Parent  814fbacfafc63d6e187560142a33d2d0d031b09d
[HVM] Remove a duplicated range checking in vioapic_set_irq.
Since irq range checking has already been done at the
beginning of this function.

Signed-off-by: Xin Li <xin.b.li@xxxxxxxxx>
---
 xen/arch/x86/hvm/vioapic.c |   28 +++++++++++++---------------
 1 files changed, 13 insertions(+), 15 deletions(-)

diff -r 814fbacfafc6 -r 2d20b5432253 xen/arch/x86/hvm/vioapic.c
--- a/xen/arch/x86/hvm/vioapic.c        Fri Nov 10 10:30:38 2006 +0000
+++ b/xen/arch/x86/hvm/vioapic.c        Fri Nov 10 10:31:29 2006 +0000
@@ -504,6 +504,7 @@ void vioapic_set_irq(struct domain *d, i
 void vioapic_set_irq(struct domain *d, int irq, int level)
 {
     struct vioapic *vioapic = domain_vioapic(d);
+    uint32_t bit;
 
     HVM_DBG_LOG(DBG_LEVEL_IOAPIC, "ioapic_set_irq "
                 "irq %x level %x\n", irq, level);
@@ -528,22 +529,19 @@ void vioapic_set_irq(struct domain *d, i
                 vioapic->redirtbl[irq].fields.mask,
                 vioapic->redirtbl[irq].fields.dest_id);
 
-    if ( (irq >= 0) && (irq < VIOAPIC_NUM_PINS) )
-    {
-        uint32_t bit = 1 << irq;
-        if ( vioapic->redirtbl[irq].fields.trig_mode == VIOAPIC_LEVEL_TRIG )
-        {
-            if ( level )
-                vioapic->irr |= bit;
-            else
-                vioapic->irr &= ~bit;
-        }
+    bit = 1 << irq;
+    if ( vioapic->redirtbl[irq].fields.trig_mode == VIOAPIC_LEVEL_TRIG )
+    {
+        if ( level )
+            vioapic->irr |= bit;
         else
-        {
-            if ( level )
-                /* XXX No irr clear for edge interrupt */
-                vioapic->irr |= bit;
-        }
+            vioapic->irr &= ~bit;
+    }
+    else
+    {
+        if ( level )
+            /* XXX No irr clear for edge interrupt */
+            vioapic->irr |= bit;
     }
 
     service_ioapic(vioapic);

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.