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

[Xen-changelog] [xen-unstable] [IA64] Remove some legacy debug code.



# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1190042938 21600
# Node ID b5488dee14af39dc57fa68a5f553617c315bf86b
# Parent  ea0b57e35c2cc6d64940a6b9f46fbd2a3da19318
[IA64] Remove some legacy debug code.

Read cpl in priv_handle_op instead of priv_emulate

Signed-off-by: Tristan Gingold <tgingold@xxxxxxx>
---
 xen/arch/ia64/xen/privop.c |   40 ++++++++++------------------------------
 1 files changed, 10 insertions(+), 30 deletions(-)

diff -r ea0b57e35c2c -r b5488dee14af xen/arch/ia64/xen/privop.c
--- a/xen/arch/ia64/xen/privop.c        Wed Sep 12 09:36:36 2007 -0600
+++ b/xen/arch/ia64/xen/privop.c        Mon Sep 17 09:28:58 2007 -0600
@@ -13,10 +13,10 @@
 #include <asm/dom_fw.h>
 #include <asm/vhpt.h>
 #include <asm/bundle.h>
+#include <asm/debugger.h>
 #include <xen/perfc.h>
 
-long priv_verbose = 0;
-unsigned long privop_trace = 0;
+static const long priv_verbose = 0;
 
 /* Set to 1 to handle privified instructions from the privify tool. */
 #ifndef CONFIG_PRIVIFY
@@ -583,7 +583,7 @@ static const PPEFCN Mpriv_funcs[64] = {
        0, 0, 0, 0, 0, 0, 0, 0
 };
 
-static IA64FAULT priv_handle_op(VCPU * vcpu, REGS * regs, int privlvl)
+static IA64FAULT priv_handle_op(VCPU * vcpu, REGS * regs)
 {
        IA64_BUNDLE bundle;
        int slot;
@@ -599,26 +599,8 @@ static IA64FAULT priv_handle_op(VCPU * v
                //return vcpu_force_data_miss(vcpu, regs->cr_iip);
                return vcpu_force_inst_miss(vcpu, regs->cr_iip);
        }
-#if 0
-       if (iip == 0xa000000100001820) {
-               static int firstpagefault = 1;
-               if (firstpagefault) {
-                       printk("*** First time to domain page fault!\n");
-                       firstpagefault = 0;
-               }
-       }
-#endif
-       if (privop_trace) {
-               static long i = 400;
-               //if (i > 0) printk("priv_handle_op: at 0x%lx\n",iip);
-               if (i > 0)
-                       printk("priv_handle_op: privop trace at 0x%lx, "
-                              "itc=%lx, itm=%lx\n",
-                              iip, ia64_get_itc(), ia64_get_itm());
-               i--;
-       }
        slot = ((struct ia64_psr *)&ipsr)->ri;
-       if (!slot)
+       if (slot == 0)
                inst.inst = (bundle.i64[0] >> 5) & MASK_41;
        else if (slot == 1)
                inst.inst =
@@ -626,7 +608,8 @@ static IA64FAULT priv_handle_op(VCPU * v
        else if (slot == 2)
                inst.inst = (bundle.i64[1] >> 23) & MASK_41;
        else
-               printk("priv_handle_op: illegal slot: %d\n", slot);
+               panic_domain(regs,
+                            "priv_handle_op: illegal slot: %d\n", slot);
 
        slot_type = slot_types[bundle.template][slot];
        if (priv_verbose) {
@@ -636,8 +619,9 @@ static IA64FAULT priv_handle_op(VCPU * v
        }
        if (slot_type == B && inst.generic.major == 0 && inst.B8.x6 == 0x0) {
                // break instr for privified cover
-       } else if (privlvl > CONFIG_CPL0_EMUL)
-               return IA64_ILLOP_FAULT;
+       } else if (ia64_get_cpl(ipsr) > CONFIG_CPL0_EMUL)
+               return IA64_ILLOP_FAULT;
+
        switch (slot_type) {
        case M:
                if (inst.generic.major == 0) {
@@ -765,9 +749,7 @@ IA64FAULT priv_emulate(VCPU * vcpu, REGS
 IA64FAULT priv_emulate(VCPU * vcpu, REGS * regs, u64 isr)
 {
        IA64FAULT fault;
-       u64 ipsr = regs->cr_ipsr;
        u64 isrcode = (isr >> 4) & 0xf;
-       int privlvl;
 
        // handle privops masked as illops? and breaks (6)
        if (isrcode != 1 && isrcode != 2 && isrcode != 0 && isrcode != 6) {
@@ -776,10 +758,8 @@ IA64FAULT priv_emulate(VCPU * vcpu, REGS
                while (1) ;
                return IA64_ILLOP_FAULT;
        }
-       //if (isrcode != 1 && isrcode != 2) return 0;
-       privlvl = ia64_get_cpl(ipsr);
        // its OK for a privified-cover to be executed in user-land
-       fault = priv_handle_op(vcpu, regs, privlvl);
+       fault = priv_handle_op(vcpu, regs);
        if ((fault == IA64_NO_FAULT) || (fault == IA64_EXTINT_VECTOR)) {
                // success!!
                // update iip/ipsr to point to the next instruction

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