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

[Xen-changelog] Native x86_64 linux uses paranoidentry for exceptions with ist !=3D 0,



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID d80e38e4b31df04cc33f5df25a1f5c5c87f7943f
# Parent  b513fd51f850b1e1a9428351d34974de37b078fa

Native x86_64 linux uses paranoidentry for exceptions with ist !=3D 0,
while x86_64 xenlinux doesn't have special stacks for these exceptions.
Actually we don't need paranoidentry for x86_64 xenlinux, and these
exceptions except #DB should be handled in hypervisor.  With this patch,
#DB is forwarded to guest, and let it use zeroentry should be OK.
-Xin

Signed-off-by: Xin Li <xin.b.li@xxxxxxxxx>

diff -r b513fd51f850 -r d80e38e4b31d 
linux-2.6-xen-sparse/arch/xen/x86_64/kernel/entry.S
--- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/entry.S       Tue Jul 12 
16:21:23 2005
+++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/entry.S       Tue Jul 12 
16:50:38 2005
@@ -582,6 +582,7 @@
        jmp error_entry
        .endm
 
+#if 0
        /* error code is on the stack already */
        /* handle NMI like exceptions that can happen everywhere */
        .macro paranoidentry sym
@@ -603,6 +604,7 @@
        call \sym
        cli
        .endm
+#endif
        
 /*
  * Exception entry point. This expects an error code/orig_rax on the stack
@@ -923,10 +925,10 @@
        /* runs on exception stack */
 ENTRY(debug)
        CFI_STARTPROC
-       pushq $0
-       CFI_ADJUST_CFA_OFFSET 8         
-       paranoidentry do_debug
-       jmp paranoid_exit
+/*     pushq $0
+       CFI_ADJUST_CFA_OFFSET 8 */
+       zeroentry do_debug
+/*     jmp paranoid_exit */
        CFI_ENDPROC
 
 #if 0
@@ -945,7 +947,6 @@
         * cannot get reschedule ticks.
         */
        /* ebx: no swapgs flag */
-#endif        
 paranoid_exit:
        testl %ebx,%ebx                         /* swapgs needed? */
        jnz paranoid_restore
@@ -991,6 +992,7 @@
        cli
        jmp paranoid_userspace
        CFI_ENDPROC
+#endif        
 
 ENTRY(int3)
        zeroentry do_int3       
@@ -1010,12 +1012,14 @@
 ENTRY(reserved)
        zeroentry do_reserved
 
+#if 0
        /* runs on exception stack */
 ENTRY(double_fault)
        CFI_STARTPROC
        paranoidentry do_double_fault
        jmp paranoid_exit
        CFI_ENDPROC
+#endif
 
 ENTRY(invalid_TSS)
        errorentry do_invalid_TSS
@@ -1026,8 +1030,7 @@
        /* runs on exception stack */
 ENTRY(stack_segment)
        CFI_STARTPROC
-       paranoidentry do_stack_segment
-       jmp paranoid_exit
+       errorentry do_stack_segment
        CFI_ENDPROC
 
 ENTRY(general_protection)

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