ia64/xen-unstable
changeset 8862:d2f42c284459
Check for the entire kernel range for temporarily cleared PMD entries.
From: Jan Beulich <JBeulich@novell.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
From: Jan Beulich <JBeulich@novell.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
author | cl349@firebug.cl.cam.ac.uk |
---|---|
date | Thu Feb 16 11:30:44 2006 +0000 (2006-02-16) |
parents | c62a5327e6a8 |
children | fcbc33a437ec |
files | linux-2.6-xen-sparse/arch/x86_64/mm/fault-xen.c |
line diff
1.1 --- a/linux-2.6-xen-sparse/arch/x86_64/mm/fault-xen.c Thu Feb 16 11:25:36 2006 +0000 1.2 +++ b/linux-2.6-xen-sparse/arch/x86_64/mm/fault-xen.c Thu Feb 16 11:30:44 2006 +0000 1.3 @@ -366,12 +366,12 @@ asmlinkage void __kprobes do_page_fault( 1.4 */ 1.5 if (unlikely(address >= TASK_SIZE64)) { 1.6 /* 1.7 - * Don't check for the module range here: its PML4 1.8 - * is always initialized because it's shared with the main 1.9 - * kernel text. Only vmalloc may need PML4 syncups. 1.10 + * Must check for the entire kernel range here: with writable 1.11 + * page tables the hypervisor may temporarily clear PMD 1.12 + * entries. 1.13 */ 1.14 if (!(error_code & (PF_RSVD|PF_USER|PF_PROT)) && 1.15 - ((address >= VMALLOC_START && address < VMALLOC_END))) { 1.16 + address >= PAGE_OFFSET) { 1.17 if (vmalloc_fault(address) < 0) 1.18 goto bad_area_nosemaphore; 1.19 return;