14 lines
506 B
Diff
14 lines
506 B
Diff
|
References: bnc#656245
|
||
|
|
||
|
--- a/xen/arch/x86/traps.c
|
||
|
+++ b/xen/arch/x86/traps.c
|
||
|
@@ -1223,7 +1223,7 @@ static int fixup_page_fault(unsigned lon
|
||
|
|
||
|
if ( unlikely(IN_HYPERVISOR_RANGE(addr)) )
|
||
|
{
|
||
|
- if ( !(regs->error_code & PFEC_reserved_bit) &&
|
||
|
+ if ( !(regs->error_code & (PFEC_user_mode | PFEC_reserved_bit)) &&
|
||
|
(addr >= GDT_LDT_VIRT_START) && (addr < GDT_LDT_VIRT_END) )
|
||
|
return handle_gdt_ldt_mapping_fault(
|
||
|
addr - GDT_LDT_VIRT_START, regs);
|