Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-bugs

[Xen-bugs] [Bug 687] x86-64 Dom0 and DomU kernel crashes in page fault h

To: xen-bugs@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-bugs] [Bug 687] x86-64 Dom0 and DomU kernel crashes in page fault handler if alignment checking is enabled in eflags
From: bugzilla-daemon@xxxxxxxxxxxxxxxxxxx
Date: Fri, 14 Jul 2006 17:15:07 -0700
Delivery-date: Fri, 14 Jul 2006 17:16:09 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <bug-687-3@xxxxxxxxxxxxxxxxxxxxxxxxxxx/bugzilla/>
List-help: <mailto:xen-bugs-request@lists.xensource.com?subject=help>
List-id: Xen Bugzilla <xen-bugs.lists.xensource.com>
List-post: <mailto:xen-bugs@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-bugs>, <mailto:xen-bugs-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-bugs>, <mailto:xen-bugs-request@lists.xensource.com?subject=unsubscribe>
Reply-to: bugs@xxxxxxxxxxxxxxxxxx
Sender: xen-bugs-bounces@xxxxxxxxxxxxxxxxxxx
http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=687


gareth@xxxxxxxxxxxxxx changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gareth@xxxxxxxxxxxxxx




------- Comment #2 from gareth@xxxxxxxxxxxxxx  2006-07-14 17:15 -------
So one easy fix is to change a single asm file.  The file is
xen-3.0.2-2/linux-2.6-xen-sparse/arch/x86_64/kernel/entry-xen.S
and you insert three lines near the bottom of the error_entry function:
(obviously not including the <--- line bit)

...
/*
* Exception entry point. This expects an error code/orig_rax on the stack
* and the exception handler in %rax.
*/
ENTRY(error_entry)
        _frame RDI
        /* rdi slot contains rax, oldrax contains error code */
        cld
        subq  $14*8,%rsp
        CFI_ADJUST_CFA_OFFSET   (14*8)
        movq %rsi,13*8(%rsp)
        CFI_REL_OFFSET  rsi,RSI
        movq 14*8(%rsp),%rsi    /* load rax from rdi slot */
        movq %rdx,12*8(%rsp)
        CFI_REL_OFFSET  rdx,RDX
        movq %rcx,11*8(%rsp)
        CFI_REL_OFFSET  rcx,RCX
        movq %rsi,10*8(%rsp)    /* store rax */
        CFI_REL_OFFSET  rax,RAX
        movq %r8, 9*8(%rsp)
        CFI_REL_OFFSET  r8,R8
        movq %r9, 8*8(%rsp)
        CFI_REL_OFFSET  r9,R9
        movq %r10,7*8(%rsp)
        CFI_REL_OFFSET  r10,R10
        movq %r11,6*8(%rsp)
        CFI_REL_OFFSET  r11,R11
        movq %rbx,5*8(%rsp)
        CFI_REL_OFFSET  rbx,RBX
        movq %rbp,4*8(%rsp)
        CFI_REL_OFFSET  rbp,RBP
        movq %r12,3*8(%rsp)
        CFI_REL_OFFSET  r12,R12
        movq %r13,2*8(%rsp)
        CFI_REL_OFFSET  r13,R13
        movq %r14,1*8(%rsp)
        CFI_REL_OFFSET  r14,R14
        movq %r15,(%rsp)
        CFI_REL_OFFSET  r15,R15
#if 0
        cmpl $__KERNEL_CS,CS(%rsp)
        je  error_kernelspace
#endif
  pushf         <-- line 1
  andl $0xfffbffff, 0(%rsp)     <---- line 2
  popf   <--- line3
error_call_handler:
...


-- 
Configure bugmail: 
http://bugzilla.xensource.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

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

<Prev in Thread] Current Thread [Next in Thread>