ia64/xen-unstable

changeset 4923:a789d0f55020

bitkeeper revision 1.1412 (42885ccdKOtsuAfBT7XZ0YtfvWw5Ig)

Cleanups for printing debug tracing to the console.
Also, rename get_cpu_user_regs -> guest_cpu_user_regs.
Signed-off-by: Keir Fraser <keir@xensource.com>
author kaf24@firebug.cl.cam.ac.uk
date Mon May 16 08:41:49 2005 +0000 (2005-05-16)
parents c5eb6fb70b8a
children 8e3f809f3616 e2f7b51dfa85
files xen/arch/ia64/xenmisc.c xen/arch/x86/domain.c xen/arch/x86/mm.c xen/arch/x86/traps.c xen/arch/x86/vmx_intercept.c xen/arch/x86/vmx_io.c xen/arch/x86/vmx_vmcs.c xen/arch/x86/x86_32/traps.c xen/arch/x86/x86_64/traps.c xen/common/domain.c xen/common/schedule.c xen/drivers/char/console.c xen/include/asm-x86/x86_32/current.h xen/include/asm-x86/x86_64/current.h
line diff
     1.1 --- a/xen/arch/ia64/xenmisc.c	Mon May 16 07:43:46 2005 +0000
     1.2 +++ b/xen/arch/ia64/xenmisc.c	Mon May 16 08:41:49 2005 +0000
     1.3 @@ -72,7 +72,7 @@ void grant_table_destroy(struct domain *
     1.4  	return;
     1.5  }
     1.6  
     1.7 -struct pt_regs *get_cpu_user_regs(void) { return ia64_task_regs(current); }
     1.8 +struct pt_regs *guest_cpu_user_regs(void) { return ia64_task_regs(current); }
     1.9  
    1.10  void raise_actimer_softirq(void)
    1.11  {
     2.1 --- a/xen/arch/x86/domain.c	Mon May 16 07:43:46 2005 +0000
     2.2 +++ b/xen/arch/x86/domain.c	Mon May 16 08:41:49 2005 +0000
     2.3 @@ -607,7 +607,7 @@ static void load_segments(struct exec_do
     2.4  
     2.5      if ( unlikely(!all_segs_okay) )
     2.6      {
     2.7 -        struct cpu_user_regs *regs = get_cpu_user_regs();
     2.8 +        struct cpu_user_regs *regs = guest_cpu_user_regs();
     2.9          unsigned long   *rsp =
    2.10              (n->arch.flags & TF_kernel_mode) ?
    2.11              (unsigned long *)regs->rsp : 
    2.12 @@ -666,7 +666,7 @@ static void clear_segments(void)
    2.13  
    2.14  long do_switch_to_user(void)
    2.15  {
    2.16 -    struct cpu_user_regs  *regs = get_cpu_user_regs();
    2.17 +    struct cpu_user_regs  *regs = guest_cpu_user_regs();
    2.18      struct switch_to_user  stu;
    2.19      struct exec_domain    *ed = current;
    2.20  
    2.21 @@ -715,7 +715,7 @@ static inline void switch_kernel_stack(s
    2.22  
    2.23  static void __context_switch(void)
    2.24  {
    2.25 -    struct cpu_user_regs *stack_regs = get_cpu_user_regs();
    2.26 +    struct cpu_user_regs *stack_regs = guest_cpu_user_regs();
    2.27      unsigned int         cpu = smp_processor_id();
    2.28      struct exec_domain  *p = percpu_ctxt[cpu].curr_ed;
    2.29      struct exec_domain  *n = current;
    2.30 @@ -851,7 +851,7 @@ unsigned long __hypercall_create_continu
    2.31      }
    2.32      else
    2.33      {
    2.34 -        regs       = get_cpu_user_regs();
    2.35 +        regs       = guest_cpu_user_regs();
    2.36  #if defined(__i386__)
    2.37          regs->eax  = op;
    2.38          regs->eip -= 2;  /* re-execute 'int 0x82' */
     3.1 --- a/xen/arch/x86/mm.c	Mon May 16 07:43:46 2005 +0000
     3.2 +++ b/xen/arch/x86/mm.c	Mon May 16 08:41:49 2005 +0000
     3.3 @@ -2836,7 +2836,7 @@ int ptwr_do_page_fault(struct domain *d,
     3.4      return EXCRET_fault_fixed;
     3.5  
     3.6   emulate:
     3.7 -    if ( x86_emulate_memop(get_cpu_user_regs(), addr,
     3.8 +    if ( x86_emulate_memop(guest_cpu_user_regs(), addr,
     3.9                             &ptwr_mem_emulator, BITS_PER_LONG/8) )
    3.10          return 0;
    3.11      perfc_incrc(ptwr_emulations);
     4.1 --- a/xen/arch/x86/traps.c	Mon May 16 07:43:46 2005 +0000
     4.2 +++ b/xen/arch/x86/traps.c	Mon May 16 08:41:49 2005 +0000
     4.3 @@ -90,6 +90,97 @@ asmlinkage void alignment_check(void);
     4.4  asmlinkage void spurious_interrupt_bug(void);
     4.5  asmlinkage void machine_check(void);
     4.6  
     4.7 +static int debug_stack_lines = 20;
     4.8 +integer_param("debug_stack_lines", debug_stack_lines);
     4.9 +
    4.10 +static inline int kernel_text_address(unsigned long addr)
    4.11 +{
    4.12 +    if (addr >= (unsigned long) &_stext &&
    4.13 +        addr <= (unsigned long) &_etext)
    4.14 +        return 1;
    4.15 +    return 0;
    4.16 +
    4.17 +}
    4.18 +
    4.19 +void show_guest_stack(void)
    4.20 +{
    4.21 +    int i;
    4.22 +    struct cpu_user_regs *regs = guest_cpu_user_regs();
    4.23 +    unsigned long *stack = (unsigned long *)regs->esp, addr;
    4.24 +
    4.25 +    printk("Guest stack trace from "__OP"sp=%p:\n   ", stack);
    4.26 +
    4.27 +    for ( i = 0; i < (debug_stack_lines*8); i++ )
    4.28 +    {
    4.29 +        if ( ((long)stack & (STACK_SIZE-1)) == 0 )
    4.30 +            break;
    4.31 +        if ( get_user(addr, stack) )
    4.32 +        {
    4.33 +            if ( i != 0 )
    4.34 +                printk("\n    ");
    4.35 +            printk("Fault while accessing guest memory.");
    4.36 +            i = 1;
    4.37 +            break;
    4.38 +        }
    4.39 +        if ( (i != 0) && ((i % 8) == 0) )
    4.40 +            printk("\n   ");
    4.41 +        printk("%p ", _p(addr));
    4.42 +        stack++;
    4.43 +    }
    4.44 +    if ( i == 0 )
    4.45 +        printk("Stack empty.");
    4.46 +    printk("\n");
    4.47 +}
    4.48 +
    4.49 +void show_trace(unsigned long *esp)
    4.50 +{
    4.51 +    unsigned long *stack = esp, addr;
    4.52 +    int i = 0;
    4.53 +
    4.54 +    printk("Xen call trace from "__OP"sp=%p:\n   ", stack);
    4.55 +
    4.56 +    while ( ((long) stack & (STACK_SIZE-1)) != 0 )
    4.57 +    {
    4.58 +        addr = *stack++;
    4.59 +        if ( kernel_text_address(addr) )
    4.60 +        {
    4.61 +            if ( (i != 0) && ((i % 6) == 0) )
    4.62 +                printk("\n   ");
    4.63 +            printk("[<%p>] ", _p(addr));
    4.64 +            i++;
    4.65 +        }
    4.66 +    }
    4.67 +    if ( i == 0 )
    4.68 +        printk("Trace empty.");
    4.69 +    printk("\n");
    4.70 +}
    4.71 +
    4.72 +void show_stack(unsigned long *esp)
    4.73 +{
    4.74 +    unsigned long *stack = esp, addr;
    4.75 +    int i;
    4.76 +
    4.77 +    printk("Xen stack trace from "__OP"sp=%p:\n   ", stack);
    4.78 +
    4.79 +    for ( i = 0; i < (debug_stack_lines*8); i++ )
    4.80 +    {
    4.81 +        if ( ((long)stack & (STACK_SIZE-1)) == 0 )
    4.82 +            break;
    4.83 +        if ( (i != 0) && ((i % 8) == 0) )
    4.84 +            printk("\n   ");
    4.85 +        addr = *stack++;
    4.86 +        if ( kernel_text_address(addr) )
    4.87 +            printk("[%p] ", _p(addr));
    4.88 +        else
    4.89 +            printk("%p ", _p(addr));
    4.90 +    }
    4.91 +    if ( i == 0 )
    4.92 +        printk("Stack empty.");
    4.93 +    printk("\n");
    4.94 +
    4.95 +    show_trace(esp);
    4.96 +}
    4.97 +
    4.98  /*
    4.99   * This is called for faults at very unexpected times (e.g., when interrupts
   4.100   * are disabled). In such situations we can't do much that is safe. We try to
     5.1 --- a/xen/arch/x86/vmx_intercept.c	Mon May 16 07:43:46 2005 +0000
     5.2 +++ b/xen/arch/x86/vmx_intercept.c	Mon May 16 08:41:49 2005 +0000
     5.3 @@ -140,7 +140,7 @@ static int pit_read_io(struct vmx_virpit
     5.4  /* vmx_io_assist light-weight version, specific to PIT DM */ 
     5.5  static void resume_pit_io(ioreq_t *p)
     5.6  {
     5.7 -    struct cpu_user_regs *regs = get_cpu_user_regs();
     5.8 +    struct cpu_user_regs *regs = guest_cpu_user_regs();
     5.9      unsigned long old_eax = regs->eax;
    5.10      p->state = STATE_INVALID;
    5.11  
     6.1 --- a/xen/arch/x86/vmx_io.c	Mon May 16 07:43:46 2005 +0000
     6.2 +++ b/xen/arch/x86/vmx_io.c	Mon May 16 08:41:49 2005 +0000
     6.3 @@ -187,7 +187,7 @@ void vmx_io_assist(struct exec_domain *e
     6.4      vcpu_iodata_t *vio;
     6.5      ioreq_t *p;
     6.6      struct domain *d = ed->domain;
     6.7 -    struct cpu_user_regs *regs = get_cpu_user_regs();
     6.8 +    struct cpu_user_regs *regs = guest_cpu_user_regs();
     6.9      unsigned long old_eax;
    6.10      int sign;
    6.11      struct mi_per_cpu_info *mpci_p;
     7.1 --- a/xen/arch/x86/vmx_vmcs.c	Mon May 16 07:43:46 2005 +0000
     7.2 +++ b/xen/arch/x86/vmx_vmcs.c	Mon May 16 08:41:49 2005 +0000
     7.3 @@ -162,7 +162,7 @@ void vmx_do_launch(struct exec_domain *e
     7.4      struct Xgt_desc_struct desc;
     7.5      unsigned long pfn = 0;
     7.6      struct pfn_info *page;
     7.7 -    struct cpu_user_regs *regs = get_cpu_user_regs();
     7.8 +    struct cpu_user_regs *regs = guest_cpu_user_regs();
     7.9  
    7.10      vmx_stts();
    7.11      set_bit(_VCPUF_guest_stts, &ed->vcpu_flags);
     8.1 --- a/xen/arch/x86/x86_32/traps.c	Mon May 16 07:43:46 2005 +0000
     8.2 +++ b/xen/arch/x86/x86_32/traps.c	Mon May 16 08:41:49 2005 +0000
     8.3 @@ -15,81 +15,6 @@
     8.4  /* All CPUs have their own IDT to allow set_fast_trap(). */
     8.5  idt_entry_t *idt_tables[NR_CPUS] = { 0 };
     8.6  
     8.7 -static int kstack_depth_to_print = 8*20;
     8.8 -
     8.9 -static inline int kernel_text_address(unsigned long addr)
    8.10 -{
    8.11 -    if (addr >= (unsigned long) &_stext &&
    8.12 -        addr <= (unsigned long) &_etext)
    8.13 -        return 1;
    8.14 -    return 0;
    8.15 -
    8.16 -}
    8.17 -
    8.18 -void show_guest_stack(void)
    8.19 -{
    8.20 -    int i;
    8.21 -    struct cpu_user_regs *regs = get_cpu_user_regs();
    8.22 -    unsigned long *stack = (unsigned long *)regs->esp;
    8.23 -
    8.24 -    printk("Guest EIP is %08x\n   ", regs->eip);
    8.25 -
    8.26 -    for ( i = 0; i < kstack_depth_to_print; i++ )
    8.27 -    {
    8.28 -        if ( ((long)stack & (STACK_SIZE-1)) == 0 )
    8.29 -            break;
    8.30 -        if ( i && ((i % 8) == 0) )
    8.31 -            printk("\n   ");
    8.32 -        printk("%08lx ", *stack++);
    8.33 -    }
    8.34 -    printk("\n");
    8.35 -    
    8.36 -}
    8.37 -
    8.38 -void show_trace(unsigned long *esp)
    8.39 -{
    8.40 -    unsigned long *stack, addr;
    8.41 -    int i;
    8.42 -
    8.43 -    printk("Call Trace from ESP=%p:\n   ", esp);
    8.44 -    stack = esp;
    8.45 -    i = 0;
    8.46 -    while (((long) stack & (STACK_SIZE-1)) != 0) {
    8.47 -        addr = *stack++;
    8.48 -        if (kernel_text_address(addr)) {
    8.49 -            if (i && ((i % 6) == 0))
    8.50 -                printk("\n   ");
    8.51 -            printk("[<%08lx>] ", addr);
    8.52 -            i++;
    8.53 -        }
    8.54 -    }
    8.55 -    printk("\n");
    8.56 -}
    8.57 -
    8.58 -void show_stack(unsigned long *esp)
    8.59 -{
    8.60 -    unsigned long *stack;
    8.61 -    int i;
    8.62 -
    8.63 -    printk("Stack trace from ESP=%p:\n   ", esp);
    8.64 -
    8.65 -    stack = esp;
    8.66 -    for ( i = 0; i < kstack_depth_to_print; i++ )
    8.67 -    {
    8.68 -        if ( ((long)stack & (STACK_SIZE-1)) == 0 )
    8.69 -            break;
    8.70 -        if ( i && ((i % 8) == 0) )
    8.71 -            printk("\n   ");
    8.72 -        if ( kernel_text_address(*stack) )
    8.73 -            printk("[%08lx] ", *stack++);
    8.74 -        else
    8.75 -            printk("%08lx ", *stack++);
    8.76 -    }
    8.77 -    printk("\n");
    8.78 -
    8.79 -    show_trace( esp );
    8.80 -}
    8.81 -
    8.82  void show_registers(struct cpu_user_regs *regs)
    8.83  {
    8.84      unsigned long ss, ds, es, fs, gs, cs;
     9.1 --- a/xen/arch/x86/x86_64/traps.c	Mon May 16 07:43:46 2005 +0000
     9.2 +++ b/xen/arch/x86/x86_64/traps.c	Mon May 16 08:41:49 2005 +0000
     9.3 @@ -10,81 +10,6 @@
     9.4  #include <xen/sched.h>
     9.5  #include <asm/msr.h>
     9.6  
     9.7 -static int kstack_depth_to_print = 8*20;
     9.8 -
     9.9 -static inline int kernel_text_address(unsigned long addr)
    9.10 -{
    9.11 -    if (addr >= (unsigned long) &_stext &&
    9.12 -        addr <= (unsigned long) &_etext)
    9.13 -        return 1;
    9.14 -    return 0;
    9.15 -
    9.16 -}
    9.17 -
    9.18 -void show_guest_stack(void)
    9.19 -{
    9.20 -    int i;
    9.21 -    struct cpu_user_regs *regs = get_cpu_user_regs();
    9.22 -    unsigned long *stack = (unsigned long *)regs->rsp;
    9.23 -
    9.24 -    printk("Guest RIP is %016lx\n   ", regs->rip);
    9.25 -
    9.26 -    for ( i = 0; i < kstack_depth_to_print; i++ )
    9.27 -    {
    9.28 -        if ( ((long)stack & (STACK_SIZE-1)) == 0 )
    9.29 -            break;
    9.30 -        if ( i && ((i % 8) == 0) )
    9.31 -            printk("\n    ");
    9.32 -            printk("%016lx ", *stack++);
    9.33 -    }
    9.34 -    printk("\n");
    9.35 -    
    9.36 -}
    9.37 -
    9.38 -void show_trace(unsigned long *rsp)
    9.39 -{
    9.40 -    unsigned long *stack, addr;
    9.41 -    int i;
    9.42 -
    9.43 -    printk("Call Trace from RSP=%p:\n   ", rsp);
    9.44 -    stack = rsp;
    9.45 -    i = 0;
    9.46 -    while (((long) stack & (STACK_SIZE-1)) != 0) {
    9.47 -        addr = *stack++;
    9.48 -        if (kernel_text_address(addr)) {
    9.49 -            if (i && ((i % 6) == 0))
    9.50 -                printk("\n   ");
    9.51 -            printk("[<%016lx>] ", addr);
    9.52 -            i++;
    9.53 -        }
    9.54 -    }
    9.55 -    printk("\n");
    9.56 -}
    9.57 -
    9.58 -void show_stack(unsigned long *rsp)
    9.59 -{
    9.60 -    unsigned long *stack;
    9.61 -    int i;
    9.62 -
    9.63 -    printk("Stack trace from RSP=%p:\n    ", rsp);
    9.64 -
    9.65 -    stack = rsp;
    9.66 -    for ( i = 0; i < kstack_depth_to_print; i++ )
    9.67 -    {
    9.68 -        if ( ((long)stack & (STACK_SIZE-1)) == 0 )
    9.69 -            break;
    9.70 -        if ( i && ((i % 8) == 0) )
    9.71 -            printk("\n    ");
    9.72 -        if ( kernel_text_address(*stack) )
    9.73 -            printk("[%016lx] ", *stack++);
    9.74 -        else
    9.75 -            printk("%016lx ", *stack++);            
    9.76 -    }
    9.77 -    printk("\n");
    9.78 -
    9.79 -    show_trace(rsp);
    9.80 -}
    9.81 -
    9.82  void show_registers(struct cpu_user_regs *regs)
    9.83  {
    9.84      printk("CPU:    %d\nEIP:    %04lx:[<%016lx>]      \nEFLAGS: %016lx\n",
    9.85 @@ -99,6 +24,8 @@ void show_registers(struct cpu_user_regs
    9.86             regs->r12, regs->r13, regs->r14, regs->r15);
    9.87  
    9.88      show_stack((unsigned long *)regs->rsp);
    9.89 +    if ( GUEST_MODE(regs) )
    9.90 +        show_guest_stack();
    9.91  } 
    9.92  
    9.93  void show_page_walk(unsigned long addr)
    10.1 --- a/xen/common/domain.c	Mon May 16 07:43:46 2005 +0000
    10.2 +++ b/xen/common/domain.c	Mon May 16 08:41:49 2005 +0000
    10.3 @@ -122,7 +122,10 @@ void domain_crash(void)
    10.4      struct domain *d = current->domain;
    10.5  
    10.6      if ( d->domain_id == 0 )
    10.7 -        BUG();
    10.8 +    {
    10.9 +        show_registers(guest_cpu_user_regs());
   10.10 +        panic("Domain 0 crashed!\n");
   10.11 +    }
   10.12  
   10.13      set_bit(_DOMF_crashed, &d->domain_flags);
   10.14  
    11.1 --- a/xen/common/schedule.c	Mon May 16 07:43:46 2005 +0000
    11.2 +++ b/xen/common/schedule.c	Mon May 16 08:41:49 2005 +0000
    11.3 @@ -282,7 +282,6 @@ long do_sched_op(unsigned long op)
    11.4  
    11.5      switch ( op & SCHEDOP_cmdmask ) 
    11.6      {
    11.7 -
    11.8      case SCHEDOP_yield:
    11.9      {
   11.10          ret = do_yield();
   11.11 @@ -297,7 +296,8 @@ long do_sched_op(unsigned long op)
   11.12  
   11.13      case SCHEDOP_shutdown:
   11.14      {
   11.15 -        TRACE_3D(TRC_SCHED_SHUTDOWN, current->domain->domain_id, current->vcpu_id,
   11.16 +        TRACE_3D(TRC_SCHED_SHUTDOWN,
   11.17 +                 current->domain->domain_id, current->vcpu_id,
   11.18                   (op >> SCHEDOP_reasonshift));
   11.19          domain_shutdown((u8)(op >> SCHEDOP_reasonshift));
   11.20          break;
    12.1 --- a/xen/drivers/char/console.c	Mon May 16 07:43:46 2005 +0000
    12.2 +++ b/xen/drivers/char/console.c	Mon May 16 08:41:49 2005 +0000
    12.3 @@ -496,6 +496,7 @@ int debugtrace_send_to_console;
    12.4  static char        *debugtrace_buf; /* Debug-trace buffer */
    12.5  static unsigned int debugtrace_prd; /* Producer index     */
    12.6  static unsigned int debugtrace_kilobytes = 128, debugtrace_bytes;
    12.7 +static unsigned int debugtrace_used;
    12.8  static spinlock_t   debugtrace_lock = SPIN_LOCK_UNLOCKED;
    12.9  integer_param("debugtrace", debugtrace_kilobytes);
   12.10  
   12.11 @@ -504,7 +505,7 @@ void debugtrace_dump(void)
   12.12      int _watchdog_on = watchdog_on;
   12.13      unsigned long flags;
   12.14  
   12.15 -    if ( debugtrace_bytes == 0 )
   12.16 +    if ( (debugtrace_bytes == 0) || !debugtrace_used )
   12.17          return;
   12.18  
   12.19      /* Watchdog can trigger if we print a really large buffer. */
   12.20 @@ -542,6 +543,8 @@ void debugtrace_printk(const char *fmt, 
   12.21      if ( debugtrace_bytes == 0 )
   12.22          return;
   12.23  
   12.24 +    debugtrace_used = 1;
   12.25 +
   12.26      spin_lock_irqsave(&debugtrace_lock, flags);
   12.27  
   12.28      ASSERT(debugtrace_buf[debugtrace_bytes - 1] == 0);
   12.29 @@ -608,7 +611,7 @@ static int __init debugtrace_init(void)
   12.30  void panic(const char *fmt, ...)
   12.31  {
   12.32      va_list args;
   12.33 -    char buf[128];
   12.34 +    char buf[128], cpustr[10];
   12.35      unsigned long flags;
   12.36      extern void machine_restart(char *);
   12.37      
   12.38 @@ -623,11 +626,11 @@ void panic(const char *fmt, ...)
   12.39      /* Spit out multiline message in one go. */
   12.40      spin_lock_irqsave(&console_lock, flags);
   12.41      __putstr("\n****************************************\n");
   12.42 +    __putstr("Panic on CPU");
   12.43 +    sprintf(cpustr, "%d", smp_processor_id());
   12.44 +    __putstr(cpustr);
   12.45 +    __putstr(":\n");
   12.46      __putstr(buf);
   12.47 -    __putstr("Aieee! CPU");
   12.48 -    sprintf(buf, "%d", smp_processor_id());
   12.49 -    __putstr(buf);
   12.50 -    __putstr(" is toast...\n");
   12.51      __putstr("****************************************\n\n");
   12.52      __putstr("Reboot in five seconds...\n");
   12.53      spin_unlock_irqrestore(&console_lock, flags);
    13.1 --- a/xen/include/asm-x86/x86_32/current.h	Mon May 16 07:43:46 2005 +0000
    13.2 +++ b/xen/include/asm-x86/x86_32/current.h	Mon May 16 08:41:49 2005 +0000
    13.3 @@ -23,7 +23,7 @@ static inline void set_current(struct ex
    13.4                : : "r" (STACK_SIZE-4), "r" (ed) );    
    13.5  }
    13.6  
    13.7 -static inline struct cpu_user_regs *get_cpu_user_regs(void)
    13.8 +static inline struct cpu_user_regs *guest_cpu_user_regs(void)
    13.9  {
   13.10      struct cpu_user_regs *cpu_user_regs;
   13.11      __asm__ ( "andl %%esp,%0; addl %2,%0"
   13.12 @@ -49,7 +49,7 @@ static inline unsigned long get_stack_bo
   13.13  #define reset_stack_and_jump(__fn)                                \
   13.14      __asm__ __volatile__ (                                        \
   13.15          "movl %0,%%esp; jmp "STR(__fn)                            \
   13.16 -        : : "r" (get_cpu_user_regs()) )
   13.17 +        : : "r" (guest_cpu_user_regs()) )
   13.18  
   13.19  #define schedule_tail(_ed) ((_ed)->arch.schedule_tail)(_ed)
   13.20  
    14.1 --- a/xen/include/asm-x86/x86_64/current.h	Mon May 16 07:43:46 2005 +0000
    14.2 +++ b/xen/include/asm-x86/x86_64/current.h	Mon May 16 08:41:49 2005 +0000
    14.3 @@ -23,7 +23,7 @@ static inline void set_current(struct ex
    14.4                : : "r" (STACK_SIZE-8), "r" (ed) );    
    14.5  }
    14.6  
    14.7 -static inline struct cpu_user_regs *get_cpu_user_regs(void)
    14.8 +static inline struct cpu_user_regs *guest_cpu_user_regs(void)
    14.9  {
   14.10      struct cpu_user_regs *cpu_user_regs;
   14.11      __asm__( "andq %%rsp,%0; addq %2,%0"
   14.12 @@ -49,7 +49,7 @@ static inline unsigned long get_stack_bo
   14.13  #define reset_stack_and_jump(__fn)                                \
   14.14      __asm__ __volatile__ (                                        \
   14.15          "movq %0,%%rsp; jmp "STR(__fn)                            \
   14.16 -        : : "r" (get_cpu_user_regs()) )
   14.17 +        : : "r" (guest_cpu_user_regs()) )
   14.18  
   14.19  #define schedule_tail(_ed) ((_ed)->arch.schedule_tail)(_ed)
   14.20