|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH] linux-2.6.18/x86-64: extend numeric user mode select
... to also cover Xen provided ones
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
--- a/arch/x86_64/mm/fault-xen.c
+++ b/arch/x86_64/mm/fault-xen.c
@@ -146,7 +146,8 @@ static noinline int is_prefetch(struct p
/* 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 @@ bad_area_nosemaphore:
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-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-devel] [PATCH] linux-2.6.18/x86-64: extend numeric user mode selector checks,
Jan Beulich <=
|
|
|
|
|