|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-changelog
[Xen-changelog] [linux-2.6.18-xen] x86-64: extend numeric user mode	sele
 
# HG changeset patch
# User Jan Beulich <jbeulich@xxxxxxxx>
# Date 1317818576 -7200
# Node ID 4dd3a1d5b26796c1c10c5c2a0026832675aa615d
# Parent  ed78d9bac40d465100d5dfb9998df6b633a53057
x86-64: extend numeric user mode selector checks
... to also cover Xen provided ones
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
diff -r ed78d9bac40d -r 4dd3a1d5b267 arch/x86_64/mm/fault-xen.c
--- a/arch/x86_64/mm/fault-xen.c        Wed Oct 05 14:39:04 2011 +0200
+++ b/arch/x86_64/mm/fault-xen.c        Wed Oct 05 14:42:56 2011 +0200
@@ -146,7 +146,8 @@
                        /* Could check the LDT for lm, but for now it's good
                           enough to assume that long mode only uses well known
                           segments or kernel. */
-                       scan_more = (!user_mode(regs)) || (regs->cs == 
__USER_CS);
+                       scan_more = (!user_mode(regs)) || (regs->cs == 
__USER_CS)
+                                   || (regs->cs == FLAT_USER_CS64);
                        break;
                        
                case 0x60:
@@ -575,8 +576,8 @@
                   these addresses are not reachable. Just detect this
                   case and return.  Any code segment in LDT is
                   compatibility mode. */
-               if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) &&
-                   (address >> 32))
+               if ((regs->cs == __USER32_CS || regs->cs == FLAT_USER_CS32 ||
+                    (regs->cs & (1<<2))) && (address >> 32))
                        return;
 
                if (exception_trace && unhandled_signal(tsk, SIGSEGV)) {
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread> |  
- [Xen-changelog] [linux-2.6.18-xen] x86-64: extend numeric user mode	selector checks,
Xen patchbot-linux-2 . 6 . 18-xen <=
  
 |  
  
 | 
    | 
  
  
    |   | 
    |