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

[Xen-changelog] [xen-unstable] [HVM] vlapic: No use of domain_crash_synchronous().



# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID e821c15b7cfeacbc6eac6e506f8fc1748b98a418
# Parent  fda15861731e39f27d3423c31a0220c2fe2f1efb
[HVM] vlapic: No use of domain_crash_synchronous().
The safer domain_crash() is sufficient.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 xen/arch/x86/hvm/vlapic.c |   25 ++++++++++++++++---------
 1 files changed, 16 insertions(+), 9 deletions(-)

diff -r fda15861731e -r e821c15b7cfe xen/arch/x86/hvm/vlapic.c
--- a/xen/arch/x86/hvm/vlapic.c Fri Nov 10 18:20:49 2006 +0000
+++ b/xen/arch/x86/hvm/vlapic.c Fri Nov 10 18:27:35 2006 +0000
@@ -322,7 +322,7 @@ static int vlapic_accept_irq(struct vcpu
         if ( test_and_clear_bit(_VCPUF_initialised, &v->vcpu_flags) )
         {
             gdprintk(XENLOG_ERR, "Reset hvm vcpu not supported yet\n");
-            domain_crash_synchronous();
+            goto exit_and_crash;
         }
         v->arch.hvm_vcpu.init_sipi_sipi_state =
             HVM_VCPU_INIT_SIPI_SIPI_STATE_WAIT_SIPI;
@@ -340,7 +340,7 @@ static int vlapic_accept_irq(struct vcpu
         if ( test_bit(_VCPUF_initialised, &v->vcpu_flags) )
         {
             gdprintk(XENLOG_ERR, "SIPI for initialized vcpu %x\n", v->vcpu_id);
-            domain_crash_synchronous();
+            goto exit_and_crash;
         }
 
         if ( hvm_bringup_ap(v->vcpu_id, vector) != 0 )
@@ -350,11 +350,14 @@ static int vlapic_accept_irq(struct vcpu
     default:
         gdprintk(XENLOG_ERR, "TODO: unsupported delivery mode %x\n",
                  delivery_mode);
-        domain_crash_synchronous();
-        break;
+        goto exit_and_crash;
     }
 
     return result;
+
+ exit_and_crash:
+    domain_crash(v->domain);
+    return 0;
 }
 
 /* This function is used by both ioapic and lapic.The bitmap is for vcpu_id. */
@@ -568,14 +571,17 @@ static unsigned long vlapic_read(struct 
     default:
         gdprintk(XENLOG_ERR, "Local APIC read with len=0x%lx, "
                  "should be 4 instead.\n", len);
-        domain_crash_synchronous();
-        break;
+        goto exit_and_crash;
     }
 
     HVM_DBG_LOG(DBG_LEVEL_VLAPIC, "offset 0x%x with length 0x%lx, "
                 "and the result is 0x%lx.", offset, len, result);
 
     return result;
+
+ exit_and_crash:
+    domain_crash(v->domain);
+    return 0;
 }
 
 static void vlapic_write(struct vcpu *v, unsigned long address,
@@ -615,7 +621,7 @@ static void vlapic_write(struct vcpu *v,
             {
                 gdprintk(XENLOG_ERR, "Uneven alignment error for "
                          "2-byte vlapic access\n");
-                domain_crash_synchronous();
+                goto exit_and_crash;
             }
 
             val = (tmp & ~(0xffff << (8*alignment))) |
@@ -625,8 +631,9 @@ static void vlapic_write(struct vcpu *v,
         default:
             gdprintk(XENLOG_ERR, "Local APIC write with len = %lx, "
                      "should be 4 instead\n", len);
-            domain_crash_synchronous();
-            break;
+        exit_and_crash:
+            domain_crash(v->domain);
+            return;
         }
     }
 

_______________________________________________
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®.