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

[Xen-bugs] [Bug 687] x86-64 Dom0 and DomU kernel crashes in page fault handler if alignment checking is enabled in eflags



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


 


Rackspace

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